Ошибки, баги, вопросы - страница 2029

 
fxsaber:

Какая же гадость может получиться, если индикатор запустить на кастомном символе и в OnCalculate пробрасывать на него новый тик... три строки всего.

В каком случае может потребоваться запускать такой специфический индикатор на кастумном символе?

И какая гадость?

 
Andrey Khatimlianskii:

В каком случае может потребоваться запускать такой специфический индикатор на кастумном символе?

Это просто возможность, которой могут воспользоваться нехорошие люди.

И какая гадость?

Сам не пробовал, но почти уверен, терминал зависнет.

 
Andrey Khatimlianskii:

OnCalculate можно вызвать из таймера.
Передаваемые массивы при этом могут быть пустышками (если они не используются) или реальными копиями массивов OHLC.


подскажите пожалуйста что то я не допру)) в стандартной OnCalc я использую для расчётов встроенные массивы например time[]
если я вызываю с пустышками OnCalc из OnTimer то выдаёт выход за пределы массива, я могу свои массивы вставить вместо пустышек.. но хочется использовать встроенные массивы в OnCalc что бы быть уверенным что расчёты всегда одинаковые
может знаете как её вызвать что бы подтягивались встроенные массивы ?

 
Money_Man:

подскажите пожалуйста что то я не допру)) в стандартной OnCalc я использую для расчётов встроенные массивы например time[]
если я вызываю с пустышками OnCalc из OnTimer то выдаёт выход за пределы массива, я могу свои массивы вставить вместо пустышек.. но хочется использовать встроенные массивы в OnCalc что бы быть уверенным что расчёты всегда одинаковые
может знаете как её вызвать что бы подтягивались встроенные массивы ?

Написал сразу: "или реальными копиями массивов OHLC".

Делайте свои массивы, копируйте туда данные, храните кол-во элементов.

"А кто говорил, что будет просто?" (с)

 
Andrey Khatimlianskii:

Написал сразу: "или реальными копиями массивов OHLC".

Делайте свои массивы, копируйте туда данные, храните кол-во элементов.

"А кто говорил, что будет просто?" (с)


спасибо уже так и делаю.

 

Сегодня столкнулся с проблемой, что если название объекта на русском языке, то он не распознается на терминалах пользователей стран Юго-Восточной Азии

Этот код в утиль, в нём кириллица

//+------------------------------------------------------------------+
//| Функция обработки событий                                        |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam) // параметр события типа string
 {
 //--
 if(sparam==prefix+"Скрыт")
  {
   // обработка события
  }


А вот этот работает без проблем

//+------------------------------------------------------------------+
//| Функция обработки событий                                        |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam) // параметр события типа string
 {
 //--
 if(sparam==prefix+"Hide")
  {
   // обработка события
  }


И ведь знал, что только лохи используют в программе кириллицу, что рано или поздно это выйдет боком. Было всего 3 объекта на русском, решил сэкономить на тултипе, и хватило для того, чтоб программа перестала работать.

 
Andrey Khatimlianskii:

Написал сразу: "или реальными копиями массивов OHLC".

Делайте свои массивы, копируйте туда данные, храните кол-во элементов.

"А кто говорил, что будет просто?" (с)


прошу прощения , если надоел) у меня ещё вопрос возник может знаете, буду очень признателен)
OnCalC у меня срабатывает на своих данных графика отрисовывается правильно но вот данные из буферов индикатора на монитор по прежнему выводятся только после тика или обновления правой кнопкой мыши
хотя массивы заполнены правильно , я так понимаю есть какая то ещё хитрость? которую я пока не знаю где выкопать))

возникает вопрос : в каких случаях индикатор отправляет данные на отрисовку?

 
Money_Man:

прошу прощения , если надоел) у меня ещё вопрос возник может знаете, буду очень признателен)
OnCalC у меня срабатывает на своих данных графика отрисовывается правильно но вот данные из буферов индикатора на монитор по прежнему выводятся только после тика или обновления правой кнопкой мыши
хотя массивы заполнены правильно , я так понимаю есть какая то ещё хитрость? которую я пока не знаю где выкопать))

возникает вопрос : в каких случаях индикатор отправляет данные на отрисовку?

Вот тут выкладывал код - https://www.mql5.com/ru/forum/59136/page3#comment_1648963

Возможно, ЧартРедроу не хватает.

Отображение буфера в индикаторе
Отображение буфера в индикаторе
  • 2015.05.26
  • www.mql5.com
15,M1) сдвиг значений буферов.
 
придётся наверно свою графику рисовать на первый проход а потом удалять.. честно говоря меня всегда привлекали возможности MT5 но блин он какой то перемудрённый по сравнению с МТ4
зачем такие сложности с организацией к данным и индикаторам.. каждый раз эксперимент а как же он на самом деле там это работает(
 
Andrey Khatimlianskii:

Вот тут выкладывал код - https://www.mql5.com/ru/forum/59136/page3#comment_1648963

Возможно, ЧартРедроу не хватает.


из опыта уже вставил ChartRedr при каждом завершении..  но толку от неё видимо только, когда свою графику рисуешь.
большое спасибо Вам, вызов OnCalc сильно выручает сделал уже свою графику она отображается в первый проход и ничем не отличается от буферной