int BarLastClosePose() {
datetime t;
for (int i=0; i<OrdersHistoryTotal(); i++) {
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if (OrderMagicNumber()!=Magic) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
return(iBarShift(Symbol(), Period(), t, True));
}
大家帮我看看代码:为什么这个EA在MA交叉时没有暂停。
它只会从第二张开始打开订单。甚至不是从第二次开始,而是从第三次开始。这就是你的想法吗?
DhP, Roman, thanks!!!!!!
清洁工作是否成功?
for(j=0; j<OrdersHistoryTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() ==Symbol()
{
datetime ctm=OrderCloseTime();
break;
}
我希望这个证券的下一个订单只在三条杠之后,即第四条杠上打开,而不是之前。我怎样才能制作一张支票?
你好,你能给我一个提示吗?在下面的代码中,我得到了某一特定证券的最后一笔订单的收盘时间。
for(j=0; j<OrdersHistoryTotal(); j++)
如果(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
如果(OrderSymbol()==Symbol())
{
datetime ctm=OrderCloseTime()。
突破。
}
我想在三个小节后,即第四个小节时,为这个证券开出下一个订单,但在这之前不可以。我怎样才能制作一张支票?
你确定它是最后一个关闭的吗?如果这是你遇到的第一个人呢?你正在跌出这个圈子。
你确定它是最后一个关闭的吗?如果这是你遇到的第一个人呢?你已经脱离了这个圈子,对吗?
我正在翻阅历史,所有的逮捕令不都在那里吗?
我在翻阅历史,所有的订单不都在那里吗?
你经历了历史,直到符号上的第一个订单,之后断裂 - 你退出了循环。
如果你有100个订单,你将只看到一个
。
我正在翻阅历史,所有的订单都在那里?
在这里。该函数将返回该EA最后收盘的条数。
例如,你调用int BarClose=BarLastClosePose()。
BarClose变量将存储最后一个关闭头寸 的条数,或-1(如果没有条数)。魔法--EA魔法--把你的变量写在那里。
或者,如果你想检查所有的订单(即使是由另一个EA下的订单或由你自己手动打开的订单),请删除这一行
,然后你可以检查下一个订单何时可以打开(在多少个柱子之后)。
一般来说,目标是在该证券的最后一笔平仓订单之后,至少在三个柱状图之后,即第四个柱状图上开立订单,而不是之前。为了做到这一点,我翻阅了历史记录,如果我从历史记录中看到这个证券的订单,我就认为它已经关闭,而且是最后一次。我是否认为订单将按时间顺序选择是错误的?