ラインタッチ、またはラインクロス確定時点で全ポジションを決済するMT4用EA『hjEA_AllCloseByLine』
対応ライン数は、1~2本。対応ライン種別は、水平ラインとトレンドラインの2種。
エントリーはしない。他のEAの動作、停止等の制御もしない。
このラインに価格が届いたら、全ポジションを決済するルールの方のツールとなればいいな、と思ってます。
エントリールールにピラミッティングがあったり、複数条件でのエントリーがある場合でもエグジットはほぼ同じ箇所になると推察しており、そういった場面で機械的に決済したい方向け。
いろいろな手法があるので、全ての方には適さないでしょう。
エントリー後、ほっとけるんで便利ってとこが一番かも。機械的に実行されるので、心理状態に依存しないし・・・
履 歴
hjEA_AllCloseByLine101
- Ver. 1.01:2023.6.11
- スリッページをパラメーター指定可能にした
- Ver. 1.00:2023.3.26
MT4は、FX業者に関わらず同じ動作をすると思っていますが、読者からの連絡で違和感を感じることがあります。私がインジケーターやEAを作成し、検証している主なMT4業者二社を以下に紹介します。
現在は、主にGemForexのデモ口座で作成・検証 → XMのデモ口座で検証、自分のルールに活用できそうだったらリアル口座で使用、と進めています。なお、私の利用している国内FX業者は、この二社と同動作です。
hjEA_AllCloseByLine 得られるOutput
- 全ポジション決済
- 設定したラインに価格がタッチ、またはラインとクロスが確定した時点で全ポジション決済
- 通 知:個別 ON/OFF 設定
- アラートWindow
- アラート
- メール
- プッシュ通知
hjEA_AllCloseByLine 仕様
- 決済種別
- ラインタッチ:判定ラインに価格がタッチ
- ラインクロス:判定ラインと価格がクロス確定
- 判定用ライン
- 1~2本
- 水平ラインとトレンドラインに対応
- パラメーターでライン名を指定
パラメーター
- Sign Type:決済種別を指定
- Touch:ラインタッチで決済
- Cross:ラインクロス確定時点で決済
- AlertWindow ON
- true:アラートWindow 表示
- false:非表示
- Alert ON
- true:アラート鳴らす
- false:鳴らさない
- Alert Sound File
- アラート音源ファイルを指定
- E-mail Title
- メール受信時のタイトルを設定
- E-mail Notification
- true:メール送信する
- false:送信しない
- Push Notification ON
- true:プッシュ通知する
- false:通知しない
- — Line Setting —
- Line 1 Name
- 判断用ライン1の名前をセット
- Line 2 Name
- 判断用ライン2の名前をセット
使用例
箇条書きだとこんな感じ
- ポジションを取る(取る前でもルールがしっかりしていればいい)
- ポジションを閉じようと決めた位置に応じたラインを引く
そのライン名をパラメーターセット名と一致させる - (ストップロスとしてセットした場合、トレーリングストップとしても活用可能)
- 放置してどこかに遊びに行く
動画事例
操作の感じはつかめると思います。
チャート事例
水平ラインによるポジション決済事例
①SELLポジションのTP(利食い)狙いラインをセット
②SELLポジションのSL(損切り)ラインをセット
③SLラインにタッチ、決済
トレンドラインによるポジション決済事例:ラインセット後にSELL、少し邪道・・・
①トレンドライン1本目
②トレンドライン2本目
③SELL エントリー
④利食い狙いトレンドラインにタッチ、決済
ライン名重複時のエラーメッセージ
今 後
改善案、追加仕様案など出てきましたら更新します。
今、悩んでいる点は、MT4全ポジション決済とこのEAをセットしている通貨ペア全ポジション決済を分けるかどうかってところです。
コメント
HappyJiJi様 お世話になっております。
hjEA_AllCloseByLine100なのですが、何度実行しても決済しないのです。
“orderclose関数の無効なスリッページ” のエラーメッセージがでますが、
slippage の値を上げればエラーは解消されるのでしょうか?
AllCloseByline error_2
koji さん、
対応が遅くなって申し訳ございません。
slippage を20point でセットしています。
pipsでは、2pipsに相当すると思われますが、FX業者の桁数に依存します。
Ver. 1.01 でスリッページをセットできるようにしますので、30とか50とかで試してください。
koji さん
さきほどSlippage=デフォルトの20で動作確認し、正常にクローズすることを確認しました。
確認ですが、ラインの名前はセットされていますか?
HappyJiJi様 お世話になっております。
Slippage=30で実行し決済しました。対応ありがとうございます。
ラインの名前はセットされていますか?との問いですが、
添付ファイル確認されましたか?
OrderClose()関数を何度も実行(チャタリング)しています。
ラインの名前はクリアしなければOrderClose()関数は、実行しないと思いますが
最近PCの動作で不安定な事が多発しています。
Slippage値を30で実行して決済し、試しにPCを再起動してSlippage値を20でも10でも
決済確認しました。4月頃一度確認して、5月になってから実行したら決済せずで
以降何度も実行しましたが決済しませんでした。MT4のT/P S/Lで決済してもいいのですが、気になったのでご連絡しました。
対応ありがとうございます。
koji さん、
ラインの名前の件、失礼いたしました。
スリップページ20でCloseできないエラー、今まで経験したことがないため、何が原因か気になる点を順に埋めていくことを考えていました。
(この20という数値は、Ver.1.00 では利用者には見えません。)
バグかMT4潜在的問題点かMT4長時間稼働で起こるのか、WindowsもしくはPCに何らかの不具合が発生しているのか、等々。
なので、私の中では、OrderClose()関数を実行=ライン名が一致にはつながらないのです。
この部分は、開発される人の考え方、私的な要素が関係してるので、パラメーター画像を送ってください、とお願いすべきでした。
さて、今回の私の結論ですが、EAの使用は中止してください。
コメント内容から、肝心なときにCloseしない現象が起こる可能性を感じます。