HistoryOrderGetTicket
HistoryOrderGetTicket
在历史中返回相关订单报价。优先调用HistoryOrderGetTicket(),首先需要接收使用HistorySelect()或者 HistorySelectByPosition() 函数的交易和订单历史记录。
ulong HistoryOrderGetTicket(
int index // 订单列表中的数量
);参量
- index
[in] 订单列表中的订单数。
返回值
无符长整型 值。 如果函数失败,则返回0。
注释
不能把出现在客户端"工具箱"的"交易" 标签中的当前挂单和交易历史订单弄乱。取消的或者导致的交易的订单列表可以在"工具箱"客户端中的"历史记录"标签浏览。
示例:
void OnStart()
{
datetime from=0;
datetime to=TimeCurrent();
//--- 要求全部历史记录
HistorySelect(from,to);
//--- 返回订单属性值变量
ulong ticket;
double open_price;
double initial_volume;
datetime time_setup;
datetime time_done;
string symbol;
string type;
long order_magic;
long positionID;
//--- 当前挂单数量
uint total=HistoryOrdersTotal();
//--- 循环检测通过订单
for(uint i=0;i<total;i++)
{
//--- 通过其列表中的位置返回订单报价
if((ticket=HistoryOrderGetTicket(i))>0)
{
//--- 返回订单属性
open_price= HistoryOrderGetDouble(ticket,ORDER_PRICE_OPEN);
time_setup= (datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_SETUP);
time_done= (datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_DONE);
symbol= HistoryOrderGetString(ticket,ORDER_SYMBOL);
order_magic= HistoryOrderGetInteger(ticket,ORDER_MAGIC);
positionID = HistoryOrderGetInteger(ticket,ORDER_POSITION_ID);
initial_volume= HistoryOrderGetDouble(ticket,ORDER_VOLUME_INITIAL);
type=GetOrderType(HistoryOrderGetInteger(ticket,ORDER_TYPE));
//--- 准备并显示订单信息
printf("#ticket %d %s %G %s at %G was set up at %s => done at %s, pos ID=%d",
ticket, // 订单报价
type, // 类型
initial_volume, // 已下的交易量
symbol, // 交易品种
open_price, // 规定的开盘价
TimeToString(time_setup),// 下订单时间
TimeToString(time_done), // 订单执行或者删除时间
positionID // 一个包括订单交易的仓位ID
);
}
}
//---
}
//+------------------------------------------------------------------+
//| 返回订单类型字符串名称 |
//+------------------------------------------------------------------+
string GetOrderType(long type)
{
string str_type="unknown operation";
switch(type)
{
case (ORDER_TYPE_BUY): return("buy");
case (ORDER_TYPE_SELL): return("sell");
case (ORDER_TYPE_BUY_LIMIT): return("buy limit");
case (ORDER_TYPE_SELL_LIMIT): return("sell limit");
case (ORDER_TYPE_BUY_STOP): return("buy stop");
case (ORDER_TYPE_SELL_STOP): return("sell stop");
case (ORDER_TYPE_BUY_STOP_LIMIT): return("buy stop limit");
case (ORDER_TYPE_SELL_STOP_LIMIT):return("sell stop limit");
}
return(str_type);
}另见
HistorySelect(), HistoryOrdersTotal(), HistoryOrderSelect(), 订单属性