bool OrderSelect(int index, int select, void pool)此函数用于选择订单。
如果函数选择成功,返回的值为TRUE; 如果选择失败,返回的值为FALSE。
如果订单的平仓时间为0,则说明该订单为进入市场的已成交单或已发出的挂单。如果平仓时间不为0,则为历史中的 已平仓单或已取消的挂单
bool OrderSelect( int index, int select, int pool=MODE_TRADES) 选定订单
:: 输入参数
index - 订单索引
select - 选定模式 有两种:
SELECT_BY_TICKET
(按单号)
SELECT_BY_POS,(按序号)
pool - (可选项) 订单状态的索引.
当选定模式只有为
SELECT_BY_POS时, 它才可以使用以下两个参数之一.
MODE_TRADES (默认)- 在交易中模式:正在交易中的订单中选择(包括现已在市场中的订单和 尚未成交的挂单),
MODE_HISTORY - 在历史中模式:从交易历史中的订单中选择 (包括已平仓订单 和 已撤消的挂单).
//-----------------------------------------------------------------------------------------------------------------------------------------
SELECT_BY_POS 对于持仓单和挂单是按下单时间顺序;
对于已平仓的历史单是平仓时间为顺序,pos相当于索引,ticket才是标识。
//-----------------------------------------------------------------------------------------------------------------------------------------
OrderSelect(
ticket, SELECT_BY_
TICKET, MODE_TRADES)
根据单号 ticket就是单据号码
OrderSelect(
cnt, SELECT_BY_
POS, MODE_TRADES)
根据单子的位置顺序来操作(时间最前面的编号为1,后面的以此类推2,3,4,5) cnt就是序号
//-----------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(转)OrderSelect说明
bool OrderSelect( int index, int select, int pool=MODE_TRADES)
选定订单
:: 输入参数
index - 订单索引
select - 选定模式,SELECT_BY_POS,SELECT_BY_TICKET
pool - Optional order pool index. Used when select 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).
示例:
if(OrderSelect(12470, SELECT_BY_TICKET)==true)
{
Print("order #12470 open price is ", OrderOpenPrice());
Print("order #12470 close price is ", OrderClosePrice());
}
else
Print("OrderSelect failed error code is",GetLastError());
据我的了解是在你用 ordersend () 的时候,你会得到一个 ticket 号码,
你在使用OrderSelect()时,你可以选择单一交易单,或者是所有的交易单 (正在交易的单)
选择单一的交易单
OrderSelect(这个 ticket 号码,SELECT_BY_TICKET)
total = OrdersTotal(); 找出已经成交的数量
SELECT_BY_POS = select by using position 就是选择利用位置
SELECT_BY_TICKET = select by using ticket number 就是选择利用单据号码
当你利用:
total = OrdersTotal();
for(int cnt=0;cnt
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
......
你已经知道当前你拥有的单子数量,就是total
比如说你已经开了10个单子,那么系统已经排好单子次序。。。
所以你才用 for(int cnt=0;cnt
利用 cnt 的数目来选择你要打开的单子。。。
当你用ordersend()的时候,你是应该这样写的
int ticket = Ordersend(Symbol(),OP_SELL,Lots,Bid,3,......................
这样你就会得到 ticket 的号码, 就比如12470
那么如果你要选择这个单子就用:
OrderSelect(12470, SELECT_BY_TICKET)
index - Order index or order ticket depending on the second parameter.
如果你用SELECT_BY_TICKET,index = 单子号码
如果你用SELECT_BY_POS, index = 单子排名
pool - Optional order pool index. Used when the selected parameter is SELECT_BY_POS. It can be any of the following values:
这个只用在SELECT_BY_POS,如果SELECT_BY_TICKET就填空
MODE_TRADES (default)- order selected from trading pool(opened and pending orders),
已经打开的单子和挂单
MODE_HISTORY - order selected from history pool (closed and canceled order).
已
转载请注明原文地址: https://www.6miu.com/read-2622879.html