[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 49

 
vovan-gogan:
大家帮我看看代码:为什么这个EA在MA交叉时没有暂停。


这就是你的想法吗?

if (OrdersTotal()<= 1)
   return;
它只会从第二张开始打开订单。甚至不是从第二次开始,而是从第三次开始。
 
DhP, Roman, thanks!!!!!!
 
Dimka-novitsek:
DhP, Roman, thanks!!!!!!

清洁工作是否成功?
 
你好,请你给我一个提示好吗?在下面的代码中,我得到了 某一特定证券的最后一笔订单的收盘时间

for(j=0; j<OrdersHistoryTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() ==Symbol()
{
datetime ctm=OrderCloseTime();
break;
}

我希望这个证券的下一个订单只在三条杠之后,即第四条杠上打开,而不是之前。我怎样才能制作一张支票?
 
first_may:
你好,你能给我一个提示吗?在下面的代码中,我得到了某一特定证券的最后一笔订单的收盘时间。

for(j=0; j<OrdersHistoryTotal(); j++)
如果(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
如果(OrderSymbol()==Symbol())
{
datetime ctm=OrderCloseTime()。
突破。
}

我想在三个小节后,即第四个小节时,为这个证券开出下一个订单,但在这之前不可以。我怎样才能制作一张支票?

你确定它是最后一个关闭的吗?如果这是你遇到的第一个人呢?你正在跌出这个圈子。

 
artmedia70:

你确定它是最后一个关闭的吗?如果这是你遇到的第一个人呢?你已经脱离了这个圈子,对吗?




我正在翻阅历史,所有的逮捕令不都在那里吗?
 
first_may:

我在翻阅历史,所有的订单不都在那里吗?

你经历了历史,直到符号上的第一个订单,之后断裂 - 你退出了循环

如果你有100个订单,你将只看到一个

 
first_may:

我正在翻阅历史,所有的订单都在那里?

在这里。该函数将返回该EA最后收盘的条数。

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));
}

例如,你调用int BarClose=BarLastClosePose()。

BarClose变量将存储最后一个关闭头寸 的条数,或-1(如果没有条数)。魔法--EA魔法--把你的变量写在那里。
或者,如果你想检查所有的订单(即使是由另一个EA下的订单或由你自己手动打开的订单),请删除这一行
,然后你可以检查下一个订单何时可以打开(在多少个柱子之后)。

 
一般来说,目标是在该证券的最后一笔平仓订单之后,至少在三个柱状图之后,即第四个柱状图上开立订单,而不是之前。为了做到这一点,我翻阅了历史记录,如果我从历史记录中看到这个证券的订单,我就认为它已经关闭,而且是最后一次。我是否认为订单 将按时间顺序选择 是错误的?
 
first_may:
一般来说,目标是在该证券的最后一笔平仓订单之后,至少在三个柱状图之后,即第四个柱状图上开立订单,而不是之前。为了做到这一点,我翻阅了历史记录,如果我从历史记录中看到这个证券的订单,我就认为它已经关闭,而且是最后一次。我是否认为订单将按时间顺序选择是错误的?
你不愿意研究上面的例子是错误的
原因: