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

 
它仍然不工作...你能给我一些更多的细节,让我知道那些哑巴的情况吗? 让我们来看看...我应该在我的代码前面加上什么?什么变量?我无法调用该函数...你是写了几种解决这个问题的方法,还是只有一种方法?我很喜欢这个...
 
r772ra:

你可以这样做.....
这样的变体将无法正常工作,因为NewBar只在条形的第一个刻度上给出真值。为了正确工作,有必要将FunNewBar(); if(!NewBar)返回; 放在交易开盘条件内,并在成功开盘后。
 
alsu:
这个变体不能正常工作,因为NewBar只在条形图的第一个刻度上给出真值。为了正确工作,我们应该把FunNewBar(); if(!NewBar)返回; 行放在交易开仓的条件内,并在成功开仓后。
虽然,这样的说法也不太正确。简而言之,r772ra的 变体必须得到纠正,更好的是,我们应该使用一种根本不同的方法,例如,观察历史上 最后一笔订单 的开仓时间,并与当前栏的时间进行比较--这将更加可靠。
 
alsu:
虽然它不会完全正确。简而言之,r772ra的 变体应该被纠正,最好使用一个根本不同的方法,例如,观察历史上最后一个订单的开盘时间,并与当前栏的时间进行比较--这将更可靠。

情况是这样的。

int BarOfLastOrder(int magic)
{
   int i,ot=OrdersTotal();
   
   for(i=ot-1; i>=0; i--);
   {
      OrderSelect(i,SELECT_BY_POS);
      if(OrderMagicNumber()==magic) return(iBarShift(0,0,OrderOpenTime()));
   }
   
   return(-1);
}

int start()
{

   ........

   int bar_of_last_order = BarOfLastOrder(magic); // указать магик, который использует советник

   switch(bar_of_last_order)
   {
      case 0:
         //последний ордер открыт на текущем баре
         ...
         break;
      case -1:
         //ордеров нет
         // здесь break не ставим, если ситуация "нет ордеров" и "последний ордер открыт не на текущем баре" нужно обрабатывать одинаково
         // в противном случае написать обработку и break;
      default:
         //последний ордер открыт не на текущем баре
         ...
         break;
   }

   .........

}
 
谢谢你!我可以试一试...
 
7sintez:
谢谢你!我可以试一试...
调整了代码
 
alsu:
调整了代码
啊哈!!!。我现在要尝试做一些事情......
 

耶!!!。我通过了

{
static datetime New_Time=0。
New_Bar=false。
如果(New_Time!=Time[0])
{
New_Time=Time[0];
New_Bar=true。
}
}

 
7sintez:
如果我把信号放在开盘后的第一个负数条上,它能起作用吗?

 
非常感谢大家的帮助!我还没有用过的代码--把它们复制到记事本里了!当我有时间时,我会研究一下它们的。再三感谢,再三感谢,朋友们!