解決済み

22時59分に自動決済

EAつくーる
はやうち太郎
2026/03/03 00:14
50

毎日22時59分に売りの場合のみ自動決済はできますか?売りも買いもどちらもエントリーするルールですが、売りだけ時間指定で自動決済したいです。

コメント

GogoJungle
2026/03/05 14:27

いつもお世話になっております。
売りエントリーで保有したポジションのみを、毎日22時59分に自動決済したいというご要望ですね。

EAつくーるの標準機能である「指定時刻決済」オプションは、保有している全てのポジション(買い・売り両方)を一斉に決済する仕様となっており、残念ながら「売りだけ」を選んで決済することはできません。

しかし、EAを2つに分けて作成・運用するという工夫を行うことで、MQL(プログラム)の編集を行わずに、EAつくーるの機能だけでこの動作を実現可能です。

初心者の方でも安全に設定できる「2つのEAによる運用方法」をご案内します。

設定・運用手順

1つのEAの中に「買い」と「売り」のロジックを両方入れるのではなく、「買い専用EA」と「売り専用EA」の2つを作成します。

1. 買い専用EAの作成

まず、買いエントリーを行うためのEAを作成します。

  • 基本項目・取引条件: 通常通り、買いエントリーの条件と、通常の決済条件(利食い・損切り等)を設定します。売りに関する設定は行いません。
  • オプション(指定時刻決済): 設定しません(チェックを外す)。
  • 作成後、名前を付けて保存・生成します。(例: MyEA_Buy

2. 売り専用EAの作成

次に、売りエントリーを行うためのEAを作成します。

  • 基本項目・取引条件: 売りエントリーの条件と、通常の決済条件を設定します。買いに関する設定は行いません。

  • オプション(指定時刻決済): こちらのEAでのみ設定を行います。

  • 決済時刻: 22:59

  • 曜日: 毎日行う場合は、全ての曜日にチェックを入れます。

  • 作成後、名前を付けて保存・生成します。(例: MyEA_Sell

3. MT4/MT5での運用方法

生成された2つのEAをMT4/MT5で稼働させる際は、以下の手順でセットしてください。

  1. 取引したい通貨ペアのチャートを2枚開きます。(例:ドル円なら、ドル円のチャートを2つ並べて表示)
  2. 片方のチャートに「買い専用EA」をセットします。
  3. もう片方のチャートに「売り専用EA」をセットします。
  4. 【重要】 EAをセットする際のパラメータ設定画面で、片方のEAの「マジックナンバー(MagicNumber)」を変更してください。
  • 例:「買い専用EA」のマジックナンバーが 12345 なら、「売り専用EA」は 12346 に変更するなど、異なる数値にします。
  • ※マジックナンバーが同じままだと、指定時刻になった際に「売り専用EA」が「買いポジション」まで決済してしまう誤動作の原因になります。

この方法のメリット

  • プログラム修正不要: EAつくーるの標準機能だけで完結するため、バグのリスクが低いです。
  • 柔軟な管理: 「売りだけ稼働を停止する」といった調整も、チャートからEAを外すだけで簡単に行えます。

もし「どうしても1つのEAにまとめたい」という場合は、生成されたソースコード(MQL)を直接編集して「現在の時間が22:59 かつ ポジションが売り なら決済」というプログラムを追記する必要がありますが、難易度が高くなるため、まずは上記の「2つに分ける方法」をお試しください。

はやうち太郎
2026/04/17 22:49

【重要】 EAをセットする際のパラメータ設定画面で、片方のEAの「マジックナンバー(MagicNumber)」を変更してください。
マジックナンバー変えるっていうのはEAセットしたチャート画面の右上の博士帽をダブルクリックしたら出てくる画面の「インプット情報」シートの変数名:Magic1の値を変えたらいいってことですか?
また、このMagic1の値が同じだったら、別の通貨ペアや同じ通貨ペアの別の時間足でも誤作動が発生する可能性あります?

はやうち太郎
2026/04/17 22:54

また同時に16個のEAをセットしてるんですが、マジックナンバーのつけ方で注意したほうがいい点てあります?それぞれのEAに変数名1-16の値をかぶらないようにつけていったら大丈夫ですか?

GogoJungle
2026/04/20 19:46

はい、その考え方で大丈夫です。
同時に16個のEAを動かす場合は、各EAが使うマジックナンバーを重複させないようにしておくのが基本です。

EAつくーるで作成したEAでは、通常「インプット情報」内の Magic1Magic2 のような項目が、各ポジション番号に対応するマジックナンバーになっています。
そのため、そのEAが実際に使っている番号を、他のEAと被らないように設定するという理解で問題ありません。

結論
  • 16個のEAを同時稼働するなら、使用するマジックナンバーは全部ユニークにするのがおすすめです
  • 変数名1~16を見て、それぞれの値を被らないように付けるという運用で基本的には大丈夫です
  • ただし、「EAごとに何個のポジション番号を使っているか」まで確認するのが重要です
注意点

1. Magic1 だけ見ればよいとは限りません

こうなっていませんか?

  • EA A は ポジション1 しか使わないので Magic1 だけ変更
  • でも EA B は ポジション1ポジション2 を使っている
  • さらに EA A の Magic1 と、EA B の Magic2 が同じ値になっている

この場合、同じマジックナンバーとして扱われるため、決済やポジション判定が干渉する可能性があります。

つまり、確認すべきなのは「変数名の名前」ではなく、実際の値そのものが全EAで重複していないかです。

安全な付け方

初心者の方には、EAごとにまとまりで番号を割り当てる方法がわかりやすいです。

例:

  • EA1:Magic1=1001, Magic2=1002
  • EA2:Magic1=1011, Magic2=1012
  • EA3:Magic1=1021, Magic2=1022

このように、EAごとに10番刻み・100番刻みで分けると管理しやすくなります。

16個あるなら、たとえば以下のようにしておくと整理しやすいです。

  • EA1 → 1101~1110
  • EA2 → 1201~1210
  • EA3 → 1301~1310
  • EA16 → 2601~2610

実際にそのEAで ポジション1 しか使わないなら Magic1 だけ設定しておけばよいですが、将来的に ポジション2 以降を追加する可能性があるなら、最初から範囲で分けておくと安全です。

別の通貨ペア・別時間足でも注意が必要です

前回のご質問にも関係しますが、マジックナンバーが同じなら、別の通貨ペアや別の時間足でも影響が出る可能性があります。

特に、EAのロジックやオプションが

  • 同じマジックナンバーのポジションを参照する
  • 同じマジックナンバーのポジションを決済対象にする
  • 損益やポジション数を条件判定に使う

という作りになっている場合、通貨ペアや時間足が違っていても、同じ番号のポジションを「同じ仲間」とみなしてしまうことがあります。

そのため、同じ通貨ペアかどうかに関係なく、稼働中のEA全体で重複させない運用が安全です。

今回のケースで特に大事な点

売り専用EAだけ22:59に決済させたい場合は、少なくとも

  • 買い専用EAの Magic1
  • 売り専用EAの Magic1

必ず別の値にしてください。

例えば:

  • 買い専用EA:Magic1 = 5001
  • 売り専用EA:Magic1 = 5002

のように分ければ、売り専用EAの決済処理が買い側に干渉しにくくなります。

まとめ
  • マジックナンバーは、同時稼働する全EAで重複させないのが基本です
  • Magic1 だけでなく、そのEA内で使っている Magic2 以降も含めて重複確認してください
  • 別通貨ペア・別時間足でも、同じ値だと干渉する可能性があります
  • 管理しやすくするために、EAごとに番号帯を分ける運用がおすすめです

実務上は、
「EAごとにグループ番号を決めて、その中で Magic1, Magic2… を割り振る」
という形にしておくと、後から見直すときも混乱しにくいです。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。