วันอังคารที่ 23 พฤษภาคม พ.ศ. 2560

ฝึกเขียน EA ศึกษาฟังก์ชั่น OrderSelect

bool  OrderSelect(
   int     index,            // index or order ticket
   int     select,           // flag
   int     pool=MODE_TRADES  // mode
   );
Parameters
  • ticket
        [in]  Order index or order ticket depending on the second parameter.
  • select
          [in]  Selecting flags. It can be any of the following values:
                  SELECT_BY_POS - index in the order pool,
                  SELECT_BY_TICKET - index is order ticket.
  • pool=MODE_TRADES
          [in]  Optional order pool index. Used when the selected parameter is SELECT_BY_POS. It can  be any of the following values:
                  MODE_TRADES (default)- order selected from trading pool(opened and pending orders),
                  MODE_HISTORY - order selected from history pool (closed and canceled order).

Returned value
It returns true if the function succeeds, otherwise falses. To get the error information, one has to call the GetLastError() function.

Example
  if(OrderSelect(12470, SELECT_BY_TICKET)==true)
    {
     Print("order #12470 open price is ", OrderOpenPrice());
     Print("order #12470 close price is ", OrderClosePrice());
    }
  else
    Print("OrderSelect returned the error of ",GetLastError());
     if(OrdersTotal()>0)
       {  
          double LastOpenPrice;
          OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);//Point 1
          LastOpenPrice=OrderOpenPrice();          
           if(LastOpenPrice-Ask >Point*20) //Point 2
            {
              OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,"Example",0,0,Green);
            }
        }
for(int i=0;i<total;i++)
{  
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          int type   = OrderType();             
          bool result = false;
              
       switch(type)
          {
          case OP_BUY  : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Pink);
                         break;     
          case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Pink);
                         break;
          case OP_BUYLIMIT  : result = OrderDelete(OrderTicket());
                         break;     
          case OP_SELLLIMIT : result = OrderDelete(OrderTicket());
                         break;  
          case OP_BUYSTOP  : result = OrderDelete(OrderTicket());
                         break;     
          case OP_SELLSTOP : result = OrderDelete(OrderTicket());
                         break;                          
          }
 }

ไม่มีความคิดเห็น:

แสดงความคิดเห็น