Библиотеки: Expert - страница 9

 
fxsaber:

Небольшой лайфхак - запуск советников/скриптов на OBJ_CHART-объектах.

Так запущенные советники висят мертво - никак не выполняются. А вот скрипты работают отлично. Поэтому это открывает некоторые возможности.

Например, можно использовать Order-функции из индикаторов на чартах, где уже есть запущенный советник. И при этом никаких новых вспомогательный чартов открывать не требуется.


Компилируем скрипт Scripts\OrderSend.mq5


И запускаем индикатор, который "умеет торговать"

Доброго времени суток. Столкнулся с такой проблемой. При запуске эксперта на OBJ_CHART, он отказывается работать с OnTick. Не знаете, есть ли какое решение, чтобы OnTick заработал? 

 
vek_y4icb:

Доброго времени суток. Столкнулся с такой проблемой. При запуске эксперта на OBJ_CHART, он отказывается работать с OnTick. Не знаете, есть ли какое решение, чтобы OnTick заработал? 

Вы же сами процитировали сообщение про мертвые советники на OBJ_CHART. Это ограничение MT5.

 
fxsaber:

Вы же сами процитировали сообщение про мертвые советники на OBJ_CHART. Это ограничение MT5.

OnTimer ведь работает на них.

 
vek_y4icb:

OnTimer ведь работает на них.

Вам быстрее проверить, не помню.

 
fxsaber:

Вам быстрее проверить, не помню.

Не, это был не вопрос) OnTimer работает на таких экспертах, в том то и дело. А вот OnTick напрочь отказывается.

 
В общем, как я понял, OnTick принципиально невозможно включить на таком эксперте и обходных путей для этого не существует? 
 
vek_y4icb:
В общем, как я понял, OnTick принципиально невозможно включить на таком эксперте и обходных путей для этого не существует? 

Нет обходных путей включений On-функций. Можно эмулировать, вызывая OnTick в высокочастотном OnTimer и добирая (если нужно) пропущенные тики через CopyTicks.

 
fxsaber:

Нет обходных путей включений On-функций. Можно эмулировать, вызывая OnTick в высокочастотном OnTimer и добирая (если нужно) пропущенные тики через CopyTicks.

Ну я так делаю. Спасибо за то, что откликнулись!
 

Неинтутивно то, что массивы параметров и имен возвращаются разного размера, т.к. в именах отсутствует нулевой параметр, представляющий собой имя эксперта.

Также хотелось бы знать реальные типы параметров, сейчас везде возвращается "строка". Не знаю, как это обеспечить - способ в лоб: анализировать содержимое строки и её приводимость в числу с плавающей точкой или целому, но если в параметре хранится "0", то его тип не получится идентифицировать.

 
Stanislav Korotky:

Неинтутивно то, что массивы параметров и имен возвращаются разного размера, т.к. в именах отсутствует нулевой параметр, представляющий собой имя эксперта.

Да, не очень красиво. Возможно, надо было делать фейковый нулевой элемент для Names[].

Также хотелось бы знать реальные типы параметров, сейчас везде возвращается "строка". Не знаю, как это обеспечить - способ в лоб: анализировать содержимое строки и её приводимость в числу с плавающей точкой или целому, но если в параметре хранится "0", то его тип не получится идентифицировать.

Посчитал это лишним в библиотеке, т.к. бывают еще кастомные ENUM-ы. Более того, не увидел задачи, в которой это могло бы быть нужным.

Свой автооптимизатор делал. Там такое не пригодилось.

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