解決済み

ポジション別にオンオフ機能をつける

EAつくーる
希望の星チャート
2025/08/19 12:49
39

ポジション別に、オンオフ機能をつけて、EA購入者が好みの手法のみに限定することが可能なEAを作成したいと考えています


ポジション1:ゴールデンクロス ON/OFF
ポジション2:パラボリック陽転 ON/OFF
ポジション3:ローソク足大陽線 ON/OFF

これを導入する場合、どのような追記修正が必要になりますか?

よろしくお願いいたします。

コメント

GogoJungle
2025/08/19 15:25

ポジションごとに「ON/OFF」の切り替え機能を持たせたいというご要望ですね。残念ながら、EAつくーるの標準機能のみではポジション単位でのON/OFF設定をつけることはできません。そのため、出力されたコードをMetaEditorで少し改造することで実現可能であると存じます。修正方法をご提案いたします。


準備

まず通常どおり、EAつくーるでポジション1~3の条件を設定してEAを出力してください。
その後、MetaEditorでコードを開き、以下の修正を行います。


修正方法

各ポジションに対応する「ON/OFF切り替え用の入力パラメータ」を追加し、それを条件分岐に組み込む形です。

1. 入力パラメータを追加する

冒頭の input 定義の近くに以下を追記してください。

【修正前】

input int Magic1 = 1;
input int Magic2 = 2;
input int Magic3 = 3;

input double Lots       = 0.1;
input double StopLoss   = 100;
input double TakeProfit = 100;

【修正後】

input int Magic1 = 1;
input int Magic2 = 2;
input int Magic3 = 3;

// ポジションごとのON/OFF設定(1=有効, 0=無効)
input bool EnablePos1 = true;
input bool EnablePos2 = true;
input bool EnablePos3 = true;

input double Lots       = 0.1;
input double StopLoss   = 100;
input double TakeProfit = 100;

2. OnTick内の各ポジションの判定に組み込む

「if(signal != 0 && getOpenLots(MagicX) == 0)」を探して、ON/OFF条件を追加します。

ポジション1の修正例

【修正前】

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

【修正後】

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

ポジション2の修正例

【修正前】

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

【修正後】

if(EnablePos2 && signal != 0 && getOpenLots(Magic2) == 0) {
   if(openPosition(signal, lots, take_profit, stop_loss, Magic2)) {
      bars2 = Bars;
   }
}

ポジション3の修正例

【修正前】

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

【修正後】

if(EnablePos3 && signal != 0 && getOpenLots(Magic3) == 0) {
   if(openPosition(signal, lots, take_profit, stop_loss, Magic3)) {
      bars3 = Bars;
   }
}

まとめ

上記のように修正すると、EAのパラメータ入力画面に「EnablePos1 / EnablePos2 / EnablePos3」が追加されます。EA購入者は任意のポジションだけ「true(ON)」にして使えるようになります。

EAつくーるの出力コードはシンプルなので、このようにON/OFFスイッチを埋め込む改造は比較的容易です。

希望の星チャート
2025/08/19 15:38

たいへん助かりました。ありがとうございました。

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。