初学者的问题 MQL5 MT5 MetaTrader 5 - 页 994

 
Kolya32:
也谢谢你。这也行得通)

我也要感谢你:)))

这个人

double Candle = (iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point;
if(Candle < 0){Candle = Candle * -1;}
string Candle2 =  DoubleToString(Candle, 0);
int Candle3 = StringToInteger(Candle2);

可以用这个代替,效果一样。

int Candle = (int)fabs((iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point);
Документация по MQL5: Математические функции / MathAbs
Документация по MQL5: Математические функции / MathAbs
  • www.mql5.com
Математические функции / MathAbs - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 


日子过得不错。问题。我怎样才能将tick数据与时间框架条联系起来? 下面是代码的一部分。它可以切换缓冲区的颜色。想通了

有颜色,但不清楚如何在这里链接...?我对MqlRates 结构有一些想法,但不清楚该取哪个值...?我已经看到了它是如何工作的(文档中的例子),但数值跳动,不清楚为什么

//--- Подготовка данных
   int count=(limit>1 ? rates_total : 2),copied=0;
   copied=CopyBuffer(handle_ma,0,0,count,BufferPrice);
   if(copied!=count) return 0;
//----   
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      bp=NormalizeDouble(BufferPrice[i],_Digits);
//--- High signal
   if(bp>iOpen(NULL,PERIOD_CURRENT,i) && bp<iClose(NULL,PERIOD_CURRENT,i))
     {
      ExtOpenBuffer[i]=open[i];
      ExtHighBuffer[i]=high[i];
      ExtLowBuffer[i]=low[i];
      ExtCloseBuffer[i]=close[i];
      ExtColorsBuffer[i]=1;   / уфер изменения цвета
     }
//--- Low signal
   if(bp<iOpen(NULL,PERIOD_CURRENT,i) && bp>iClose(NULL,PERIOD_CURRENT,i))
     {
      ExtOpenBuffer[i]=open[i];
      ExtHighBuffer[i]=high[i];
      ExtLowBuffer[i]=low[i];
      ExtCloseBuffer[i]=close[i];
      ExtColorsBuffer[i]=2;
     }
     }
 
Alexey Viktorov:

我也要感谢你:)))

int Candle = (int)fabs((iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point);
也谢谢你。没有试过这种设计,但听我的话,它是有效的)
 
Kolya32:
也谢谢你。我没有试过这种设计,但我相信你的话,它是有效的)。

你不应该尝试。这是一个关于感谢的笑话,但代码是严肃的。既然有绝对值函数,为什么还要通过字符串将双倍数转换为英数呢...

 
kopeyka2:


日子过得不错。出现了一个问题。如何将tick数据链接到时间框架条。 下面是部分代码。它正在切换缓冲区的颜色。想通了

有颜色,但不清楚如何在这里链接...?我对MqlRates 结构有一些想法,但不清楚该取哪个值...?我看到了它是如何工作的(文档中的例子),但数值跳动,不清楚为什么。

你不检查收到的东西在

if(bp>iOpen(NULL,PERIOD_CURRENT,i) && bp<iClose(NULL,PERIOD_CURRENT,i))
if(bp<iOpen(NULL,PERIOD_CURRENT,i) && bp>iClose(NULL,PERIOD_CURRENT,i))

函数在发生错误时返回0。你的逻辑在第一种情况下的iOpen()和第二种情况下的iClose()出现错误数据的情况下也会起作用。

为了接收mql5中的tick数据,有一个结构MqlTick和函数CopyTicks(),在这个结构中,你可以获得必要数量的最后一个ticks的数据。然后,为了将其与时间框架的一个条形链接,你需要通过tick时间来获得条形号码。 iBarShift()和tick.time结构字段

 
Artyom Trishkin:

你不检查收到的东西在

函数在发生错误时返回0。你的逻辑在第一种情况下来自iOpen()的错误数据和第二种情况下来自iClose()的错误数据的情况下也会工作。

为了获得mql5中的tick数据,有一个结构MqlTick和函数CopyTicks(),在这个结构中,你可以获得必要数量的最后一个ticks的数据。然后,为了将其与时间框架的一个条形链接,你需要通过tick时间来获得条形号码。 iBarShift()和tick.time结构字段

谢谢。这里的困难(在我的问题中)是,烛台的颜色是由刻度线组成的。按时间框架的条条框框来说,这更容易。但是...这就是我再次来到这里的原因))))
 
kopeyka2:
谢谢你。这里的困难(在我的问题中)是,蜡烛被涂上了虱子。按时间框架的条条框框来说,这更容易。但是...这就是我再次来到这里的原因))))

请。那里(在你的问题中)我不明白什么...

 
Artyom Trishkin:

请。我不明白这里的任何东西(在你的问题中)...

我想我找到了一个类似的 3LineBreak https://www.mql5.com/ru/code/485
 
先生们,我不明白mt5测试器中连续亏损交易次数的参数在哪里,还是我必须给机器人规定这个参数? mt4有这个参数。 我找不到如何实现它。
附加的文件:
l9rnznuztu.jpg  73 kb
 
freelancerAntonyan:
先生们,我不明白mt5测试器中的连续亏损交易次数参数在哪里,还是需要在机器人中规定? mt4有这个参数,我找不到如何实现它。

你可以自己做计算,在自定义标准中选择。