ポジション毎に別のコメントを設定したいです

2025/08/01 07:54
15

お世話になります。

すべてのポジションに同一のコメントをつけることはEAつくーるで可能だと思いますが、
例えばポジション1から10まで別のロジックを設定している場合、各ポジション毎に別のコメントとなるように設定することは可能でしょうか。

コメント

GogoJungle
2025/08/01 12:43

EAつくーるの機能のみではポジション毎に別のコメントを付けることはできませんが、コードを少し修正すれば実現します。
改造方法を考えてみましたので、提案させていただきます。

関数のコピペと内容の変更

ダウンロードしたコードをMetaEditorで開き、一番下に、次の関数をコピペします。

//+--------------------------------------------------------------------------------------------------------+
//| マジックナンバーに応じたコメントを取得する関数
//|   処理:Magic1, Magic2, Magic3, ... に対応するコメントを返す
//|   引数:マジックナンバー
//|   戻り値:該当するコメント文字列(存在しない場合は空文字)
//+--------------------------------------------------------------------------------------------------------+
string getMagicComment(int magic)
{
   if (magic == Magic1)  return "Magic1のコメント";
   if (magic == Magic2)  return "Magic2のコメント";
   if (magic == Magic3)  return "Magic3のコメント";
   if (magic == Magic4)  return "Magic4のコメント";
   if (magic == Magic5)  return "Magic5のコメント";
   if (magic == Magic6)  return "Magic6のコメント";
   if (magic == Magic7)  return "Magic7のコメント";
   if (magic == Magic8)  return "Magic8のコメント";
   if (magic == Magic9)  return "Magic9のコメント";
   if (magic == Magic10) return "Magic10のコメント";

   return ""; // 該当なし
}

「Magic〇」の横にある「Magic〇のコメント」が、各ポジション毎に表示させるコメントです。
こちらをお好きな文字列に編集してください。
また、if文の数はポジションの数に合わせる必要があります。例えば、ポジションが1~8までなら、9、10の行は削除してください。

関数の利用

ticket = OrderSendと検索してヒットした行を、【修正後】のように書き換えます。(コピペOKです。)
決め打ちだったcommentを先程定義した関数に置き換えることで、マジックナンバーに応じて別のコメントを取得して表示できるようになるわけです。

【修正前】

ticket = OrderSend(Symbol(), type, lots, price, Slippage, sl, tp, comment, magic, 0, ArrowColor[type]);

【修正後】

ticket = OrderSend(Symbol(), type, lots, price, Slippage, sl, tp, getMagicComment(magic), magic, 0, ArrowColor[type]);

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

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。