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

 

你好!我正在 根据文章https://www.mql5.com/ru/articles/648重新设计我的专家顾问,并试图插入我自己的功能。问题是,我无法将指标改为分形。如果signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE)我用iFractals(Symbols[s], PERIOD_M15)代替它;我得到错误的价格。你能帮助并调整一下代码吗?

//+------------------------------------------------------------------+
//| Получает хэндлы индикаторов                                      |
//+------------------------------------------------------------------+
void GetIndicatorHandles()
  {
//--- Пройдемся по всем символам
   for(int s=0; s<NUMBER_OF_SYMBOLS; s++)
     {
      //--- Если торговля по этому символу разрешена
      if(Symbols[s]!="")
        {
         //--- Если хэндл еще не получен
         if(signal_indicator_handles[s]==INVALID_HANDLE)
           {
            //--- Получим хэндл индикатора
            signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE);
            //--- Если не удалось получить хендл индикатора
            if(signal_indicator_handles[s]==INVALID_HANDLE)
               Print("Не удалось получить хэндл индикатора для символа "+Symbols[s]+"!");
           }
        }
     }
  }

//+------------------------------------------------------------------+
//| Получает значения индикаторов                                    |
//+------------------------------------------------------------------+
bool GetIndicatorsData(int symbol_number)
  {
//--- Количество значений индикаторного буфера для определения торгового сигнала   
   int NumberOfValues=3;
//--- Если хэндл индикатора был получен
   if(signal_indicator_handles[symbol_number]!=INVALID_HANDLE)
     {
      //--- Установим обратный порядок индексации (... 3 2 1 0)
      ArraySetAsSeries(indicator[symbol_number].value,true);
      //--- Получим значения индикатора
      if(CopyBuffer(signal_indicator_handles[symbol_number],0,0,NumberOfValues,indicator[symbol_number].value)<NumberOfValues)
        {
         Print("Не удалось скопировать значения ("+
               Symbols[symbol_number]+"; "+TimeframeToString(_Period)+") в массив indicator! Ошибка ("+
               IntegerToString(GetLastError())+"): "+ErrorDescription(GetLastError())+"");
         return(false);
        }
      return(true);
     }
//--- Если хэндл индикатора не получен, то...
   else
     {
      // ...попробуем получить его еще раз
      GetIndicatorHandles();
     }
   return(false);
  }
  

Проверка
Print("++++++++indicator[symbol_number][0]",Symbols[symbol_number],"= ",indicator[symbol_number].value[0]);
Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
  • 2013.06.11
  • Anatoli Kazharski
  • www.mql5.com
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
 
大家好,请问是否可以在MT5中关闭我不感兴趣的类别的新闻,而仅仅是杂乱的新闻窗口?我怎样才能做到这一点呢?
 
你能告诉我如何找出一个新创建的图表的chart_id吗?
 
你是用手创作的吗?
 
Karputov Vladimir:
你是用手创作的吗?

没有。

void OnStart() { ChartOpen("GBPUSD", PERIOD_H1); }
 

大家好!

帮助解决这个问题。

如何使所使用的标准指标在专家顾问测试 完成后不显示在MT4图表窗口?

 
Sergei Konoplev:

大家好!

帮助解决这个问题。

如何使所使用的标准指标在专家顾问测试 完成后不显示在MT4图表窗口?

参见HideTestIndicators()函数的帮助。
 
-Aleks-:

没有。

void OnStart() { ChartOpen("GBPUSD", PERIOD_H1); }

你可以通过以下方式获得所创建图形的标识符。

void OnStart()
  {
   ResetLastError();
   long Chart_ID=ChartOpen("GBPUSD",PERIOD_H1);
   if(Chart_ID!=0)
      Print("Идентификатор созданного графика: ",Chart_ID);
   else
      Print("Ошибка открытия нового графика: ",GetLastError());
  }
 
Vitalii Ananev:
参见HideTestIndicators()的帮助。
一切都简单得出奇!谢谢,这个提示很有帮助)。
 
Karputov Vladimir:

获取所创建图形的标识符,如下所示。

谢谢你。是否有可能获得由用户或其他脚本创建的最后一个图形的ID,该图形已停止工作?