新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1513

 
frank2020:

我是编程新手,不是很擅长,你能重做并提供下载吗?

这就是下载的内容。
 
MakarFX:
下载吧
谢谢你的回答,我下载了它,没有任何变化。我希望通道是在整个图表的历史上,而不是在一个短段????。
 
frank2020:
谢谢你的回答,我下载了它,但没有任何变化。我希望通道是在整个历史图表上,而不是在一个短的片段上????。
我不明白MQL5
 
Igor Makanu:

如果你想提醒自己,最好在OnChartEvent()中抛出一个自定义事件,这样更方便,我认为

就是这样,终端内任何图表之间的事件都是如此。

 
Ctrl+N
 

你好。我不知道如何编码计算穿越两个MA后的加速器震荡 波段,我需要在关闭第2个波段后(穿越MA后)在第3个波段上放一条垂直线。我明白,你可能会派我去学习参考书。但也许你至少会提出一个解决方案。如果能得到帮助,我将不胜感激。

void OnTick()
  {
      //обновлять данные всех индикаторов раз в период
   if(Update_Time != iTime(NULL,0,0))
     {
      Update_Time = iTime(NULL,0,0); //перезаписываем значение переменной для хранения времени текущей свечи

      //импорт данных индикатора Moving Averages.
      double FastMA_1 = iMA(NULL,0,FastMA,0,FastMA_method,PRICE_CLOSE,1);
      double FastMA_2 = iMA(NULL,0,FastMA,0,FastMA_method,PRICE_CLOSE,2);
      double SlowMA_1 = iMA(NULL,0,SlowMA,0,SlowMA_method,PRICE_CLOSE,1);
      double SlowMA_2 = iMA(NULL,0,SlowMA,0,SlowMA_method,PRICE_CLOSE,2);
      double   ac     = iAC(NULL,0,1);
      
         //---FastMA_1 выше SlowMA_1, т.е. произошло пересечение снизу вверх
                 
      if(FastMA_1 > SlowMA_1 && FastMA_2 <= SlowMA_2)
        {

//---Не пойму как сделать подсчет полос в iAC после пересечения МА...         
         if((ac[2]>0.0) && (ac[1]>ac[2]))
           {
             VLineCreate(0,"VLine",0,0,clrRed,STYLE_SOLID,1,false,true,true,0); 
           }
        }
     }
  }

我附上了一张图表的截图,以便直观地表示。

附加的文件:
 
DYM:

你好。我不知道如何编码计算穿越两个MA后的加速器震荡 波段,我需要在关闭第2个波段后(穿越MA后)在第3个波段上放一条垂直线。我明白,你可能会派我去学习参考书。但也许你至少会提出一个解决方案。如果能得到帮助,我将不胜感激。

我附上了一张图表的截图,以便直观地表示。

double   ac1     = iAC(NULL,0,1);

double   ac2     = iAC(NULL,0,2);
 
DYM:

你好。我不知道如何编码计算穿越两个MA后的加速器震荡 波段,我需要在关闭第2个波段后(穿越MA后)在第3个波段上放一条垂直线。我明白,你可能会派我去学习参考书。但也许你至少会提出一个解决方案。如果能得到帮助,我将不胜感激。

我附上了一张图表的截图,以便直观地表示。

检查MA交叉点不是在1和2条,而是在3和4条。而如果交叉,则检查1和2条的AO值。

 

非常感谢你。这很难,但我想我已经把它整理好了。在这里,它是。

void OnTick()
  {


      //импорт данных индикатора Moving Averages.
      double FastMA_1 = iMA(NULL,0,FastMA,0,0,PRICE_CLOSE,1);
      double FastMA_2 = iMA(NULL,0,FastMA,0,0,PRICE_CLOSE,2);
      double SlowMA_1 = iMA(NULL,0,SlowMA,0,0,PRICE_CLOSE,1);
      double SlowMA_2 = iMA(NULL,0,SlowMA,0,0,PRICE_CLOSE,2);
      double   ac     = iAC(NULL,0,0);
      double   ac1     = iAC(NULL,0,1);
      double   ac2     = iAC(NULL,0,2);
      
      
      
         //---Быстрая скользящая средняя (меньше периода) на первой свече выше медленной, т.е. произошло пересечение снизу вверх
      if(FastMA_1 > SlowMA_1 && FastMA_2 <= SlowMA_2)
        {
         
         if((ac>0.0) && (ac>ac1) && (ac1>ac2))
           {
             VLineCreate(0,"VLine",0,0,clrLimeGreen,STYLE_SOLID,1,false,true,true,0);
           }
        }
        
        //---Быстрая скользящая средняя (меньше периода) на первой свече ниже медленной, т.е. произошло пересечение cверху вниз
      if(FastMA_1 < SlowMA_1 && FastMA_2 >= SlowMA_2)
        {
         
         if((ac<0.0) && (ac<ac1) && (ac1<ac2))
           {
             VLineCreate(0,"VLine",0,0,clrOrangeRed,STYLE_SOLID,1,false,true,true,0);
           }
        }
  }

我拍了一张截图。

附加的文件:
 
DYM:

非常感谢你。这很困难,但我想我已经把它解决了。这是我得到的东西。

我拍了一张截图。

等待错误 4200
原因: