МУЛЬТИФРЕЙМОВЫЕ ИНДИКАТОРЫ ФОРЕКС

Лучшие Форекс брокеры 2021:

Форекс индикатор Fractal MTF: мультифреймовое отображение фракталов

Форекс индикатор Fractal MTF предоставляет трейдеру отображение фракталов всех временных таймфреймов на одном выбранном графике.

По умолчанию фракталы вниз выделены синим цветом, фракталы вверх – красным цветом. При наведении курсора на линию индикатор выводит информацию о таймфрейме, на котором сформирован фрактал, и его ценовом уровне.

Форекс индикатор Fractal MTF будет удобен для трейдеров, использующих в своей торговле элементы фрактальной теории, и облегчит работу, позволяя видеть всю информацию на одном экране, не открывая дополнительные вкладки.

Простой индикатор сделать мультитаймфреймовым

Здравствуйте! Важен сам принцип, что и где менять чтобы он стал мультитаймфреймовым, к сожалению на сайте не нашел статьи как писать мультитаймфреймовые индикаторы.

Привожу наброски простого индикатора, где при изменении множителя таймфрейма Faktor — должны отображаться стрелки обозначающиее пересечении сигнальной линии МАКД и 0, на соответствующем множителю таймфрейме.

Стрелки отображаются, но почему то со смещением. Прошу Вашей помощи!

Рейтинг Форекс брокеров:

//+——————————————————————+
//| Proba4.mq5 |
//| Copyright 2022, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+——————————————————————+
#property copyright «Copyright 2022, MetaQuotes Software Corp.»
#property link «https://www.mql5.com»
#property version «1.00»
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//— plot Label1
#property indicator_label1 «Label1»
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrGreen
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//— input parameters
input int Faktor= 1 ; //Множитель ТФ
//— indicator buffers
double Label1Buffer[];
//— служебные массивы
double SignalBuffer[];

int Handle;
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit ()
<
//— indicator buffers mapping
SetIndexBuffer ( 0 ,Label1Buffer, INDICATOR_DATA );
//— setting a code from the Wingdings charset as the property of PLOT_ARROW
PlotIndexSetInteger ( 0 , PLOT_ARROW , 233 );
IndicatorSetInteger ( INDICATOR_DIGITS , _Digits );

//AO_Handle=iCustom(NULL,0,»AO_Zotik»,Faktor);
Handle= iMACD ( NULL , 0 , 12 *Faktor, 26 *Faktor, 9 *Faktor, PRICE_CLOSE );
Print ( BarsCalculated (Handle));

//—
return ( INIT_SUCCEEDED );
>
//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
<
//—
int to_copy,limit;
if (prev_calculated== 0 )
<
limit= 1 ;
to_copy=rates_total- 1 ;
if ( CopyBuffer (Handle, 1 , 0 ,rates_total,SignalBuffer)<= 0 )
<
Print ( «Getting MACD is failed! Error» , GetLastError ());
return ( 0 );
>
>
else
<
limit=prev_calculated- 1 ;
to_copy=rates_total- 1 ;
if ( CopyBuffer (Handle, 1 , 0 ,rates_total,SignalBuffer)<= 0 )
<
Print ( «Getting MACD is failed! Error» , GetLastError ());
return ( 0 );
>
>

for ( int i=limit; i<to_copy;i++)
if (SignalBuffer[i- 1 ] < 0 && SignalBuffer[i] > 0 )
Label1Buffer[i]=high[i]; //пересечение на графике
else
Label1Buffer[i]= EMPTY_VALUE ; //пустое значение
//— return value of prev_calculated for next call
return (rates_total);
>
//+——————————————————————+

  • FAQ по сервису Сигналы
  • Предсказание рынка на основе макроэкономических показателей
  • Интервью с Олегом Железко. В любом горячем секторе есть пузырь

Здравствуйте! Важен сам принцип, что и где менять чтобы он стал мультитаймфреймовым, к сожалению на сайте не нашел статьи как писать мультитаймфреймовые индикаторы.

Рейтинг Форекс платформ:

Привожу наброски простого индикатора, где при изменении множителя таймфрейма Faktor — должны отображаться стрелки обозначающиее пересечении сигнальной линии МАКД и 0, на соответствующем множителю таймфрейме.

Стрелки отображаются, но почему то со смещением. Прошу Вашей помощи!

//+——————————————————————+
//| Proba4.mq5 |
//| Copyright 2022, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+——————————————————————+
#property copyright «Copyright 2022, MetaQuotes Software Corp.»
#property link «https://www.mql5.com»
#property version «1.00»
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//— plot Label1
#property indicator_label1 «Label1»
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrGreen
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//— input parameters
input int Faktor= 1 ; //Множитель ТФ
//— indicator buffers
double Label1Buffer[];
//— служебные массивы
double SignalBuffer[];

Форекс Индикатор BIDLevel

int Handle;
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit ()
<
//— indicator buffers mapping
SetIndexBuffer ( 0 ,Label1Buffer, INDICATOR_DATA );
//— setting a code from the Wingdings charset as the property of PLOT_ARROW
PlotIndexSetInteger ( 0 , PLOT_ARROW , 233 );
IndicatorSetInteger ( INDICATOR_DIGITS , _Digits );

//AO_Handle=iCustom(NULL,0,»AO_Zotik»,Faktor);
Handle= iMACD ( NULL , 0 , 12 *Faktor, 26 *Faktor, 9 *Faktor, PRICE_CLOSE );
Print ( BarsCalculated (Handle));

//—
return ( INIT_SUCCEEDED );
>
//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
<
//—
int to_copy,limit;
if (prev_calculated== 0 )
<
limit= 1 ;
to_copy=rates_total- 1 ;
if ( CopyBuffer (Handle, 1 , 0 ,rates_total,SignalBuffer)<= 0 )
<
Print ( «Getting MACD is failed! Error» , GetLastError ());
return ( 0 );
>
>
else
<
limit=prev_calculated- 1 ;
to_copy=rates_total- 1 ;
if ( CopyBuffer (Handle, 1 , 0 ,rates_total,SignalBuffer)<= 0 )
<
Print ( «Getting MACD is failed! Error» , GetLastError ());
return ( 0 );
>
>

for ( int i=limit; i<to_copy;i++)
if (SignalBuffer[i- 1 ] < 0 && SignalBuffer[i] > 0 )
Label1Buffer[i]=high[i]; //пересечение на графике
else
Label1Buffer[i]= EMPTY_VALUE ; //пустое значение
//— return value of prev_calculated for next call
return (rates_total);
>
//+——————————————————————+

input int Faktor= 1 ; //Множитель ТФ
input ENUM_TIMEFRAMES timeframe = PERIOD_CURRENT; //Периоды графиков

Handle= iMACD ( NULL ,timeframe, 12 *Faktor, 26 *Faktor, 9 *Faktor, PRICE_CLOSE );

Но имей ввиду, что глубина массивов у таймфремов разная, соответственно рано или поздно ты получишь ошибку при копировании CopyBuffer.

Честные Форекс брокеры этого года:
Оцените статью
Сайт любителей Форекса