Если честно, то эту модификацию планировал сделать ещё
несколько месяцев назад, но вот только дошли руки. Но обо всём по порядку.
Первая часть мода заключается в том, что ограничил время «жизни» усредняющих ордеров. Вызвано это тем, что функция «плотности» учитывает все типы ордеров и
позиций и по наблюдениям за практической работой советника это уменьшает количество
открываемых базовых ордеров. Для этого были внесены в код советника
соответствующие изменения.
Вначале был проведён контрольный прогон советника на
периоде, с января 2011 года по сей день. Счёт центовый в «Инсте» объём базового
ордера 0,1.
Затем, провёл аналогичный тест советника, в котором время
«жизни» усредняющих ордеров было равно трём часам. Почему именно трём, не знаю,
просто так захотелось.
Как и ожидалось, немного увеличилось количество сделок.
На следующем этапе были внесены изменения в саму политику
процесса усреднения. Теперь если усредняющий ордер первого уровня, не становится
позицией и базовый ордер уходит в дальнейшую просадку, то на втором уровне
усреднения происходит повторное усреднение базового ордера. В настройках можно
отключать эту опцию, также задаётся свой объёмный коэффициент для этой опции.
Полностью настройки функции усреднения теперь выглядят
вот так:
extern bool frst_aver =
true; // Включение
усреднения первого порядка
extern bool frst_av_db =
false; //
Повторное включение усреднения первого порядка
extern int frst_elrg = 5; // Кратность объема
усредняющего ордера первого порядка
extern int frst_eg_db = 25; // Кратность объема
повторного усредняющего ордера первого порядка
extern int frst_level = 60;
// Уровень
усредняющего ордера первого порядка
extern int frst_zone = 6; // Приращение для
включения усреднения первого порядка
extern bool scnd_aver =
true; // Включение
усреднения второго порядка
extern bool full_scnd =
true; // Полное
усреднение второго уровня
extern int scnd_elrg = 5; // Кратность объема
усредняющего ордера второго порядка
extern int scnd_level =
190; // Уровень
усредняющего ордера второго порядка
extern int scnd_zone = 14; // Приращение для включения
усреднения второго порядка
В торговли это выглядит следующим образом. Рассмотрим на
конкретном примере.
Базовый ордер №91 открылся 25.01.2011 в 00.28 в этот же день, в 04.56 он
становится позицией, которая уходит в просадку.
В 11.14 базовая позиция №91 усредняется ордером №93, по истечении
трёх часов в 14.14 усредняющий ордер №91 удаляется, так как он не стал
позицией. Это усреднение проводится на
уровне frst_level = 60 пунктам.
Так как просадка базовой позиции продолжается, то на
уровне второго усреднения, которое
равно frst_level плюс scnd_level, 60+190=250 пунктов, открывается 26.01.2011 в
08.32 усредняющий ордер №100. Однако просадка продолжается, в течении трёх
часов ордер №100 не становится позицией и в 11.32 он удаляется. Но через
некоторое время происходит разворот и на обратном ходе в 12.27 снова открывается
усредняющий ордер №101, который в 12.31 становится позицией. В результате в
13.30 позиции закрываются в общем паритете.
Ниже результаты работы этого мода.
И в завершении результаты сравнительного теста работы
модифицированного советника за период текущего года.
Это контрольный тест:
Здесь работа модифицированного советника:
С сегодняшнего дня заменил советник Agent_SB_777_home_4you в «детском» счёте на модифицированный Agent_SB_777_4you_24102012 следующий
месяц буду наблюдать за техникой работы.