Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Отслеживай все платежи в профиле. Это просто!
Asdvin
42
Asdvin 2007.08.13 16:45 
Здравствуйте ещё раз! Скажите пожалуйста, есть ли такой скрипт который закрывает ВСЕ имеющиеся ордера ОДНОВРЕМЕННО? Т.е. НЕ по принципу: "Выбрать последний - закрыть последний, выбрать последний - закрыть последний". Просто команда "Прекратить торговлю". И если есть то не могли бы вы поделится готовым скриптом?
Если такого нет, то нужен хотя бы который закрывает все имеющиеся ордера ПООЧЕРЕДИ и соответственно затрачивает намного больше времени.
Сразу уточню, планируется одновременно закрывать до 50ти ордеров. Может кто-то знает как это сделать лучше, не с помощью скрипта?
Смысл в том, что бы прошло как можно меньше времени между закрытием первого и последнего ордера. В идеале, что бы это всё произошло на одном тике и за этот период не успела изменится цена. А если и успела, то ДЛЯ ВСЕХ ордеров ОДИНАКОВО. Если такое не возможно, то как к этому максимально приблизиться?


Спасибо.
Dmitry Fedoseev
41208
Dmitry Fedoseev 2007.08.13 17:04  

1. Такого в природе (МТ) быть не может.

2. Можно написать для последовательного закрытия. Но 50 на одном тике однозначно не получится.

Asdvin
42
Asdvin 2007.08.13 17:57  
Ну ладно, нелбзя так нельзя, но не ужели никто не написал скрипта, который хоть каким ни будь образом закрывает все ордера? Конечно есть! Ни кто не поделится готовым??? Пожалуйста!
rsi
528
rsi 2007.08.13 18:05  
Asdvin:
Ну ладно, нелбзя так нельзя, но не ужели никто не написал скрипта, который хоть каким ни будь образом закрывает все ордера? Конечно есть! Ни кто не поделится готовым??? Пожалуйста!
Ошибки выполнения (c) Luptator
Asdvin
42
Asdvin 2007.08.13 18:10  
Спасибо большое!!!! Возможно это уже наглость, но никто не писал скрипт по "всем правилам" описанным в той статье?
Alexandre
602
Alexandre 2007.08.13 18:16  
См. в качестве идеи штатный close.mq4 в скриптах и примерно так же присобачь (прикошачь) туда отложенники.
rsi
528
rsi 2007.08.13 18:17  
Asdvin:
Спасибо большое!!!! Возможно это уже наглость, но никто не писал скрипт по "всем правилам" описанным в той статье?
Если "по всем правилам", то поищите на форуме - тут недавно SK подробно описывал.
Andrey Khatimlianskii
52252
Andrey Khatimlianskii 2007.08.13 18:43  
Скрипт, закрывающий все позиции, появляется на этом форуме с завидной регулярностью - примерно раз в неделю.
Сложно поискать? ;)
Сергей Ковалев
2608
Сергей Ковалев 2007.08.13 19:10  

У меня есть готовая функция, но она, скорее всего, никому не сгодится, т.к. она интегрирована в большую программу и учитывает второстепенные параметры. Прообраз можно посмотреть здесь 'Скрипт "Закрыть все ордера"'. Используется в реально работающем приложении Графический эксперт AutoGraf (распространяется без ограничений).

Собственно алгоритм решения задачи закрытия всех ордеров сомоочевиден. Чтобы его осмыслить, достаточно немного порассуждать. Лучше всего реализовать задачу в виде отдельной функции. Приблизительное описание алгоритма функции закрытия всех ордеров:

1. Если есть встречные рыночные ордера, то сначала надо закрывать их встречно.
2. Если после встречного закрытия ещё остались ордера, то сначала закрывать рыночные, а потом отложенные.
3. При этом закрывать сначала большие, потом маленькие (для рыночных).
4. При этом закрывать сначала те, что ближе к курсу, потом - те, что дальше, причём независимо от стоимости (для отложенных)
5. Если два отложенных на одном расстоянииот курса, но разной стоимости, то сначала большие.

Самое общее правило заключается в следующем: не навреди! Обычно закрыть все ордера необходимо в том случае, когда трейдер теряет контроль над ситуацией и поэтому просто хочет "сдыхаться" от всех ордеров. В этом случае нужно стремиться закрыть как можно больше лотов. Например, если есть бай 10 лов и селл 0.5 лота, то есть 2 варианта:

1 вариант: первым движением закрыть встречно бай 0.5 и селл 0.5, а вторым движением - остаточный бай 9.5.

2. вариант: сначала закрыть 9.5 бай, а лишь потом встречно бай и селл по 0.5.

Я думаю, что нужно выбирать 2 вариант,- в соотв. с общим правилом: закрыть одним торговым приказом как можно большее суммарное количество лотов. Таки образом, начиная с некоторого соотношения лотов приоритеты общего порядка закрытия меняются, а именно, п1 и п.2 в приведенном списке на некотором этапе развития событий меняются местами, причём в последствии этот приоритет снова может неоднократно восстанавливаться и меняться. Если торговая стратегия позволяет открывать множественные разнонаправленные ордера, то обязательно необходимо наладить Учёт ордеров в большой программе.

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

(не пользуйтесь чужими программами - только потеряете время, пишите свои; понять и научиться самому - хорошо, чужой код без анализа - плохо)

Dmitry Fedoseev
41208
Dmitry Fedoseev 2007.08.13 19:12  
Asdvin:
Ну ладно, нелбзя так нельзя, но не ужели никто не написал скрипта, который хоть каким ни будь образом закрывает все ордера? Конечно есть! Ни кто не поделится готовым??? Пожалуйста!

Почему же не писали? Писали, но с учетом своих потребностей. При таком количестве ордеров надо функцию встречного закрытия использовать. У меня такой ситуации не бывает - скрипт только сортирует ордера по размеру лота и сначала большие закрывает.
mandor
369
mandor 2007.08.14 00:21  
Вот к примеру скрипт.
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий