Как вставить свой индикатор?

 

При добавлении своего индюка дает ошибку.......хочу вместо МА поставить forex_glaz

if(GetLastError()!=0) 
   return (error_signal);

double ma=iMA(NULL,0,ma_period,0,MODE_SMMA,PRICE_CLOSE,0);
 
Сергей Дыбленко:

При добавлении своего индюка дает ошибку.......хочу вместо МА поставить forex_glaz

if(GetLastError()!=0) return (error_signal);
   double ma=iCustom(NULL,0,"forex_glaz");

наверное так 

а еще вверху кода - наверное нужно добавить 

#resource "\\Indicators\\forex_glaz.ex5"
 
Aleksandr Klapatyuk:

наверное так 

а еще вверху кода - наверное нужно добавить 

А это для чего?

 

Aleksandr Klapatyuk 

вышло только вывести индюк а робот почему то не работает, не открывает сделки! В чем беда?

Aleksandr Klapatyuk
Aleksandr Klapatyuk
  • www.mql5.com
Профиль трейдера
 
Aleksandr Klapatyuk:

наверное так 

а еще вверху кода - наверное нужно добавить 

период ведь нужен для индюков али как?
 
а что он хочет от меня??????
Файлы:
221.jpeg  950 kb
 
Alexey Viktorov:

А это для чего?

это наверное

#resource "\\Indicators\\forex_glaz.ex5"

- не запустит код ,без этого файла . будет выдавать ошибку  

 
Сергей Дыбленко:
период ведь нужен для индюков али как?

если есть настройки индикатора - то да!

if(GetLastError()!=0) return (error_signal);
   double ma=iCustom(NULL,0,"forex_glaz",тут,тут,тут,тут,тут);

как в индикаторе с верху в низ - по очереди в( тут)

 
Сергей Дыбленко:
а что он хочет от меня??????

это ваш эксперт - какое то предупреждение выдаёт

 
Сергей Дыбленко:

Aleksandr Klapatyuk 

вышло только вывести индюк а робот почему то не работает, не открывает сделки! В чем беда?

тут уже посложней . может индикатор и подойдёт - а может и не подойти .

надо смотреть код 

вот пример ---------

два индикатора -- макд и ма ------------

//+------------------------------------------------------------------+
//| main function returns true if any position processed             |
//+------------------------------------------------------------------+
bool CSampleExpert::Processing(void)
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
      return(false);
//--- refresh indicators
   if(BarsCalculated(m_handle_macd)<2 || BarsCalculated(m_handle_ema)<2)
      return(false);
   if(CopyBuffer(m_handle_macd,0,0,2,m_buff_MACD_main)  !=2 ||
      CopyBuffer(m_handle_macd,1,0,2,m_buff_MACD_signal)!=2 ||
      CopyBuffer(m_handle_ema,0,0,2,m_buff_EMA)         !=2)
      return(false);
//   m_indicators.Refresh();
//--- to simplify the coding and speed up access
//--- data are put into internal variables
   m_macd_current   =m_buff_MACD_main[0];
   m_macd_previous  =m_buff_MACD_main[1];
   m_signal_current =m_buff_MACD_signal[0];
   m_signal_previous=m_buff_MACD_signal[1];
   m_ema_current    =m_buff_EMA[0];
   m_ema_previous   =m_buff_EMA[1];
//--- it is important to enter the market correctly, 
//--- but it is more important to exit it correctly...   
//--- first check if position exists - try to select it
они работают по разному 
 

попробуйте в эксперт MACD Sample.mq5 который в терминале - вложить свой индикатор

//+------------------------------------------------------------------+
//| Initialization of the indicators                                 |
//+------------------------------------------------------------------+
bool CSampleExpert::InitIndicators(void)
  {
//--- create MACD indicator
   if(m_handle_macd==INVALID_HANDLE)
      if((m_handle_macd=iMACD(NULL,0,12,26,9,PRICE_CLOSE))==INVALID_HANDLE)
        {
         printf("Error creating MACD indicator");
         return(false);
        }
//--- create EMA indicator and add it to collection
   if(m_handle_ema==INVALID_HANDLE)
      if((m_handle_ema=iMA(NULL,0,InpMATrendPeriod,0,MODE_EMA,PRICE_CLOSE))==INVALID_HANDLE)
        {
         printf("Error creating EMA indicator");
         return(false);
        }
//--- succeed
   return(true);
  }
//+------------------------------------------------------------------+
тут можно пробовать - или  iMACD заработает или на iMA