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

 
Money_Man:

вопрос: как запустить повторно OnCalc или рассчитать данные до начала запуска Oncalc или внутри неё
нужно что бы индикатор рисовал данные только после обновления истории по другим символам / периодам отличным от текущего.

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

 
Andrey Khatimlianskii:

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

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

 
Andrey Khatimlianskii:

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


Большое человеческое.трейдерское СПАСИБО) Ваш совет очень помог)

 

Предлагаю перенести алерты из вкладки контекстного меню "Торговля" - дело в том, что для принятия решения используются часто чарты, по которым торговля запрещена - для форекс - индекс доллара и нефть, а для срочного рынка - чарты базового актива, и разные индексы. Хотелось бы получать звуковые сигналы со всех чартов, в случае необходимости. Думаю, это востребовано многими - поэтому про то, что всё можно запрограммировать и сделать индикатор/советник писать не надо.

 
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 объекта на русском, решил сэкономить на тултипе, и хватило для того, чтоб программа перестала работать.

Причина обращения: