【異国のドラゴンボーナス】ブログ限定!口座開設で取引回数19000回の最強レベルのEAとインジケーターをプレゼント!

【MQL4勉強プログラミング】EAでロジックごとに別々のエントリーと決済を分ける方法は?サンプルコードあり!

OrderComment()関数は、選択した注文に付したコメントを取得するために使用します。

OrderComment()関数は、以下のように定義されています。

string OrderComment();

OrderComment()関数には引数がないので、()内には何も記述しません。

戻り値

選択した注文に付したコメントが返されます。

大人気!高評価!最強の平均足! 【異国のベスト平均足】

ご購入はこちらから

最強の平均足インジケーター!1分足~週足まで「ボタンで」一発切り替え&自動サイン生成!これ以上ない極上の平均足の使い勝手! | GogoJungle

注意点

OrderComment()関数を使用するためには、あらかじめOrderSelect()関数で注文を選択していなければなりません。

異国の戦士のEAならこれ!長期間の実績あり! 【異国のゴールデンゲート】

ikokuno-best-EA

ご購入はこちら

具体例

複数のロジック(「Logic_1」と「Logic_2」とします。)を搭載したEAにおいて、それぞれのロジックごとにエントリーと決済を分ける場合は、以下のように記述します。


#property strict

input int Magic         = 2222;      //マジックナンバー
input double Lots       = 0.1;       //取引ロット数
input string Comments_1 = "Logic_1"; //「Logic_1」のコメント
input string Comments_2 = "Logic_2"; //「Logic_2」のコメント

void OnTick()
{
 ……
 //決済
 for(int i = OrdersTotal() - 1; i >= 0; i--)
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
       {
        if(OrderComment() == Commnents_1)
          {
           if(Logic_1の決済条件)
             {
              bool Closed = OrderClose(OrderTicket(),OrderLots(),
                                       OrderClosePrice(),Magenta);
             }
          }
        else if(OrderComment() == Comments_2)
               {
                if(Logic_2の決済条件)
                  {
                   bool Closed = OrderClose(OrderTicket(),OrderLots(),
                                            OrderClosePrice(),Aqua);
                  }
               }
       }
    }
    
 //エントリー
 if(Logic_1のエントリー条件)
   {
    int Ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,Comments_1,Magic,0,Magenta);
   }
 if(Logic_2のエントリー条件)
   {
    int Ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,Comments_1,Magic,0,Aqua);
   }
}