Помогите с рисовалкой-индикатором TMA - страница 2

 
Спасибо, тему почитаю.... но меня не интересует то что он перерисует в истории, для меня важно то, в каком положении находится на последнем или текущем, не закрытом баре... если есть догадки как получить эти данные буду признателен!!!
 
просто есть соображения по использованию еще с одним индюком в комплекте... сегодня торговал по их общим сигналам и был в плюсе, хоя может и день такой удачный попался
 
  for (int i=0; i<=GlubInd; i++) {         
   //--- TMA
   TMA1[i]    = iCustom(Symbol(),TF,"m_TMA_speed",TMA_TF,TMA_HalfLength,TMA_Price,TMA_ATRMult,TMA_ATRPer,TMA_Interpolate,2,i);
   TMA2[i]    = iCustom(Symbol(),TF,"m_TMA_speed",TMA_TF,TMA_HalfLength,TMA_Price,TMA_ATRMult,TMA_ATRPer,TMA_Interpolate,0,i);
   TMA3[i]    = iCustom(Symbol(),TF,"m_TMA_speed",TMA_TF,TMA_HalfLength,TMA_Price,TMA_ATRMult,TMA_ATRPer,TMA_Interpolate,1,i);
  }
           
      Alert("TMA1[1]=",TMA1[1]);
      Alert("TMA2[1]=",TMA2[1]);
      Alert("TMA3[1]=",TMA3[1]);

Шо за загадочная переменная TF у тебя там фигурирует?

extern string     TMA_TF           = "5"; - тоже весьма подозрительно выглядит.  Это я ещё мягко выразился

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

 
MetaDriver:

Шо за загадочная переменная TF у тебя там фигурирует?

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


Да судя по всему, это Period(), а TMA_TF - это одно из вводных данных индюкатора. Там зачем-то именно string`ом вводится таймфрейм, а потом преобразуется в дату.
 
artmedia70:

Да судя по всему, это Period(), а TMA_TF - это одно из вводных данных индюкатора. Там зачем-то именно string`ом вводится таймфрейм, а потом преобразуется в дату.

Ну и чего думаешь? Тут одно из двух: либо не с того таймфрейма читает, либо не из того буфера. Других вариантов не вижу.
 
MetaDriver:

Ну и чего думаешь? Тут одно из двух: либо не с того таймфрейма читает, либо не из того буфера. Других вариантов не вижу.

Угу. У меня уже давно всё опробовано и работает. А под утро ковырять его код - сил никаких не было... А буферов там всего три. Не пойму, нафига он костыль сделал - читает в массивы значения индюкатора, а потом из массивов их берёт. В массивы записываются данные, которые являются актуальными для этого индюка только на том баре, на котором идёт чтение этих данных. Спустя баров 10, 20, эти данные уже не совпадают с теми, которые актуальны на новый момент времени - индюк зверски сам себя перерисовывает. Потому-то и не совпадают данные, считанные в массивы, с данными, взятыми на данный момент времени. Мне почему-то так кажется.

Проще всё-таки брать данные на текущий момент с самого индюка из его буферов и не париться о несовпадении данных на истории - всё-равно он их опять перерисует.

Я ему даже ссыль кидал тут на эту самую тему. Внимания он не обратил серьёзного.

 
artmedia70:
Спустя баров 10, 20, эти данные уже не совпадают с теми, которые актуальны на новый момент времени - индюк зверски сам себя перерисовывает. Потому-то и не совпадают данные, считанные в массивы, с данными, взятыми на данный момент времени. Мне почему-то так кажется.
Ну да, это третий вариант.
 
Спасибо за интерес к теме, сегодня сделаю все по вашим рекомендациям. А советник действительно считывает данные с индикатора TMA на старшем тайме... может в этом дело?... Кстати буферы не перепутал, несколько раз проверял!!!
 
serdon:
Спасибо за интерес к теме, сегодня сделаю все по вашим рекомендациям. А советник действительно считывает данные с индикатора TMA на старшем тайме... может в этом дело?... Кстати буферы не перепутал, несколько раз проверял!!!

Естественно в этом дело. В окне данных разве показаны значения, взятые не с текущего таймфрейма???

 
нет. в окне данных значения с индикатора на М5... сам индюк установлен на М1 с параметрами для М5
Причина обращения: