SimplePanel проблема при переключении таймфрейма - страница 2

 
Vitalii Ananev:

Панель в тестере в режиме визуализации действительно в советнике не работает. Я как то начал делать тестер стратегий для ручных торговых систем. Сначала делал в виде советника. Задумка была запустить этот советник  в тестере в режиме визуализации и с помощью панели открывать ордера при нажатии соответствующих кнопок. Но потом выяснилось, что в советнике это не работает. Сделал в виде индикатора, а ордера пришлось открывать уже виртуальные и самому изобретать учет статистики торговли и закрытие этих вирт. позиций. Если интересно этот тестер стратегий для ручных ТС можете у меня в профиле найти.  

Для тестера нужно делать обработку нажатий/отжатий кнопок по тикам, а для онлайн по событию в ChartEvent. В итоге панель работает идеально как в тестере, так и онлайн

У вас как-то всё мудрёно получается) 

 
Vitaly Muzichenko:

Для тестера нужно делать обработку нажатий/отжатий кнопок по тикам, а для онлайн по событию в ChartEvent. В итоге панель работает идеально как в тестере, так и онлайн

У вас как-то всё мудрёно получается) 

То есть, в OnTick() при нажатии кнопки в тестере устанавливать флаг что она нажата, а при отжатии флаг что она отпущена и тогда оба эти события вместе будут говорить о том, что была нажата кнопка. Я правильно вас понял?

 
Vitalii Ananev:
Можно попробовать сделать панель в индикаторе, и при нажатии кнопок в этой панели помещать соответствующий код нажатия в буфер индикатора. А в советнике через iCustom() вызывать этот индикатор и получать значения буфера. И уже из советника открывать ордера согласно полученным кодом нажатия. Что из этого получится я не знаю, так как не пробовал так делать. Но одно могу сказать, такая панель будет постоянно "мерцать" ( то появиться то пропадет) на графике. Если вызов iCustom() идет каждый тик, то мерцать будет с частотой генерации тика.

никогда не проверял индикаторы с панелями и кнопками в тестере - действительно там они работают, но в советник с графикой может видеть только состояние кнопок тут несколько вариантов:

1. советник в тестере и индикатор с панелью и передавать его состояние через ресурсы - библиотеки @fxsaber нужно изучать

2. ... через глобальные переменные терминала

3. сделать в советник просто кнопки и контролировать их состояние по приходу тика, в тестере работает это (состояние кнопок советник видит)

ЗЫ: хотел я эту задачу чуть раньше решить, но теперь не интересно, в сторонней .dll проще реализовать такие задачи, наименее затратно по времени

Vitaly Muzichenko:

У вас как-то всё мудрёно получается) 

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

в тестере работают в советнике только кнопки, их состояние можно по приходу тика отследить, больше  в тестере в советнике ничего не работает ни панели ни чекбоксы - ни чего

 
Тут речь идет не о какой то своей кнопке и панели. А о панели с кнопками реализованной с помощью библиотеки классов которая в комплекте с платформой. А в этих классах все события, насколько я знаю, реализованы через ChartEvent
 
Vitalii Ananev:

То есть, в OnTick() при нажатии кнопки в тестере устанавливать флаг что она нажата, а при отжатии флаг что она отпущена и тогда оба эти события вместе будут говорить о том, что была нажата кнопка. Я правильно вас понял?

нет, там не так - в тестере можно нажать кнопку, и советник видит состояние OBJPROP_STATE = true  , но отжать руками не даст, нужно советником по приходу тика в тестере менять на OBJPROP_STATE = false

 вот так можно сделать много кнопок и нажимать из в тестере

 
Igor Makanu:

нет, там не так - в тестере можно нажать кнопку, и советник видит состояние OBJPROP_STATE = true  , но отжать руками не даст, нужно советником по приходу тика в тестере менять на OBJPROP_STATE = false

 вот так можно сделать много кнопок и нажимать из в тестере

Понятно. Спасибо. Вы говорите об графическом объекте OBJ_BUTTON. Но топик стартер "мучается" с объектами исходники которых лежат в папке include\Controls. 

 
Vitalii Ananev:

Понятно. Спасибо. Вы говорите об графическом объекте OBJ_BUTTON. Но топик стартер "мучается" с объектами исходники которых лежат в папке include\Controls. 

У каждого объекта есть заданное пользователем имя, вот по этому имени и делать проверки.

 
Vitaly Muzichenko:

У каждого объекта есть заданное пользователем имя, вот по этому имени и делать проверки.

пример в коде будет? 

интересуют чекбоксы, ну и другие граф.элементы, но это не принципиально

вот один из примеров, но опять же это кнопки https://www.mql5.com/ru/forum/292860/page2#comment_9625850

Tester MT5
Tester MT5
  • 2018.12.02
  • www.mql5.com
Освоил МТ5, написал советник с графическим интерфейсом, радостно запустил тестер и...
 
Igor Makanu:

пример в коде будет? 

интересуют чекбоксы, ну и другие граф.элементы, но это не принципиально

вот один из примеров, но опять же это кнопки https://www.mql5.com/ru/forum/292860/page2#comment_9625850

Я писал о кнопках