Перетаскивание SL и TP в тестере.

 
khorosh:
Можно ли создать такую возможность,  чтобы перетаскивать SL  и TP  на графике во время тестирования?
Только виртуальные - горизонтальными линиями. Вместо тейков и лоссов устанавливать линии, и по ним делать выходы.
 
Vitaly Muzichenko:
Только виртуальные - горизонтальными линиями.
А мне кажется можно. Я примерно представляю возможный вариант, но надо пробовать и проверять. К примеру установку ордеров при тестировании  методом перетаскивания  скрипта в нужную точку графика я уже использую при тестировании. Думаю надо использовать событие нажатие мыши  CHARTEVENT_CLICK  для запуска скрипта в котором считывать координаты курсора и использовать эти данные для модификации ордера.
 
khorosh:
А мне кажется можно. Я примерно представляю возможный вариант, но надо пробовать и проверять. К примеру установку ордеров при тестировании  методом перетаскивания  скрипта в нужную точку графика я уже использую при тестировании. Думаю надо использовать событие нажатие мыши  CHARTEVENT_CLICK  для запуска скрипта в котором считывать координаты мыши и использовать эти данные для модификации ордера.

В тестере OnChartEvent не работает. Но есть мысли, как это сделать.

Я тут выкидывал в блог свой проект по торговле в тестере, могу попробовать добавить модификацию СЛ и ТП. Вопрос в том, как указать,для какого ордера выставляем тейки и стопы? Сначала мышкой кликать на линии ордера?

 
Alexey Volchanskiy:

В тестере OnChartEvent не работает. Но есть мысли, как это сделать.

Я тут выкидывал в блог свой проект по торговле в тестере, могу попробовать добавить модификацию СЛ и ТП. Вопрос в том, как указать,для какого ордера выставляем тейки и стопы? Сначала мышкой кликать на линии ордера?

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

Файлы:
TP.ex4  731 kb
 
Alexey Volchanskiy:

В тестере OnChartEvent не работает. Но есть мысли, как это сделать.

Я тут выкидывал в блог свой проект по торговле в тестере, могу попробовать добавить модификацию СЛ и ТП. Вопрос в том, как указать,для какого ордера выставляем тейки и стопы? Сначала мышкой кликать на линии ордера?

Как это не работает. У меня кнопки на графике в тестере управляют работой эксперта для ручной торговли. Событие нажатие кнопки использует OnChartEvent.  В визуальном режиме тестирую стратегии.

 
Vitaly Muzichenko:

Да.  "При тестировании в эксперте можно обрабатывать пользовательские события с помощью функции OnChartEvent(), но в индикаторах эта функция в тестере не вызывается. Даже если индикатор имеет обработчик OnChartEvent() и этот индикатор используется в тестируемом эксперте, то сам индикатор не будет получать никаких пользовательских событий.

У меня кнопки управления в индикаторе стоят и используют OnChartEvent . Всё работает.
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
khorosh:

Как это не работает. У меня кнопки на графике в тестере управляют работой эксперта для ручной торговли. Событие нажатие кнопки использует OnChartEvent.  В визуальном режиме тестирую стратегии.

У вас эксперт для МТ4 или МТ5?
 
Alexey Volchanskiy:
У вас эксперт для МТ4 или МТ5?
МТ4. В МТ5 не торгую.
 
khorosh:
МТ4. В МТ5 не торгую.

Ок, завтра проверю еще раз. Посмотрел в справке 950 билд, все ограничения как были, так и остались.

----------------------------------------- из help VN4 950 build ---------------- 

Справочник MQL4 / Программы MQL4 / Особенности работы программ в тестере стратегий

Обработка событий в тестере

В тестере стратегий реализована обработка следующих событий: инициализация советника перед одиночным прогоном OnInit(), деинициализация советника после одиночного прогона OnDeInit(), моделирование нового тика OnTick().

Кроме того, по окончании тестирования эксперта на исторических данных перед вызовом функции деинициализации OnDeInit() генерируется событие Tester, обработка которого осуществляется в функции OnTester(). Значение, возвращаемое данной функцией, используется в качестве критерия Custom max при оптимизации входных параметров.

Обработка событий Timer и ChartEvent в тестере стратегий не поддерживается.

--------------------------------------- 

У меня для тестера сделан отдельный режим, я мониторю состояния кнопок по OnTick. 

 
Alexey Volchanskiy:

Ок, завтра проверю еще раз. Посмотрел в справке 950 билд, все ограничения как были, так и остались.

----------------------------------------- из help VN4 950 build ---------------- 

Справочник MQL4 / Программы MQL4 / Особенности работы программ в тестере стратегий

Обработка событий в тестере

В тестере стратегий реализована обработка следующих событий: инициализация советника перед одиночным прогоном OnInit(), деинициализация советника после одиночного прогона OnDeInit(), моделирование нового тика OnTick().

Кроме того, по окончании тестирования эксперта на исторических данных перед вызовом функции деинициализации OnDeInit() генерируется событие Tester, обработка которого осуществляется в функции OnTester(). Значение, возвращаемое данной функцией, используется в качестве критерия Custom max при оптимизации входных параметров.

Обработка событий Timer и ChartEvent в тестере стратегий не поддерживается.

--------------------------------------- 

У меня для тестера сделан отдельный режим, я мониторю состояния кнопок по OnTick. 

Много чего не соответствует справке. При тестировании к примеру из советника таймсерии других ТФ читаются нормально, а при вызове из индикатора выдают значения, которые у них были на момент запуска теста. Не знаю, может я что-то не так понимаю с этими событиями, так как я не профессиональный прогер. Но у меня при нажатии кнопки глобальной переменной терминала присваивается определённый код, в советнике код дешифрируется и используется для той или иной операции. И это работает совершенно одинаково, что в тестере, что в реале. Кнопки у меня сделаны в индикаторе, хотя наверно можно было сделать и непосредственно в советнике. В индикаторе удобней, так как не надо в каждом советнике создавать кнопки, достаточно одного индикатора.

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