Скачать MetaTrader 5

Скрипты: Закрытие встречных ордеров

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
182662
MetaQuotes Software Corp.  

Закрытие встречных ордеров:

Применяемая стратегия вызвала необходимость закрытия большого количества встречных ордеров для экономии спрэда. Ничего более-менее простого не нашел в кодах. Как часть советника родился компактный скрипт.

Author: Barmaley

Владимир
192
Владимир  
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
      
      if (OrderSymbol() != Symbol()  || (Magic>0 && OrderMagicNumber() != Magic)) continue;
         ticket = OrderTicket();
         if (OrderType()>1) {OrderDelete(ticket);continue;}
         double l=OrderLots();
         OrderClose(ticket,l,PriceCurrent,10000);

Не слишком ли большое проскальзывание при закрытии ордеров ????

Andrey Gostev
872
Andrey Gostev  
VOLDEMAR:

OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
      
      if (OrderSymbol() != Symbol()  || (Magic>0 && OrderMagicNumber() != Magic)) continue;
         ticket = OrderTicket();
         if (OrderType()>1) {OrderDelete(ticket);continue;}
         double l=OrderLots();
         OrderClose(ticket,l,PriceCurrent,10000);

Не слишком ли большое проскальзывание при закрытии ордеров ????


Поправьте для себя. У меня другая задача была. Еще и цены бид используются для любых ордеров.

Для встречных-то цена не имеет значения. А этот кусочек закрывает уже оставшиеся, не встречные.

Просто надо было закрыть встречные и остальные по любой текущей цене.

Batman
102
Batman  

IMHO, проще и лучше поступить иначе:

- сначала открыть одну локирующую позицию к совокупной позиции,

- затем (уже не спеша))) закрывать встречно всё, что имеется без остатка

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

Andrey Gostev
872
Andrey Gostev  
Batman:

IMHO, проще и лучше поступить иначе:

- сначала открыть одну локирующую позицию к совокупной позиции,

- затем (уже не спеша))) закрывать встречно всё, что имеется без остатка

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


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

Этот лок вместо стопа можно поставить... Если он широкий выйдет, можно внутри него побраконьерствовать с оставшимися позициями... Спасибо за идею :) !!!

Batman
102
Batman  
Barmaley:
Batman:

IMHO, проще и лучше поступить иначе:

...

Этот лок вместо стопа можно поставить... Если он широкий выйдет, можно внутри него побраконьерствовать с оставшимися позициями... Спасибо за идею :) !!!

Браконьерствовать нет смысла. Закрытие перекрытых - самое выгодное "браконьерство". Лучше продолжать торговать по системе, а не изголяться, сохраняя баланс. Нужно за эквити бороться.)))
Andrey Gostev
872
Andrey Gostev  

Batman:

Браконьерствовать нет смысла. Закрытие перекрытых - самое выгодное "браконьерство". Лучше продолжать торговать по системе, а не изголяться, сохраняя баланс. Нужно за эквити бороться.)))

Ну это я так.... в порядке бреда. А новый скрипт с Вашим предложением уже на модерации. Должен скоро появиться в кодах...
Andrey Gostev
872
Andrey Gostev  
Вторая версия - с учетом предложения Batman. Ну и комментариев еще добавил.
MQL4 Comments
16319
MQL4 Comments  
Поясните пожалуйста, скрипт модифицированный №2 закрывает разнонаправленные ордера наивыгоднейшим образом? Или как? Что то не совсем понимаю назначение скрипта? В чем отличие от того - если просто руками закрыть все ордера? Спасибо!
Andrey Gostev
872
Andrey Gostev  
MQL4 Comments:
Поясните пожалуйста, скрипт модифицированный №2 закрывает разнонаправленные ордера наивыгоднейшим образом? Или как? Что то не совсем понимаю назначение скрипта? В чем отличие от того - если просто руками закрыть все ордера? Спасибо!
Вопрос старый, давно не заглядывал сюда, но отвечу. Да, скрипт закрывает наивыгоднейшим образом. Если ситуация такова, что все ордера открыты в одну сторону, без разницы, как закрывать, скриптом, или обычным способом. Результат ни лучше, ни хуже. Но если у Вас имеются открытые разнонаправленные ордера, то скриптом закрывать выгоднее - экономится часть спредов.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий