移動平均線、MAとローソク足がクロスしたらエントリー、エグジットするMT4用のEA(Expert Advisor)、『hjEA_MAcrossENEX』
読者の方から4時間足基準でMAクロスでエントリー・エグジットを実行するEAのご要望があり、対応。当初、私が個人的にたまに使用するEAをちょっと見栄え良くして仕様はそのまま・・・と思ってたのですが、お応えするには作成者自身しか理解できない部分があること、ご要望に対して余計な仕様が混在していたことから、シンプルなドテン売買EAとして作成しました。
ドテン売買に一方向売買を追加、通知機能とEA ON・OFF ボタン追加。
ドテン売買の場合、EAを停止した後にもポジションが残りますから、ポジションをクローズするルールを持ってることが重要です。時間帯決めて連続運用してもいいかもしれないので、検証してみてください。
履 歴
hjEA_MAcrossENEX105
- Ver. 1.05:20220818
- ストラテジーテスター対応
- Ver. 1.04:20220721
- メッセージ文章訂正
- その他バグフィックス
- Ver. 1.03:20220706
- EA削除時にボタンが残るバグフィックス
- Ver. 1.02:バージョンアップ動作確認動画を参照願います。
- Stoploss と Takeprofit を追加
- ポジションクローズ時点での損益を pips 通知
- ポジション保有時のMT4再起動に対応
- バグフィックス
- ブレークイーブン処理:利益側にSL移動させてもイーブンに戻してしまう
- ON・OFF ボタンが効かない状況が発生していた
- その他諸々
- Ver. 1.01
- 通知機能追加
- BUYのみ、またはSELLのみ、の一方向売買を追加
- EA ON・OFF ボタン追加
- Ver. 1.00:20220527
- 初版
MT4は、FX業者に関わらず同じ動作をすると思っていますが、読者からの連絡で違和感を感じることがあります。私がインジケーターやEAを作成し、検証している主なMT4業者二社を以下に紹介します。
現在は、主にGemForexのデモ口座で作成・検証 → XMのデモ口座で検証、自分のルールに活用できそうだったらリアル口座で使用、と進めています。なお、私の利用している国内FX業者は、この二社と同動作です。
hjEA_MAcrossENEX 仕様
MAとローソク足のクロス確定でエントリー、エグジットするドテン売買、または BUY のみ、SELL のみの一方向売買を実行するEA。
エントリー
- BUY
- 確定足直前足終値 < MA価格
- 確定足終値 >= MA価格
- SELL
- 確定足直前足終値 > MA価格
- 確定足終値 <= MA価格
エグジット
- BUY
- 確定足直前足終値 > MA価格
- 確定足終値 <= MA価格
- SELL
- 確定足直前足終値 < MA価格
- 確定足終値 >= MA価格
エントリー方向:三択
- BUY
- SELL
- BUY+SELL
設定可能MA条件
- MA期間
- MA種類
- MAの計算に使用する価格
EA 稼働・停止:ボタンで選択
通 知:個別設定可
- アラートWindow
- アラート
- メール
- プッシュ通知
EA作成の元となったコメントです。
すぐにお応えすると返信したのに遅くなってしまい、申し訳ございません。
4時間足を基準
ローソク足が20MAを上抜けし、20MAより上で実線確定(終値で確定)した時点でエントリー。再度20MAを下抜けして実線が20MAより下で確定した際にクローズ。(売りエントリー・クローズはいずれも逆)
koooohei氏コメントより抜粋
利益が20pipsプラスになった際には建値にストップロスを設定。
パラメーター
- Alert Window
- true:アラートWindowを表示する
- false:表示しない
- Alert
- true:アラート鳴らす
- false:鳴らさない
- Alert Sound File:アラート音ファイルを指定
- E-mail Titile:受信メールタイトルをセット
- E-mail Notification
- true:メールする
- false:しない
- Push Nortification
- true:プッシュ通知する
- false:しない
- ―――
- Magic No.
- 他のEAのポジションと区別するための数値
- MT4内で使用するEAと重複しないユニークな数値を入力
- Order Lots
- エントリー時のロットサイズをセット
- Order Direction:三択
- BUY+SELL
- BUY
- SELL
- Stop Loss Pips:ストップロスを pips で指定
- Take Profit Pips:テイクプロフィットを pips で指定
- Break Even Pips
- ストップロスを建値に移動する際の条件、含み益を pips で指定
- 0:建値移動なし
- Break Even Pips
- ブレークイーブン実行に必要な含み益を pips で指定
- Slippage
- エントリー時に指定した指値から外れて不利な価格で約定する価格差
(不利な価格で約定する=滑り約定といわれる場合も有り) - 許容できる上記価格差を pips でセット
- エントリー時に指定した指値から外れて不利な価格で約定する価格差
- MA Period
- MAの期間をセット
- MA Type:四択
- Simple
- Eeponential
- Smoothed
- Linear weighted
- Price Type:七択
- Close price
- Open price
- High price
- Low price
- Median price
- Typical price
- Weighted price
- ―――
- Button Color:ボタン色を指定
- EA ON Text Color:EA ON 時の文字色を指定
- EA OFF Text Color:EA OFF 時の文字色を指定
- Base Corner:ボタン表示位置の基準となるコーナーを選択
- X Distance:左右方向の位置を指定
- Y Distance:上下方向の位置を指定
- Width:ボタンの幅を指定
- Height:ボタンの高さを指定
[memo]
- Price Type の選択要素、Typical と Weighted の二つはMAクロスEA関係で試行したことがありません。これに限らず、思ってる通りに動作するかどうか、デモ口座でしっかり検証してください。
バージョンアップ、動作確認
Ver. 1.02
ブレークイーブンバグに気づき、検証していたら、他にも検証不足によるバグがありました。通知が狙い通りに機能していなかったバグ対策で全面見直し。その際、ポジションクローズ時の損益表示とポジション保有状態でのMT4再起動に対応しました。
検証不足面はないと自分では信じたいのですが、仕様と異な動作を見つけましたら遠慮なくコメントください。
Ver. 1.01
使用例
エントリー・エグジットチャート例
動画例
動作中チャートでのEAセット~エントリー・エグジット~EA削除
ストラテジーテスターテスト結果:速度早め
ストラテジーテスターテスト結果:速度遅め
EA停止後のポジション残について
EA稼働中は最初のエントリーから後は常にポジションを保有する状態です。BUY・SELL両方向(ドテン)の場合、自動売買停止ボタンクリック、また、EAを削除してもポジションは残ることにご注意ください。
残っているポジションをどのようにクローズするか、決めておくことはとても重要なことです。
一例として
- ターミナル、取引タブでポジションをクローズ
- どのような状況になったらポジションクローズするか決めておく
- MT4 標準装備、決済逆指値や決済指値をセット
- 数値でセットする方法とポジションラインをマウスクリックで上下にドラッグする方法があります
- Ver. 1.02 では、エントリー時に両者セットできるようにしました。
今 後
ここからいろいろなアイディアを追加、結果検証、品質保証でいう『PDCA』を回して、資金増のEAが完成できたらいいな、と思います。
人によって、自分のルールは他に出さない、とか、思っている方々がおいでるかもしれないのですが、私は同じ基準で判断している人が増えるほどその判断基準は優位になると思っています。
一緒に考えてくれる仲間が欲しい、、、つい、本音。。。
今のルールだとほったらかしにできないもんね・・・
ほったらかし運用可能な複数EAを開発して、あとは、北海道のどこそこ、沖縄のどこそこ、瀬戸内のなんたら島etc、キャンプ場でお会いできるサークルなんかあったらいいなぁ。
うん、たまにはすっごく高級なホテルでおいしい食とお酒、癒し空間とゆっくりと流れる時間・・・でも、やっぱり一番は仲間とパチパチ焚火を囲んでそれぞれ大好きな飲み物を片手に意味のない会話、かなぁ・・・
たくさんの心の美男・美女、友達になりたい・・・・・
コメント
エントリー後、チャートが逆に行った場合、次足で決済されてしまいますが、値幅が無い時は毎回決済されてマイナスだらけになってしまいます。これを回避するパラメーター設定はありますでしょうか?
よろしくお願いします。
tabinekoさん、
ご希望のパラメーター設定はありません。
コメント内容に対応するために、『EAのON・OFF』ボタンを設置しています。
この EA の狙いとあなたの期待する動作が一致していないと感じます。
どうすればチャートが逆方向に行った場合の次足決済を避けられるか、試行錯誤してみてください。
手取り、足取りは、あなたのためになりません。
デモ口座で、数時間試行すると見えてくると思います。
その後、ご自分の取引姿勢が定まってきたら、このEAが使えるかどうか、あなたに合うかどうかがわかると思います。
少しいろいろ試行してみてください。
HappyJiJi様
検証をおこなっている過程で気が付いたのですが、EA削除時にボタンが残るバグがまだ残っているようです。
具体的には、MAcrossENEX103を使っているチャート上に他のEAをドラッグすることでEAを入れ替えるとボタンは消えるのですが、MAcrossENEX103を使っているチャート上でマウスを右クリックし、エキスパートアドバイザの削除をおこなうとボタンが残るようです。
ボタンが残ったチャートに再びMAcrossENEX103を適用し、他のEAをマウスドラッグで入れ替えた場合、ボタンは消えず残ったままとなります。入れ替えをおこなったEAを削除してもボタンは残ったままです。
ご確認頂けますでしょうか。
ついでのご提案で申し訳ないのですが、チャートの画面上からOrder DirectionがS、B、S+B 等のボタンでも選択できるようにすることは可能でしょうか。
ご検討頂けると幸いです。
Ishiiさん、
ボタン消えない件、こちらでは消えます。
他のEAセットとEA削除、基本的には同じ処理になると思いますので、前バージョンが残っていませんか?
確認のため、新規チャートでEAをセット後、異常発生時の操作を行ってください。
それでも残るようでしたら再度コメントください。
Order Direction のボタン選択化ですね。
使い勝手向上面でのご提案、ありがとうございます。
ご希望のボタン位置がありましたら、コメントください。
以上、よろしくお願いします。
HappyJiJi様
ご指摘のように新規チャートにて、異常発生時の操作をおこなったところボタンは残りませんでした。
検証時のチャートで発生した不具合の原因は分からないのですが、お騒がせいたしました。
Order Direction のボタンの位置ですが、私はON/OFFボタンを右下に置いており、右下にまとまればいいのですが配置が難しいようでしたら右上かな、と思います。
よろしくお願い致します。
Ishiiさん、
ご確認、ありがとうございます。
私もなぜ消えないんだ、って悩んだ時があり、前のEAやインジケーターの残影といいますか残りでした。
この前バージョンバグ残り、消し方はわかりますか?
該当チャートをいったん閉じて、同じ通貨ペアチャートを新規オープンするのが手っ取り早いのですが、オブジェクトの消去で消す方法もあります。
合間にアップしておきますので、よかったら見てください。
ボタンの表示位置、了解しました。
他のEAやインジケーターとの併用時に困るかもしれないですが、デフォルト表示位置は右下にします。
チャート四隅基準で表示位置を調整できるようにします。
少しお時間をください。
HappyJiJi様
オブジェクトの消去について調べてみたのですが、よくわかりませんでした。
お手すきの時にご教示頂けますか。
ボタン表示についてご対応頂けるとのこと、有難うございます。
こちらについてもよろしくお願い致します。
Ishiiさん、
オブジェクトの消去、こちらにアップしましたので、お時間のあるときに見てください。
https://happyjiji-mtprg.com/operation/hj-remainingobjectsdelete/
すぐに消去されたい場合、消したいオブジェクトの他にオブジェクトがない場合ですが、、、
1)該当チャートをクローズ
2)新規チャートをオープンし、EAをセット
以上の操作で前のバージョンの残骸は消えます。
当方のバグでお手数をおかけして申し訳ございません。
どれも素晴らしいプログラムの公開ありがとうございます
しめさばさん、
ご活用、ありがとうございます。
より簡単に、継続的資金増が望めそうなアイディアが浮かびましたら、コメントください。
今後ともよろしくお願いします。
HappyJiJi様
機能追加込みのバージョンアップ版、有難うございます。
早速検証をおこないます。
Ishii さん、
たびたびすみません。
EA削除時にボタンが残るバグがありました。
Ver. 1.03 で修正しました。
HappyJiJi様
承知致しました。
よろしくお願い致します。
HappyJiJi様
追加のご提案で恐縮ですが、エントリー時のテイクプロフィットの指定に加えて、エントリー時にストップロスを指定する機能の追加も可能でしょうか。
エントリー後に逆方向に急に値が飛んだ場合に有効かと思います。
併せてご検討いただけると幸いです。
グランビルの2番目でエントリできるように(MAを上抜けした後、MAを下抜けし再度上抜け)
できれば、幅が広がるかと思いますので、可能でしたらご検討をお願いします
HappyJiJi様
沢山の有益なEA、Indicatorの共有有難うございます。
hjEA_MAcrossENEXについて追加の仕様のご相談です。
以下の仕様の追加は可能でしょうか。
・Buyのみ、Sellのみ機能の追加(Buyのみの場合はSellのシグナルが出たら決済し、次のBuyシグナルが出るまで待機)
・含み益が出ている際に任意のpipsでの決済機能の追加
・EA稼働停止ボタンの追加
・通知機能の追加
お忙しいところ恐縮ですが、ご検討いただけると幸いです。
Ishiiさん
ご提案、ありがとうございます。
以下、2)と3)お返事ください。
1)Buyのみ、Sellのみ仕様、了解しました。
2)含み益が出ている際に任意のpipsでの決済機能の件
・ポジション保有中に任意にpipsを指定、また、変更もされたいということですか?
3)EA稼働停止ボタンの追加の件
・チャート単位で停止したいとの理解でよろしいでしょうか?
4)通知機能の追加の件、下記追加します。
・アラートWindow、アラート、メール、プッシュ通知
HappyJiJi様
早速のご返信有難うございます。
2)につきましてはエントリー時に任意のpipsでのテイクプロフィットがパラメータとして設定できれば、と思っています。
エントリー後は必要に応じ決済指値をマウスで調整することを考えています。
3)につきましてはチャート単位での稼働・停止ができれば便利では、と思っています。
よろしくお願い致します。
Ishii さん、
2)3)の件、了解しました。
HappyJiJi様
ご対応頂き、誠に有難うございます。
早速デモ口座で検証してみます。
取り急ぎ、お礼まで。
Ishiiさん、
すみません、ブレークイーブン部に検証不足がありました。
ブレークイーブンを実行すると利益側にストップロスを移動させていてもブレークイーブンに戻る可能性があります。
プログラム変更しましたので、明日、市場オープン時間帯に検証します。
それから、テイクプロフィットのpips指定ですが、今回は組み込んでいません。
私が勘違いしてて、エントリーラインをドラッグすればテイクプロフィットラインが引けるので、そちらが便利じゃないかな、と勝手に判断していました。
時間足やスプレッドによっては、獲得pips数を指定することができる方がいいですね。
この部分、組み込みます。
今後とも使い勝手面向上、また、新規アイディアなど浮かびましたらコメントください。
よろしくお願いします。
jiji様、メッセージが遅れ誠に申し訳ございません。
そして、こんな短時間でEAを作成していただいたこと誠に感謝しております。ありがとうございます。
私は現職でプログラミングもかじっているのですが、勉強中の身でもあり、今回つくっていただいたものを見本に勉強できればとも思っております。
もう少し理解が進んでご一緒に考えられるようになれれば光栄です。
koooohei さん、
返信ありがとうございます。
プログラミングですが、MT5 で始められた方がいいと思います。
今後、MT4からMT5へ移行していくのは間違いないですし、Windows11へのMT4の対応状況を見ててもなんか遅いんです。
一緒に将来にわたって使える、役立つインジケーターやEA を開発できればうれしいです。