close

函數:OrderGetTicket()
可用來查詢未成交之委託單相關數據,進一步調用OrderGetDouble()、OrderGetInteger()、OrderGetString()會返回先前複製的數據。這意味著訂單本身可能已不存在(或其開盤價、止損/獲利水平或到期日已更改),但仍可以獲得該訂單的數據。為確保收到有關訂單的最新數據,建議在引用它們之前立即調用 OrderGetTicket()。

 

函數:OrdersTotal()
可用來查詢未成交之委託單數量。

 

使用上述這二個函數,可以查到目前尚未成交之委託數量及委託資訊。(執行結果如下)

查詢委託單001 .png

原始程式碼如下

委託單查詢002.png

#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

void OnTick()
{
ulong    ticket;
double   open_price;
double   initial_volume;
datetime time_setup;
string   symbol;
string   type;
long     order_magic;
uint     total=OrdersTotal();//委託單數量

printf("目前尚未成交之委託單:"+total);//印出委託數量

for(uint i=0;i<total;i++)
{
  if(ticket=OrderGetTicket(i))
    {
     open_price    =OrderGetDouble(ORDER_PRICE_OPEN);
     time_setup    =(datetime)OrderGetInteger(ORDER_TIME_SETUP);
     symbol        =OrderGetString(ORDER_SYMBOL);
     order_magic   =OrderGetInteger(ORDER_MAGIC);
     initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
     type          =EnumToString(ENUM_ORDER_TYPE(OrderGetInteger(ORDER_TYPE)));
     
     printf("#ticket %d %s %G %s at %G was set up at %s",
                ticket,                  //委託單編號
                type,                    //委託單類型
                initial_volume,          //委託數量量
                symbol,                  //商品
                open_price,              //價格
                TimeToString(time_setup) //下單時間
                );
        }
}
}
arrow
arrow
    文章標籤
    元大期貨
    全站熱搜
    創作者介紹
    創作者 興小弟讀書筆記 的頭像
    興小弟讀書筆記

    興小弟讀書筆記

    興小弟讀書筆記 發表在 痞客邦 留言(0) 人氣()