解決済み

口座残高でEAを停止したり動かしたりする方法

2024/10/01 19:56
109

目標の金額に達したらEAを停止させたいのですが、EAつくーるにそのような機能はありますか?方法があればご教授下さいm(_ _)m

コメント

GogoJungle
2024/10/02 17:46

EAつくーるの機能だけでは作成できませんが、コードを修正することで、容易に実現可能な機能であると存じます。

コードの修正のアドバイスにあたり、いくつかご質問させていただきます。

  1. 「目標金額に達した場合、全てのポジションを決済した上で停止する」という解釈でよろしいでしょうか?
  2. 1の場合、目標金額に達した直後に決済を行っても、そのタイミングによっては、最終的な残高が目標金額に満たない場合がございますが、こちらはご了承いただけますでしょうか?
  3. 表題に「停止したり 動かしたり 」とございますが、何らかの条件で再稼働させる形でしょうか?(完全に停止してしまう形の方が修正が簡単で、安全であると考えられます。)
hirooooo
2024/10/06 12:21

ご返信ありがとうございます。
ご質問に関してですが、
1について、全てのポジションを決済した上で停止するという解釈で間違いありません。
2について、滑りなども発生すると認識していますので目標金額未達でも問題ないです。
3についてですが、例えばEAを3種類用意し(a,b,cとします)、残高1万円~10万円の間はEA(a)"を稼働、残高10万円~50万円の間はEA(b)を稼働、残高50万~100万円の間はEA(C)を稼働するというように、口座残高に応じて同じ通貨ペアで異なるロジックのEAを動かすトリガーにしたいと考えています。EAつくーるの取引ロジックに”口座全体の含み益や含み損”というのはありますが、”口座残高”が取引ロジックにあれば・・
EA(a)からEA(b)に移行した後もEA(a)が稼働し続けると都合が悪いのでEA(a)を停止する方法、またEA(b)を稼働させるタイミングとして口座残高を基準に出来たら分かりやすいので、そういう方法があればと思い質問させて頂きました。可能であればご教授宜しくお願いします。

GogoJungle
2024/10/08 09:46

詳細なご説明、誠にありがとうございます。
EAつくーるにて通常通りEAをご作成いただき、ソースファイルをダウンロードした後、下記のようにご修正いただくことで、指定した残高達成で全決済してEAを停止させることが可能でございます。

※「ポジション1」のみを利用することを想定しています。

閾値の定義

EAを停止する残高の閾値を定義します。
マジックナンバーの定義の下に記述しておきましょう。
(下記は100,000円で停止させる場合の例です。)

修正前

input int Magic1 = 1;

修正後

input int Magic1 = 1;
input double zandaka = 100000.0;

決済と停止用の処理を記述

void OnTick()と書いてある行を探し、対応する{}で囲まれた部分の内側の一番下に、下記のコードを貼り付けてください。

   if (AccountEquity() > zandaka) {
      if (getOpenLots(Magic1, OP_BUY) != 0)  closePosition(Magic1, OP_BUY);
      if (getOpenLots(Magic1, OP_SELL) != 0) closePosition(Magic1, OP_SELL);
      ExpertRemove();
   }

【参考画像】赤枠で囲った部分が貼り付けたコードです。

LABO_1942_1.png

以上でございます。
なお、上記のコードあくまでヒントとなっております。
細かい検証は行っておりませんので、修正される場合は十分な検証をお願いいたします。
ご参考になれば幸いです。

hirooooo
2024/10/08 12:45

丁寧なご説明ありがとうございます。
目から鱗です!

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。