損切幅に応じて自動で定額損となるlot数を算定する方法について

2025/05/07 07:00
23

何度もご質問し申し訳ございません。

表題の件ですが、EAつくーるにおいては損切幅に応じて自動で定額損となるlot数を算定することはできない旨、過去のQAで拝見いたしました。
EAつくーるで作成したEAのコードを修正することでも、それはやはり難しいのでしょうか。
素人考えですみません。もし可能であれば方法等アドバイスをいただけますと幸いです。
どうぞよろしくお願いいたします。

コメント

GogoJungle
2025/05/09 10:45

単位を換算する際の基準が取引業者や通貨ペアごとに異なるため難しい、という背景がございます。
通貨ペア・ロット数と通貨単位の関係を決めてしまえば可能ですので、「取引通貨ペアがUSD/JPYで、1lotあたり100000円」の場合を例に、コードの修正方法をご説明いたします。

関数の準備

次の関数をコピーし、ソースコードの一番下に貼り付けます。

double CalculateLotSize(double riskYen, double pipLoss) {
   double yenPerlot = 100000; // USDJPY 1lotあたりの円
   double yenloss   = PipsToPrice(pipLoss); // pipsを価格に換算
   double lotSize   = riskYen / yenloss / yenPerlot; // ロット数
   return NormalizeDouble(lotSize, 2); // 0.01単位で丸める
}

関数の利用

例えば、設定したSL(単位はpips)毎に1000円の損失となるようにlot数を調整する場合は次のようにします。

【修正前】


   if(signal != 0 && getOpenLots(Magic1) == 0) {
      if(openPosition(signal, lots, take_profit, stop_loss, Magic1)) {
         bars1 = Bars;
      }
   }

【修正後】

   if(signal != 0 && getOpenLots(Magic1) == 0) {
      lots = CalculateLotSize(1000, stop_loss); // この行を追加
      if(openPosition(signal, lots, take_profit, stop_loss, Magic1)) {
         bars1 = Bars;
      }
   }

丸め誤差などの関係でピッタリ1000円の損失とはならない場合がある点、ご注意ください。
ご参考になりましたら幸いです。

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。