...
2)дальше к цене последней сделки добавляем 20пунктов, и если результат меньше (позиция BUY) чем цена закрытия последнего бара, открываем вторую сделку.
Но возникает проблема. Прогоняю советник в тестере и вижу что вторую сделку открывает не через 20 пунктов, а уже через несколько пуктов и даже по той же цене, что и первая сделка. Где может быть ошибка? В моем советники есть отложенные ордера. Может вся проблема в них? И я не ту функцию использую для поиска цены последней сделки.
- www.mql5.com
Если правильно понял, вы собираетесь доливать к открытой позиции. Тогда для расчетов используйте историю ордеров данной позиции а не историю сделок.
Какой-то бред вообще получаеться.
double correctBUY; correctBUY=price_ldeal+StepIncrease*sym_point; //уровень для открытия новой сделки BUY Alert("correctBUY=",correctBUY); double correctSELL; //уровень для открытия новой сделки SELL correctSELL=price_ldeal-StepIncrease*sym_point; Alert("correctSELL=",correctSELL); if(c_price>correctBUY&&pos_type==POSITION_TYPE_BUY)//Eсли цена пробила уровень и есть сделка BUY, то... {Alert("Buy");return;} if(c_price<correctSELL&&pos_type==POSITION_TYPE_SELL);//Eсли цена пробила уровень и есть сделка SELL, то... {Alert("Sell");return;}Вот такой код написал (для проверки). После открытия сделки, если цена пробивает уровень, должно выводится сообщение соответствующие. Но у меня оно выводиться на каждом баре. Такое впечатление, что проверки на пробой не происходит.
История сделок не подходит по той причине, что в ней нет цен ордеров для текущей позиции.
Ведь нам нужно знать цену последнего ордера которым либо открывалась позиция либо происходила доливка к позиции.
Всё же история сделок для этого подходит. Из Справки:
Какой-то бред вообще получаеться.
Вот такой код написал (для проверки). После открытия сделки, если цена пробивает уровень, должно выводится сообщение соответствующие. Но у меня оно выводиться на каждом баре. Такое впечатление, что проверки на пробой не происходит.Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Не правильно открываеться второя сделка при пирамидинге.
sergey250581, 2013.05.13 12:43
Навтыкал кругом алертов. Пересмотрел журнал тестера. Еще одна проблема. Сделка закрылась ордером out. История сделок видит этот ордер и делает доливку.Сделайте проверку на то, что доливку нужно производить только в случае, если сейчас есть открытая позиция.
Сам советник сгенерирован в мастере MQL5. Добавил только функции доливки и возврата цены последней сделки текущей позиции.
Посмотрите пожалуйста.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В своем советнике решил добавить ордерную стратегию - пирамидинг. То есть, откываеться сделка, если она набрала, например 20 пунктов прибыли, открываеться еще одна следка в том же направлении. Условие открытие второй сделки такое:
1)находим цену последней сделки текущей позиции с помощью такой функции:
2)дальше к цене последней сделки добавляем 20пунктов, и если результат меньше (позиция BUY) чем цена закрытия последнего бара, открываем вторую сделку.
Но возникает проблема. Прогоняю советник в тестере и вижу что вторую сделку открывает не через 20 пунктов, а уже через несколько пуктов и даже по той же цене, что и первая сделка. Где может быть ошибка? В моем советники есть отложенные ордера. Может вся проблема в них? И я не ту функцию использую для поиска цены последней сделки.