Необходимость в мультиТФ индикаторе.

 
Запутался в индексах. Расчет ведется на трех ТФ. Какие индексы брать? М30, Н1 и Н4. Если использовать индексы i, 4*i и 8*i, график плывет и не соответствует действительности. Как рассчитать индексы?
 
grell >>:
Запутался в индексах. Расчет ведется на трех ТФ. Какие индексы брать? М30, Н1 и Н4. Если использовать индексы i, 4*i и 8*i, график плывет и не соответствует действительности. Как рассчитать индексы?


Нужно использовать сдвиг баров по времени.
Вот так упрощенно :  (для точного воспроизведения нужно считать изменения показаний индикатора на старшем тф по мере формирования последнего бара по ценам младшего)
   
    int mtfBarsCNT = IndBarsCNT+From;// Multi (Расчетный) Time Frame
    int ctfBarsCNT = mtfBarsCNT*(IndMultiTF/Period());// Current Time Frame - количество баров текущего графика
    int sbn = MathMin(MAXINDIBARS-1,ctfBarsCNT);// Начальный номер бара по текущему ТФ
    for(int i=sbn-1; i>=0; i--)
    {
        int j  = iBarShift(symb,IndMultiTF,Time[i]);
        if(j<MAXINDIBARS)
        {
            CurrentTimeFrameIndBuff[i] = MultiTimeFrameIndBuff[j];
        }
    }
 
А есть ли возможность каждый бар с трех ТФ привязать к серверному времени, и исходя из него точно определять номер бара?
 
grell >>:
А есть ли возможность каждый бар с трех ТФ привязать к серверному времени, и исходя из него точно определять номер бара?


Вы имеете ввиду время Вашего компа ? Возможно - введите сдвиг от времени брокера к требуемому, а зачем ?  есть же штатные средства МТ - они и так все точно позволяют сделать.

Удачи.
 
Не совсем так. Главный ТФ Н4, мне не нужно ловить сигналы на младших ТФ, мне нужно, чтобы сигнал на старшем Тф подтверждался и на младшем, а не наоборот. Все равно на старшем ТФ я использую цену Open. Да и вешать индюка я буду именно на Н4.
 
grell >>:
Не совсем так. Главный ТФ Н4, мне не нужно ловить сигналы на младших ТФ, мне нужно, чтобы сигнал на старшем Тф подтверждался и на младшем, а не наоборот. Все равно на старшем ТФ я использую цену Open. Да и вешать индюка я буду именно на Н4.


Тогда определяете время открытия бара по старшему тф (Н4) и используя сдвиг ( iBarShift(symb,младшийTF,Time[0]); ) находите номер бара младшего тф, до которого нужно проверять наличие сигнала. Или я опять чего не так понял ?

Удачи.
 
Фсе, понял теперь. Было бы проще только на нулевом баре все это делать, но нужен именно большой участок, по большей части для анализа.

Спасибо огромное, выручили. Вечером проверю.
Причина обращения: