Как закрыть все ордера в конце дня

 

Здравствуйте!

Поделитесь пожалуйста кодом)

Нужно чтобы в конце каждого торгового дня закрывались все открытые ордера.

Спасибо!

 
Наберите в поиске Только полезные функции и там найдёте всё хорошо разжёванное!
 
borilunad:
Наберите в поиске Только полезные функции и там найдёте всё хорошо разжёванное!
нашел "Только "Полезные функции от KimIV". но там не увидел то что мне надо ((
или не та ветка?
 
Ваши слова:

Нужно чтобы в конце каждого торгового дня закрывались все открытые ордера.

Найдите закрытие всех ордеров, а в условиях проставьте нужный Вам час!

Если не сможете, беритесь за учебник, документацию и учитесь с азов! С кондачка, подсказок не получится! Вы должны изучать логику программирования, выстраивать свою систему понимания различных процессов, что без серьёзного труда ничего не выйдет. Деньги слить всегда успеете! Удачи!

 
borilunad:
Ваши слова:

Нужно чтобы в конце каждого торгового дня закрывались все открытые ордера.

Найдите закрытие всех ордеров, а в условиях проставьте нужный Вам час!

Если не сможете, беритесь за учебник, документацию и учитесь с азов! С кондачка, подсказок не получится! Вы должны изучать логику программирования, выстраивать свою систему понимания различных процессов, что без серьёзного труда ничего не выйдет. Деньги слить всегда успеете! Удачи!

Спасибо!

Буду разбираться))
Подсказанная Вами ветка очень интересна и полезна!

 
sipulpa:

Здравствуйте!

Поделитесь пожалуйста кодом)

Нужно чтобы в конце каждого торгового дня закрывались все открытые ордера.

Спасибо!

Что для вас значит "в конце каждого торгового дня"? После 23:00 или около 23:50?
(1) Можно найти время открытия текущего дневного бара, прибавить необходимое кол-во секунд (напр. 23*60*60+50*60 = 23:50) и в OrderSend или в OrderModify поставить время истечения (expiration).
(2) Можно на первых тиках нового дневного бара позакрывать все ордера а потом открыть дорогу для открытия новых ордеров.
 
paladin80:
Что для вас значит "в конце каждого торгового дня"? После 23:00 или около 23:50?
(1) Можно найти время открытия текущего дневного бара, прибавить необходимое кол-во секунд (напр. 23*60*60+50*60 = 23:50) и в OrderSend или в OrderModify поставить время истечения (expiration).
(2) Можно на первых тиках нового дневного бара позакрывать все ордера а потом открыть дорогу для открытия новых ордеров.

(2) хуже, т.к. в полночь слишком возрастает спрэд для Сэлла и слиппаж для Бая!

И в (1) экспирация ненадёжна или не выполняется, поэтому лучше закрытие по времени, но не доверять тестеру, в котором спрэд фиксированный, а слиппаж нулевой!

 
borilunad:

(2) хуже, т.к. в полночь слишком возрастает спрэд для Сэлла и слиппаж для Бая!

И в (1) экспирация ненадёжна или не выполняется, поэтому лучше закрытие по времени, но не доверять тестеру, в котором спрэд фиксированный, а слиппаж нулевой!

Тоже случается. Тогда "под конец дня" лучше сделать напр. на 22:00 или 23:00. Тогда просто на определённое время поставить функцию закрытия всех ордеров/позиций, типа:

if (Hour()==23)
{
   // перебор ордеров/позиций и их закрытие
}

Честно говоря я в своих ордерах/позициях не использую экспирацию, поэтому не могу сказать на счёт надёжности закрытия таким образом. А что известны случаи, что по экспирации брокер не закрывает позиции/ордера ? :/
 
paladin80:

Тоже случается. Тогда "под конец дня" лучше сделать напр. на 22:00 или 23:00. Тогда просто на определённое время поставить функцию закрытия всех ордеров/позиций, типа:

Честно говоря я в своих ордерах/позициях не использую экспирацию, поэтому не могу сказать на счёт надёжности закрытия таким образом. А что известны случаи, что по экспирации брокер не закрывает позиции/ордера ? :/

Многие брокеры просто не принимает отложник с экспирацмей, а если принимает, то в полночь им не до этого, ставят на автомат закрытия со слиппажищем и спрэдищем! ;)

Я с 23:00 до 01:00 не открываю, не доливаю ни закрываю А закрываю в плюсе в 23:00, а в минусе оставляю в надежде на лучшее.

 
paladin80:
Что для вас значит "в конце каждого торгового дня"? После 23:00 или около 23:50?
(1) Можно найти время открытия текущего дневного бара, прибавить необходимое кол-во секунд (напр. 23*60*60+50*60 = 23:50) и в OrderSend или в OrderModify поставить время истечения (expiration).
(2) Можно на первых тиках нового дневного бара позакрывать все ордера а потом открыть дорогу для открытия новых ордеров.


да мне надо закрыть все открытые ордера неважно в плюсе они или в минусе примерно в 23:50

отложенные ордера у меня закрываются по expiration с этим проблем нет.

 
sipulpa:


да мне надо закрыть все открытые ордера неважно в плюсе они или в минусе примерно в 23:50

отложенные ордера у меня закрываются по expiration с этим проблем нет.

https://docs.mql4.com/ru/dateandtime

Смотрите Hour() и Minute() ! Нельзя же быть таким беспомощным и ленивым!

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