初学者的问题 MQL4 MT4 MetaTrader 4 - 页 2

 
Vladimir Karputov:

正如你所建议的,编译器发誓。

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

不起作用。

 
Nickolay72:

正如你所建议的,编译器发誓。

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

它不起作用。

这是你的代码。

if(! Ticket>0)Print(GetLastError())--- 门票是一个整数,即 "2354865" 现在有一个问题:一个整数能不能不 (!2354865) 一个整数可以大于">0 "或小于"<0"。这个bool值可以是假/真( !)

此外,这种结构:if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true) ---- 它按票列举参数,如果你查看一个具体的票,检查它的魔法数字或符号是没有意义的,也就是说,这显然是不必要的:if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol() )

最后,这种结构最好用括号来明确规定数学任务的顺序:NormalizeDouble(Bid+( TakeProfit*Point),Digits)
 
Vitaly Muzichenko:


最后,最好用括号将这种结构明确指定矩阵任务的顺序:NormalizeDouble(Bid+( TakeProfit*Point),Digits)

不,你可以不使用括号来做。但当总和要被乘以时,就需要使用括号。

 
poman:

可以取0条开盘时间与周期D1的值,+添加秒数。

在条件中,将当前时间与第一行中获得的时间进行比较

在一个挂单中,可以设置一个秒数,即订单的有效期。

Data_1=iTime(Symbol(),PERIOD_D1,0)+86400;  //время жизни ордера


谢谢你的提示!)这很有帮助)
 

对代码的帮助,顾问会通过所有的柱子,如何让它通过最后200个柱子!谢谢

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
 

提供者_信号

关于交易、自动交易系统和测试交易策略的论坛

初学者的问题

供应商_信号, 2016.11.09 18:38

如何在周五晚上关闭EA的所有订单?以便不把它留给周末。

找到函数DayOfWeek()。

我可以写一张支票

if (DayOfWeek() == 5)
{
//
}

但我们应该为时间开出什么样的支票。例如,如果是22:00呢?


 
Vladimir Karputov:

提供者_信号

但是,当时要写什么样的支票呢。例如,22:00会是什么时间?
extern int St_Hour   = 22;

if (Hour()==St_Hour)
 
Aibek Mugiynov:

对代码的帮助,顾问会通过所有的柱子,如何让它通过最后200个柱子!谢谢

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
for (i=1; i<200; i++)
 

你好,帮助。

如果三条杠上没有缓冲区被填满,我就填满缓冲区。


     int BarCount=3;
    BER=true;
   for(int il=1;il<=BarCount;il++)
     {
      if(BufferPointUp[il]!= EMPTY_VALUE){BER=false;break;}
     }
     if(BER) BufferPointUp[i]=high[i];

在所有的酒吧里填充,不分青红皂白地填充。

但如果我这样做,一切都会正确。

if(BufferPointUp[i+1]== EMPTY_VALUE&&BufferPointUp[i+2]== EMPTY_VALUE&&BufferPointUp[i+3]== EMPTY_VALUE)BufferPointUp[i]=high[i];

如何在一个循环中做这个检查

 
mila.com:
extern int St_Hour   = 22;

if (Hour()==St_Hour)
谢谢你
原因: