[Советник] HedgeOnSteroids

От Rigal, 12 декабря, 2019 в Лаборатория ProfitFX

Автор#1

Название советника:  Hedge On Steroids
Год выпуска: 2019
Актуальная версия: GLXMultiSession_v.5.0

Терминал: MT4 (build 1220+)
Сайт разработки: http://tradelikeapro.ru/
Рекомендуемые валютные пары: EURUSD
Таймфрейм: M1, M5
Время торговли: Круглосуточно
Рекомендуемый ММ: 0.13 лота на 10000$
Описание настроек:

 

 

 

Я не буду задерживаться на тривиальных настройках, вроде маджика и коммента

input int            MagicNumber                = 123321;
input string         CommentStr                 = "Hedge On Steroids";

 

input double         StartLot                   = 0.0;                                       //Start lot (0 - automatic)

Стартовый лот, если вы почему-то хотите указать его вручную. Если оставить 0, советник рассчитает сперва лимит потерь в сессии, как четверть доступных средств.

Потом он примет в расчет максимальное количество ордеров, ATR за несколько дней и посчитает оптимальный лот

По мере накопления статистики закрытых сессий, он начнет учитывать длину сеток успешных и провальных сессий и количество сделок, которые он открыл

Расчет выполняется на старте сессии, стартовый лот сохраняется постоянно до следующей сессии - если вы не перезапустите советник/терминал.
Рекомендуемое значение 0.


input int            LotIncrement_CountToStart              = 5;                             //Count to start incrementing

Советник увеличивает лот во время торговли. Но начинает не сразу. Этот параметр определяет, сколько сделок в одном направлении будет открыто без увеличения лота.

Важно понимать, что речь идет об открытых сделках - и умножение может просто не начаться в удачную сессию, если сделки закрываются на движении цены.

Если же оно началось, закрывающиеся сделки будут его замедлять.

Рекомендуемое значение 20.


input double         LotIncrement_Factor                    = 1.5;                           //Increment factor (per 1 order or 100 pips)

Множитель лота. Лот очередной сделки будет вычислен, как стартовый, умноженный на вот это число в степени числа сделок в рынке за вычетом предыдущего параметра.

Рекомендуемое значение 1.05


input double         LotIncrement_IncrementPercent          = 100;                           //Increment, %from start lot (per 1 order or 100 pips)

Более мягкий способ увеличения лота: на каждом следующем шаге к лоту прибавляется столько процентов от стартового лота

Работает вместе с множителем: умножили и потом прибавили.

Рекомендуемое значение 0 (можно оптимизировать)


input double         TakeProfitPips             = 0;                                         //Take profit, pips (0 - use adaptive)

Если вам почему-то кажется, что вам лучше знать, чем ATR, можно задать фиксированный тейк этим параметром.

Если оставить ноль, он вычислится по ATR M15. Собственно, рекомендуется.


input int            MaxTrades                  = 200;

Максимальное количество сделок, которые советник может открыть одновременно.

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

Этот же параметр используется для расчета лота на старте - пока статистики нет.

Рекомендуемое значение 100.


input int            MaxDisbalancePerBar        = 5;

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

Этот параметр ограничивает, насколько больше он может открыть сделок одного типа, чем другого.

Смысл в том, чтобы он не наклепал сорок сделок в одну сторону на резкой свече - ибо он открывается против резких движений и будет склонен сделать именно это.

Речь идет не о баре, как таковом, а о периоде длительностью в бар, от текущего времени.

Рекомендуемое значение 3-5.


input double         MaxSessionLossLimit        = 5000;

Как я уже сказал, лимит потерь вычисляется как четверть эквити.

Чтобы он не целился сливать уже накошенные миллионы по 250 косарей, можно ограничить размер лимита.

Имейте в виду, что цель сессии всегда равна 10% от лимита потерь (и может немного усыхать временами, под неблагоприятный ATR)


input int            CooldownMinutes            = 60;

Время отдыха между сессиями.

У меня получались хорошие результаты для отдыха в 120 минут.


input double         MaxAvgSpreadPips           = 0.3;

Советник стартует сессию, когда его не блокируют новости (если вы их включили), внутри торгового интервала (если вы ограничили время торговли) и когда средний спред по какому-то количеству последних тиков не больше этого значения. Чтобы не вваливался на неблагоприятный маркет, где его коротенькие тейки будут наполовину удлинятся спредом.

Рекомендуемое значение 0.25.


input int            SpreadAveragingTickCount   = 400;

Сколько тиков использовать в усреднении спреда

Рекомендуемое значение 200.

 

Всем, я надеюсь, знакомый фильтр новостей.

input string            _22_                       = "<==== News Filter ====>"; //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
extern bool             UseNewsFilter               = true;            //Use a news filter
input bool              ConsiderHighImpactNews      = true;             //Show High impact news
input bool              ConsiderMediumImpactNews    = true;             //Show Medium impact news
input bool              ConsiderLowImpactNews       = false;            //Show Low impact news
input int               DontStartMinutesBefore      = 120;              //Don't start new session, minutes before the news
input int               DontTradeMinutesAfter       = 30;               //Don't start new session, minutes after the news
input bool              DrawNewsLinesOnTheChart     = true;             //Draw lines on the chart for selected news
input string            NewsSymb                    = "";               //Currencies Filter (Empty Only shows current currencies) 
input color             ColorHigh                   = clrRed;           //High impact news color
input color             ColorMedium                 = clrLime;          //Medium impact news color
input color             ColorLow                    = clrBlue;          //Low impact news color

 

Всем, я надеюсь, в целом знакомый блок настройки времени

Я поясню пару параметров ниже

 

sinput string            _0_                           = "#============= Time settings =============#";//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            _1_                           = "- broker GMT offset will be auto-adjusted -";//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            _2_                           = "-- Set your winter GMT offset for tester --";//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
input int                BrokerGMTOffsetWinter         = 2;                                            //Broker GMT Offset (winter time)

Часовой пояс вашего брокера зимой.

Нужно только в тестере, если у вас указаны интервалы торговли, или если тестируете с новостями

Наживую определяется автоматически - нужно разрешить боту импортировать DLL


sinput DstMode           BrokerDstMode                 = DST_EUROPE;                                   //DST mode of your broker (or in TDS2)

Как ваш брокер переходит на летнее время

Нужно только в тестере, если у вас указаны интервалы торговли, или если тестируете с новостями


sinput string            _3_                           = "----- Trade intervals, comma separated ----"; //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            _4_                           = "----- set time in the London timezone -----";//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            _5_                           = "Format: 'hh:mm-hh:mm', blank for no trading";//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput   string          _7_                           = "<== MONDAY ==>";                             //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            MONDAY_TradeIntervals         = "08:30-17:00";                                //Monday Trade intervals
sinput   string          _8_                           = "<== TUESDAY ==>";                            //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            TUESDAY_TradeIntervals        = "08:30-17:00";                                //Tuesday Trade intervals
sinput   string          _9_                           = "<== WEDNESDAY ==>";                          //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            WEDNESDAY_TradeIntervals      = "08:30-17:00";                                //Wednesday Trade intervals
sinput   string          _10_                          = "<== THURSDAY ==>";                           //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            THURSDAY_TradeIntervals       = "08:30-17:00";                                //Thursday Trade intervals
sinput   string          _11_                          = "<== FRIDAY ==>";                             //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sinput string            FRIDAY_TradeIntervals         = "";                                           //Friday Trade intervals

 

Все интервалы в GMT

Рекомендуемое время для всех дней с 00:00 до 23:59

В пятницу с 00:00 до 08:00.


В настройках все пункты - 4-хзначные.
Для работы на пятизнаке никаких изменений в сетах не требуется, все считается автоматически.
 

 

 

Описание: 

Исходно советник писался как тестируемая реплика Ассам Хедж Мастер: в отличие от первых версий Ассама, он умел  работать по расписанию, ограничивать потери и сам закрывал прибыль.

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

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

Время от времени мне приходят в голову новые идеи, я их дописываю, тестирую, и если изменения положительно влияют на результат, выкладываю.

Если кому-то хочется глянуть, как он ведет себя в тестере - милости прошу.

Тестировать его можно только на котировках с качеством 99.9, желательно в ТДС, с плавающим спредом - с недавних пор спред является одним из критериев запуска сессии.

Советник довольно тонко настраивает лот, поэтому результат со стартовым лотом, близким к минимальному, будет хуже.

 

Мониторинг в Роботест

large.jpg

 

HedgeOnSteroids.ex4111 скач.

HedgeOnSteroids - описание параметров - 20200215.docx51 скач.

HedgeOnSteroidsGLXMultiSession_v.3.2.ex490 скач. HedgeOnSteroidsGLXMultiSession_v.5.0.ex440 скач.

Изменено 5 июня, 2020 пользователем Rigal

Автор#2

Поправил.

Одну машку он использует, уродец. Две другие для красоты, похоже.

Декабрь в тестере:

image.png

Отчет в архиве.

 

HedgeOnSteroids-Dec19.rar55 скач.

Автор#4

Погонял с разными интервалами, таргетами и уровнем стопа по эквити.

У него есть очень длинные положительные участки (что, собственно видно на графике выше), но стопы нужны больше таргетов, это понятно - и налетая на них, он сьедает прибыль.

Визуально торгует идентично Азаму. 

Версия в аттаче.

Всем профитов и спокойной ночи.

HedgeOnSteroids_v.1.1.ex478 скач.

Автор#5

HedgeOnSteroids  закрыл свои два процента. На мухобойке ассар висит пока в просадке, но это, может, оно еще не обновилось? 

UPD:  а вот тоже схлопнулось

пока совпадает с тестером за декабрь:

 

 

TesterGraph.gif

Изменено 16 декабря, 2019 пользователем Rigal

Автор#6

Assam не справился с атакой вчера и закрыл лосс.

HedgeOnSteroids (с выключенной функцией закрытия по окончании сессии) закрыл в профит сегодня. Но новую сессию уже не стартовал, это понятно.

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

Изменено 18 декабря, 2019 пользователем Rigal

#7
В 13.12.2019 в 19:59, Rigal сказал:

Погонял с разными интервалами, таргетами и уровнем стопа по эквити.

У него есть очень длинные положительные участки (что, собственно видно на графике выше), но стопы нужны больше таргетов, это понятно - и налетая на них, он сьедает прибыль.

Визуально торгует идентично Азаму. 

Начал тестировать в TDS2, но нет стопа и тейка в $ ! По стопу в % картина совсем другая, и судить об работе Азама по таким тестам не получится, и стеройдной версии. 

Автор#8
11 минут назад, ostapbender сказал:

но нет стопа и тейка в $ !

Я сам намедни столкнулся с этой проблемой и добавил.

В аттаче. 

Торгует постоянным лотом.

HedgeOnSteroidsOpt.ex455 скач.

Изменено 19 декабря, 2019 пользователем Rigal

#9

Тест за 2019. @Rigal распишите настройки

 

asa1.jpg

ASAR.ZIP30 скач.

#10

Тест без новогодних недель

 

ASAR2.ZIP15 скач.asa2.jpg

 

Автор#11

TakeProfit - тейк в 4-хзначных пунктах, основной механизм сборки в нем

MinStepPips - минимальный отступ водном направлении (от уже заполненного диапазона). В оригинальном советнике такое ощущение, что этот параметр равен нулю, ибо он иногда ставится в точно то же место на краю диапазона, где уже открыта позиция раньше

MaxTrades - сколько сделок открывать всего. Для брокеров с сильно ограниченным количеством сделок (хотя этот друг на таких брокерах плохо работает) - ибо нет никакого способа программно вычислить лимит и, если не ограничить, он будет сыпать ошибкой 148

DisbalanceTrades - насколько больше можно открывать сделок в одном направлении, чем уже открыто в другом. Преимущественно для тех же брокеров с лимитами - иначе он может на отскоке забить весь доступный лимит и обратно открыться не сможет. Оригинальный не ограничен никак

SessionTarget - цель в валюте депозита. Когда эквити отрастет на эту величину, советник закроет все сделки и будет ждать начала следующей торговой сессии.

SessionProtection - стоплосс в валюте депозита. Если эквити просядет на эту величину от уровня начала сессии, все сделки закрываются и он ждет следующей сессии.

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

CloseAllAfterSession - по окончании обозначенного интервала времени закрыть все открытые сделки. Цели сбрасываются, понятно.

С торговым интервалом и сдвигом от лондона, я надеюсь, все понятно.

последние три параметра можно игнорировать: обработка реквот и все вот это вот.

 

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

 

использует глобальные переменные, цели не теряет при перезапуске, no funny business 

 

очень неожиданный результат, дружище. Это на тиковых котировках? Я как раз размышлял, велика ли разница - и судя по всему велика.

А можно с выключенным close all after session? Может оказаться интереснее

 

 

Автор#12

могу добавить фильтр дат, чтобы можно было выкинуть дни, когда вы б не стали торговать - как в сетке. Надо?

пишите, короче, что надо, я прикручу ;)

#13

Как в версии 1.1 автолот рассчитывается? Указан лот 0,1, торгует 2,5-3,07 - опасно, но закрыл сегодня +2%. Запустил его ещё раз.

#14
4 часа назад, Rigal сказал:

А можно с выключенным close all after session? Может оказаться интереснее

Сделал.

3.JPG

 

4 часа назад, Rigal сказал:

могу добавить фильтр дат, чтобы можно было выкинуть дни, когда вы б не стали торговать - как в сетке. Надо?

пишите, короче, что надо, я прикручу

Фильтр недель НГ точно нужно, чтоб протестировать хотябы за лет 5.

 

Можно добавить выход по БУ через определённое время.

 

 

ASAR3.ZIP17 скач.

#15

Стоит на демо версия 1.1, по 2% прибыли набирает быстро сегодня, включил уже третий раз, поставлю только 10% для теста.

Автор#16

Автолот: там два параметра, StrartLot и AmountDivider

Лот в итоге выставляется = StartLot * (AccountBalance / AmountDivider).

Или поставьте делитель побольше (очень большой - будет постоянный стартовый лот), или на аккаунте много денег :)

Автор#17
1 час назад, ostapbender сказал:

Фильтр недель НГ точно нужно, чтоб протестировать хотябы за лет 5.

 

Можно добавить выход по БУ через определённое время.

Взял в работу

#18

Rigal, как правильно перезапускать советников чтобы прошлые настройки не подхватывали? Например цель по эквити поменял, перезапускаю, всё равно прошлую цель применяет.

Автор#19
4 минуты назад, ac_crazy сказал:

Rigal, как правильно перезапускать советников чтобы прошлые настройки не подхватывали? Например цель по эквити поменял, перезапускаю, всё равно прошлую цель применяет.

Об этом я не подумал.

Он до конца сессии сохранит, потом будет использовать новое значение.

Можно зайти в глобальные переменные и удалить все три с префиксом "HedgeOnSteroids" - тогда после перезапуска подхватит сразу.

У меня на подходе версия с несколькими важными усовершенствованиями. Он перестанет учитывать других советников и не будет использовать эквити. Это решит проблему.

#20
19 часов назад, Rigal сказал:

Автолот: там два параметра, StrartLot и AmountDivider

Лот в итоге выставляется = StartLot * (AccountBalance / AmountDivider).

Или поставьте делитель побольше (очень большой - будет постоянный стартовый лот), или на аккаунте много денег :)

Все равно с лотом ерунда: startLot=0.02; AccountBalance=10000; AmountDivider=1000. Итого должно получиться 0.02*(10000/1000)=0.2

А в итоге лот равен 1

расчет лота.png

#21

И еще-торги в пятницу отключены, а запустился

 

пятница.png

#22
10 минут назад, wowa230874 сказал:

Все равно с лотом ерунда: startLot=0.02; AccountBalance=10000; AmountDivider=1000. Итого должно получиться 0.02*(10000/1000)=0.2

А в итоге лот равен 1

расчет лота.png

Тоже мучался с лотом, перешел на версию HedgeOpt - там лот указывается вручную, без вычислений.

Автор#23
9 минут назад, wowa230874 сказал:

Все равно с лотом ерунда

Старовата версия. Баг с пятницей я поймал и запатчил пару дней назад, у меня сегодня молчит.

Вот так выглядело вчера кстати



image.png

А с лотом и правда ерунда. Какой у Вас минимальный лот на брокере, если не секрет? Можно мне лог запуска советника плиз, можно в личку.

Если минимальный лот 0.1, или шаг большой - это могло бы как-то объяснить.

 

В новой версии уберу лот и таргет напрочь, кстати.

От лукавого это. Достаточно определиться риском на сессию в долларах, все остальное рассчитывается.

Автор#24
3 минуты назад, ac_crazy сказал:

перешел на версию HedgeOpt

да, и пятница поправлена

#25
3 минуты назад, Rigal сказал:

Старовата версия. Баг с пятницей я поймал и запатчил пару дней назад, у меня сегодня молчит.

Вот так выглядело вчера кстати

 

  Скрыть контент

 

 


image.png
 

 

 

А с лотом и правда ерунда. Какой у Вас минимальный лот на брокере, если не секрет? Можно мне лог запуска советника плиз, можно в личку.

Если минимальный лот 0.1, или шаг большой - это могло бы как-то объяснить.

 

В новой версии уберу лот и таргет напрочь, кстати.

От лукавого это. Достаточно определиться риском на сессию в долларах, все остальное рассчитывается.

Минимальный 0.1 на Робо

 

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025