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

 

请帮助解决两个简单的脚本,它们可以打开

买入和卖出的挂单,并设置止损和止盈。

与当前价格的距离。我奇迹般地写了一个能用的。

我不小心删除了它,现在我不记得我做了什么来使它工作。

你唯一的希望...

出售。


int start()
{
OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid-20*Point,3,Bid+50*Point,Bid-50*Point);

return(0);
}


并购买


int start()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid+50*Point,Bid-50*Point);

return(0);
}

请帮助...

 
NickXXX:

大家好!

今天我在锻炼时间)例如,我需要让一个指标在某个时间做某件事。

代码将如下。

现在,假设我们希望我们的条件不仅在21:30起作用,而且在22:00、22:30、23:00起作用,等等。

当然,你可以做到以下几点。

但我认为这在某种程度上是不合理的,特别是如果会有很多检查站。我认为你可以而且更简单。

问题是,如何使它更容易(对)?

这里要看时间条件是否适合某种规律,是否有一种模式。例如,对于你的情况,每半小时:如果(TimeCurrent()%1800==0){tra-ta}。如果这些时间点没有逻辑--你的选择。只是我不喜欢它,它是一个严格的平等,如果在这一分钟没有打勾,EA就会错过这个条件。
 
Figar0:
在这里,一切都取决于时间条件是否受制于任何法律,是否有一个模式。例如,对于你的情况,每半小时:如果(TimeCurrent()%1800==0){tra-ta}。如果这些时间点没有逻辑--你的选择。只是我不喜欢它,它是一个严格的平等,如果在这一分钟没有打勾,EA就会错过这个条件。

即检查其余部门 的工作。但在我看来,在这种情况下,总是会有剩余的部分......

我完全同意严格的平等,我还没有想清楚。原则上,你也许可以做一些类似于区间的事情,比如16.00-16.03。

但重点只是让它每半小时做一次计算,然后去睡觉。这样,系统就不会不断被不必要的计算所累。

 
NickXXX:

即检查其余部门的工作。但在我看来,在这种情况下,总是会有剩余的部分......


是的,你是对的,这样更好:如果(TimeCurrent()%1800<60){tra-ta}。
 
Figar0:

嗯,是的,你是对的,最好像这样:如果(TimeCurrent()%1800<60){tra-ta}。

< 0.6,或其他类似的东西。除法的余数 总是小于1 :)
 

如果有很多这样的变数怎么办?

double Time_Mes_1=21.30;
double Time_Mes_2=22.00;
double Time_Mes_3=22.30;
...

这是不是太糟糕了,还是会有效果?

还有一个小问题,如果说我为一个条件的执行设置了一个时间间隔(例如16.00-16.03)。如何让它只执行一次,尽管有新的刻度线到来?

 

1.有一种数据类型: Datetime。如果你想要一些特殊的东西,你可以用int来表示时间,但double是一个极端的情况。

2.往后翻5-10页:上面写着如何做你想要的事情。

 

你好。

请帮助我纠正代码。

下面的两行都有故障。

提前感谢。

if((OrderMagicNumber()==MAGIC || OrderMagicNumber()==777))

if((OrderMagicNumber()==(MAGIC || 777))

该方案本身。

int OrdTicket_b()
 {
  string SMB=Symbol();
  int OrdTicket;
  int MAGIC;
  int i;
  for (i=0; i<OrdersHistoryTotal(); i++)
   {
    if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderSymbol()==SMB)
       {
        if(OrderMagicNumber()==MAGIC || OrderMagicNumber()==777)
         {
          if(OrderType()==OP_BUY || OrderType()==OP_SELL)
           {
            OrdTicket=OrderTicket();
           }  
         }  
       }          
     }
   }
  return(OrdTicket);
 }
 
tara:
请不要在公共场合传播异端。去别的地方发呆吧,那里有很多东西可以玩...。
 
tara:

1.有一种数据类型:Datetime。如果你想要一些特殊的东西,你可以用int来表示时间,但double是一个极端的情况。

如果你想使用时间,你必须使用int和double。 2)向后倒退5-10页:那里写着如何做你想要的东西。

1.好吧,这里的双倍只是用来增加分钟和小时,以便你可以把检查点标记为HHMM(如16. 23)。

2.看了最后几页,当然也有关于日期时间的,但不完全一样。他们只是 HH.MM格式输出 最后一个订单的时间。