
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
я думаю мы друг друга не правильно поняли....Ярким примером для решения моей проблемы в понимании мультитаймфрейменности будет показать пример как сделать индикатор фрактал мульттаймфрейменным. а именно что я хочу - на графике М1 видеть фракталы М5. Все просто...ничего не усложняем.... таймфрейм м5 я задаю в параметрах индикатора. Как это реализовать?
К сожалению вы правы, мы не понимаем друг друга. Думаю, на форуме найдутся ребята которые смогут вам помочь.
Удачи!
К сожалению вы правы, мы не понимаем друг друга. Думаю, на форуме найдутся ребята которые смогут вам помочь.
Удачи!
Привожу пример простого индикатора, который при пересечении MACD и 0 выводит стрелки на графике цены.
В индикаторе использую множитель для таймфрейма
input int Faktor=4;
Если кинуть этот индикатор на минутный график, то по умолчанию он показывает пересечение MACD и 0 на М4, я просто умножаю показания индикатора MACD на 4
Handle=iMACD(NULL,0,12*Faktor,26*Faktor,9*Faktor,PRICE_CLOSE);
Проблема следующая - если сравнить пересечение MACD и 0 с М1 и М4 то на М1 будет смещение на 3-7 баров вперед, что показано на рисунке.
Как исправить это смещение по времени на М1??
Код индикатора
//| Proba4.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, 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=4; //Множитель ТФ
//--- 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);
Handle=iMACD(NULL,0,12*Faktor,26*Faktor,9*Faktor,PRICE_CLOSE);
//---
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);
}
//+------------------------------------------------------------------+