В общем, вот пока вариант, интервал торговли в сутки один, в параметрах начиная со startHour и заканчивая endHour. Параметры - числа целые, так что торговля ведётся от начала часа startHour до начала часа endHour. В начале часа endHour все сделки будут закрыты несмотря на прибыльность.
Значение часа закрытия торговли может быть меньше чем часа старта - если начинаем торговать до полуночи, а заканчиваем после полуночи.
Время - по серверу!
Для круглосуточной торговли нужно указать старт 0, енд 25, или больше.
Upd. Добавлен параметр closeinend целого типа - если сделки в конце торговой сессии надо закрывать - выставляем любое целое число больше нуля (оптимально 1), если закрывать не надо - ставим 0.
Удобно будет сравнивать в тестере результаты с оптимизацией по данному параметру в пределах от 0 до 1 с шагом 1 - как раз будут два (если только этот параметр надо сравнить) результата в оптимизаторе - с закрытием и без закрытия.
Новые параметры!
(Определение. Цикл ордеров - несколько ордеров, которые закрываются по общему тейку.)
TakeCount - количество циклов ордеров, после закрытия последнего будет прекращена работа в эти сутки. Число целое. Если выставить 0 - не учитывается, работает только по времени (см. выше).
countSingleTrade - засчитывать за цикл, если первая же открытая сделка закрывается по тейку без открытия дополнительных. Значение - целое число. 0 (нуль) - не засчитывать, любое положительное (рекомендуется 1) - засчитывать. При засчитывании бывают случаи, когда (при количестве циклов выставленном в 2 к примеру) после старта по времени открывается одна сделка, закрывается по тейку, открывается вторая, закрывается по тейку - всё, на сегодня торговать закончили.
Внимание! При перезапуске советника или изменении параметров торговли после начала торговой сессии (указанной в параметрах по часам), советник не помнит, что он уже возможно сегодня в эту сессию торговал, и начинает учёт количества циклов заново.
Если вы настраиваете малое количество циклов, и вдруг они срабатывают (даже составные из нескольких ордеров) быстро, советник перестаёт открываться дальше, а вы хотите сделать ещё один или несколько циклов, то при изменении количества циклов в параметрах нужно выставлять именно число, сколько вы хотите сейчас сделать ещё циклов. НЕ нужно прибавлять! К примеру если было 2 цикла, а вы хотите ещё один, только сегодня и только сейчас - поставьте в параметрах количество циклов 1. Если поставите 3 (типа отработало 2, хочу третий), то он отработает ЕЩЁ 3 (вдобавок к уже отработанным двум) - он не помнит, что уже работал. Однако, после окончания торговой сессии (endHour в параметрах), вам нужно будет вернуть значение количества циклов в норму.
При первом запуске внимательно проверяйте все параметры - они не обязательно (особенно если вы скомпилировали советника) будут сохранены от той версии, что вы запускали вчера.
И да, я не несу ответственности за возможные сбои, вы используете данную модификацию на свой страх и риск.
Уточнения.
Если вы хотите чтобы он начинал или заканчивал в полночь по серверу - ставим startHour = 0 (не 24, не 25).
Если вы выставите начало работы в 3 часа (к примеру), а конец в 25 - он начнёт работу в первый день в 3 часа, и будет работать круглосуточно, поскольку время на часах никогда не достигает 25 (да даже и 24 - часы в этот момент покажут 0 часов).
Чтобы торговать только по времени, без учёта количества сделок, ставим TakeCount в 0, при этом значение countSingleTrade роли играть не будет.
УПС. Был обнаружен нехороший косяк. Поскольку счётчик циклов сбрасывался по проверке на первой минуте стартового часа, то если в эту же минуту открывалась позиция, то она не шла в общий зачёт, в результате советник делал лишний цикл. Исправлено дополнительной проверкой на то, что счётчик сегодня уже обнулялся.
Обновление! Если вы уже скачали советник из этого поста до появления этого обновления - перекачайте.
Специально по просьбам тех, кто боится близости выходных.
Добавлено два параметра.
MondayStart - во сколько стартовать по понедельникам, параметр аналогичен startHour, но работает только в понедельник, заменяя startHour.
FridayEnd - во сколько заканчивать в пятницу, параметр аналогичен endHour, но работает только в пятницу, заменяя endHour.
Полезно для тех, у кого торговая сессия данной модификацией начинается до полуночи, а заканчивается после.
Вероятно, полезнее всего будет выставлять старт понедельника больше чем конец сессии, а конец пятницы меньше чем старт сессии, чтобы не торговать утром понедельника и вечером пятницы вообще. А там - как сами решите, смотрите, что получается в тестере.
И ещё новые параметры по просьбам трейдеров.
startMinute - с какой минуты стартового часа стартовать торговлю, целое число. При выставлении 0 будет входить после startHour часов 0 минут. При 60 и более - по идее не начнёт никогда.
endMinute - на какой минуте финишного часа останавливать торговлю, целое число. При выставлении 0 будет заканчивать в endHour часов 0 минут. При 60 и более - по идее не закончит никогда.
MondayStartMinute, FridayEndMinute - аналогично, но только для ограничительных часов понедельника и пятницы.
Кто успел скачать до того, как появилось данное сообщение - перекачайте. Исправлено начало работы с учётом минут.






