Mq5 indicator binding

 

Hi friends! Please I need your help.

How can I bind two mq5 indicator together. One is running on Void OnInit()  the other is running on int OnInit()


Thanks

 
There is no such thing as “Void OnInit()” The keyword is “void” not “Void” and OnInit returns a status enumeration.
 
William Roeder #:
There is no such thing as “Void OnInit()” The keyword is “void” not “Void” and OnInit returns a status enumeration.

Thanks my friend. The Void is a typo error.

The issue is that I have two indicators, one functions is void OnInit while the second is int OnInit.

I have been trying to bind the two into one indicator even though they will operate independently.

I have been trying it to no avail. How can i solve the issue

 
kennymic1 #: The issue is that I have two indicators, one functions is void OnInit while the second is int OnInit.

What part of “There is no such thing as void OnInit()” was unclear? That function is never called.

 
kennymic1 #:

Check part of the code my friend

...

When you post code please use the CODE button (Alt-S)!

Use the CODE button

 
Sergey Golubev #:

When you post code please use the CODE button (Alt-S)!

Thanks friend

 
William Roeder #:

What part of “There is no such thing as void OnInit()” was unclear? That function is never called.

Check part of the code my friend



//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

void OnInit()



  {

  

//---- инициализация глобальных переменных 

   min_rates_total=Length+1;

   MRisk=0.5*(MoneyRisk-1);

//----

   BB_Handle=iBands(NULL,0,Length,0,Deviation,PRICE_CLOSE);

   if(BB_Handle==INVALID_HANDLE) Print(" Не удалось получить хендл индикатора iBands");



//---- превращение динамического массива в индикаторный буфер

   SetIndexBuffer(0,DownTrendSignal,INDICATOR_DATA);

//---- осуществление сдвига начала отсчёта отрисовки индикатора 1

   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);

//---- символ для индикатора

   PlotIndexSetInteger(0,PLOT_ARROW,108);

//---- запрет на отрисовку индикатором пустых значений

   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);

//---- индексация элементов в буфере как в таймсерии

   ArraySetAsSeries(DownTrendSignal,true);



//---- превращение динамического массива в индикаторный буфер

   SetIndexBuffer(1,DownTrendBuffer,INDICATOR_DATA);

//---- осуществление сдвига начала отсчёта отрисовки индикатора 2

   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total);

//---- символ для индикатора

   PlotIndexSetInteger(1,PLOT_ARROW,159);

//---- запрет на отрисовку индикатором пустых значений

   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);

//---- индексация элементов в буфере как в таймсерии

   ArraySetAsSeries(DownTrendBuffer,true);



//---- превращение динамического массива в индикаторный буфер

   SetIndexBuffer(2,DownTrendLine,INDICATOR_DATA);

//---- осуществление сдвига начала отсчёта отрисовки индикатора 3

   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total);

//---- запрет на отрисовку индикатором пустых значений

   PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0);

//---- индексация элементов в буфере как в таймсерии

   ArraySetAsSeries(DownTrendLine,true);



//---- превращение динамического массива в индикаторный буфер

   SetIndexBuffer(3,UpTrendSignal,INDICATOR_DATA);

//---- осуществление сдвига начала отсчёта отрисовки индикатора 4

   PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,min_rates_total);

//---- символ для индикатора

   PlotIndexSetInteger(3,PLOT_ARROW,108);

//---- запрет на отрисовку индикатором пустых значений

   PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,0);

//---- индексация элементов в буфере как в таймсерии

   ArraySetAsSeries(UpTrendSignal,true);



//---- превращение динамического массива в индикаторный буфер

   SetIndexBuffer(4,UpTrendBuffer,INDICATOR_DATA);

//---- осуществление сдвига начала отсчёта отрисовки индикатора 5

   PlotIndexSetInteger(4,PLOT_DRAW_BEGIN,min_rates_total);

//---- символ для индикатора

   PlotIndexSetInteger(4,PLOT_ARROW,159);

//---- запрет на отрисовку индикатором пустых значений

   PlotIndexSetDouble(4,PLOT_EMPTY_VALUE,0.0);

//---- индексация элементов в буфере как в таймсерии

   ArraySetAsSeries(UpTrendBuffer,true);



//---- превращение динамического массива в индикаторный буфер

   SetIndexBuffer(5,UpTrendLine,INDICATOR_DATA);

//---- осуществление сдвига начала отсчёта отрисовки индикатора 6

   PlotIndexSetInteger(5,PLOT_DRAW_BEGIN,min_rates_total);

//---- запрет на отрисовку индикатором пустых значений

   PlotIndexSetDouble(5,PLOT_EMPTY_VALUE,0);

//---- индексация элементов в буфере как в таймсерии

   ArraySetAsSeries(UpTrendLine,true);



//---- Установка формата точности отображения индикатора

   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);

//---- имя для окон данных и лэйба для субъокон 

   string short_name;

   StringConcatenate(short_name,"Bands(",Length,", ",

                     DoubleToString(Deviation,2),", ",DoubleToString(MoneyRisk,2),")");

   IndicatorSetString(INDICATOR_SHORTNAME,short_name);

//----   
 

Merging two indicators is not an easy job and sometimes it can be very complex.

However, if you need help, you will have to attach both indicator files, with complete code.

What you have shown is incomplete and we can provide no guidance based on what you have shown.