取引ロットについて

2025/06/18 22:08
49

オプションでドテン機能、取引曜日制限、取引時間制限、ナンピン、値始でのエントリーを使用している状況です。

この状況で、パラメータ設定のロットを変更しても、基本設定のロットが適用されてしまいます。

取引条件のロットもカスタムにしていますが、パラメータ設定の変更が効きません。

どうしたらいいでしょうか。

コメント

そう
2025/06/19 14:39

追記になりますが、EAを設置した最初のエントリーとナンピンはパラメータで指定した数値でエントリーされますが、その後の2、3エントリー目から基本設定のロットでエントリーされてしまいます。

GogoJungle
2025/06/20 20:47

> 取引条件のロットもカスタムにしています

取引条件のロットをカスタムにしている場合、MT4/MT5のパラメーター設定画面でのロットの変更が無効になる仕様となっております。

固定
→基本項目のロット数が適用される。パラメーター設定画面で変更可能。

カスタム
→その「ポジション」に独自の値を設定できる。パラメーター設定画面では変更できない。

という違いがあります。

コードを少し改造すれば、パラメーター設定画面で変更可能、かつ、カスタムのロットを適用できます。
改造方法を考えてみたので共有しますね。

準備

カスタムロットを適用したいポジションについて、ロット数を「カスタム」「1001lots」としておき、ソースコードをダウンロードした後、MetaEditorで開きます。
※「1001」にした理由は、検索しやすくするためです。
ポジション1は「1001」、ポジション2は「2002」、ポジション3は「3003」としておくとよいでしょう。

改造

「1001」と検索してヒットした行を、次のように書き換えます。

【修正前】

   if(signal != 0 && getOpenLots(Magic1) == 0) {
      lots = 1001;

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

【修正後】

   if(signal != 0 && getOpenLots(Magic1) == 0) {
      lots = customlot1;

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

他にもポジションがある場合は、同様に2002→customlot2, 3003→customlot3と置き換えます。

変数の定義

置き換えた変数を定義します。input int Magic1 = 1;という行を見つけ、その上に追加します。
右辺は好きな値にしてください。

【修正前】

input int Magic1 = 1;

【修正後】

input double customlot1 = 0.01;
input double customlot2 = 0.01;
input double customlot3 = 0.01;
// 「ポジション4」以降が用意されている場合はそれも追加します。

input int Magic1 = 1;

以上でございます。
ご参考になりましたら幸いです。

そう
2025/06/21 17:20

ありがとうございます!解決しました!

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。