[Советник] По индикатору Hull Moving Average

От xbms, 12 ноября, 2013 в Лаборатория ProfitFX

Страница 1 из 4
Автор#1
Название советника: Hma-EA
Разработка: http://TradeLikeAPro.ru
Год выпуска: 2013
Версия: 1.0
Валютные пары: любые
Описание: советник на основе Hull Moving Average



Всем привет!

На этот раз советник основе индикатора от Павла (см. http://tradelikeapro.ru/hull-moving-average/)

Тестирование проводил на паре EURUSD, ТФ- Н1, хотя Вы можете попробовать подобрать другой таймфрейм со своими настройками...

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

Описание параметров:

extern string MM = " === Money management ===";
extern bool UseMM = true; // использовать-ли ММ
extern double LotsFor10000 = 1; // объём на 10000 депозита
extern double FixLot = 0.1; // если UseMM = false, то фикс. лот
extern int TakeProfit = 170; //
extern bool AutoSL = true; // Рассчитывать StopLoss автоматически?
extern int MaxSL = 50; // Максимальный стоп
extern int MinSL = 20; // Минимальный стоп
extern int SLBars = 10; // Кол-во баров для расчёта SL
extern int SLPips = 10; // Отступ от екстремума для расчёта SL
extern int StopLoss = 70; // Фиксированный стоп, при AutoSL = false
extern int FlatPips = 50; // Не открывать ордер, разница в цене между предыдущим ордером и текущим будет менее чем FlatPips
extern string comment = "HMA Expert v.1";
//+------------------------------------------------------------------+
extern int HourStart = 8; // входить в рынок при совпадении условий
extern int HourEnd = 24; // в часы
extern bool TradeMonday = true;
extern bool TradeTuesday = true;
extern bool TradeWednesday = true;
extern bool TradeThursday = true;
extern bool TradeFriday = true;
//+------------------------------------------------------------------+
extern string HMA = "HMA parameters";
extern int HMA_Period = 8;
extern int HMA_PriceType = 0;
extern int HMA_Method = 3;
extern bool NormalizeValues = TRUE;
extern int NormalizeDigitsPlus = 2;
extern int VerticalShift = 0;
//+------------------------------------------------------------------+
extern string Trail = " === Simple trailing ===";
extern bool UseTrailing = true;
extern int TrailingType = 1; // 0 - простой тралл, 1-по ATR, 2- по фракталам, 3-по MA, 4- по Price channel,
// 5-по теням, 6-по Баришпольцу, 7-ступенчатый, 8-удавка
extern int TrailingTF = 0; // 0-текущий, 1-М1, 2-М5, 3-М15, 4-М30, 5-Н1, 6-Н4, 7-D1, 8-W1, 9-MN1
extern string SimpleTrailing = "Simple traling parameters";
extern int Trailing_Stop = 20; // Trailing stop level
extern int Trailing_Step = 20; // Trailing step level
//+------------------------------------------------------------------+
extern string iAtrParams = "ATR trailing parameters";
extern int iAtr1_period = 5; // период первого ATR
extern int iAtr1_shift = 1; // сдвиг первого ATR
extern int iAtr2_period = 36; // период второго ATR
extern int iAtr2_shift = 1; // сдвиг второго ATR
extern double dCoeff = 1; // коэффициент, на который множим ATR, чтобы получить стоплосс
// (при coeff=1 стоп будер размещен на расстоянии в 1 ATR,
// при coeff=1.5 - на расстоянии в полтора ATR и т.д.)
extern bool bAtrTrLoss = false; // следует ли тралить на участке лоссов (между курсом стоплосса и открытия)
//+------------------------------------------------------------------+
extern string iFracParams = "Fractals trailing parameters";
extern int iFrktl_bars = 5; // кол-во баров во фрактале
extern int iFracIndent = 3; // отступ от тени бара, на котором размещается стоплосс
extern bool bFracTrLoss = false; // следует ли тралить на участке лоссов (между курсом стоплосса и открытия)
//+------------------------------------------------------------------+
extern string iMaParams = "MA trailing parameters";
extern int iMAPeriod = 21; // период МА (не меньше 2)
extern int iMAShift = 0; // сдвиг индикатора относительно ценового графика
extern int iMAMethod = 0; // метод усреднения (0 - MODE_SMA, 1 - MODE_EMA, 2 - MODE_SMMA,
// 3 - MODE_LWMA);
extern int iApplPrice = 0; // используемая цена (0 - PRICE_CLOSE, 1 - PRICE_OPEN,
// 2 - PRICE_HIGH, 3 - PRICE_LOW, 4 - PRICE_MEDIAN, 5 - PRICE_TYPICAL,
// 6 - PRICE_WEIGHTED)
extern int iShift = 1; // индекс получаемого значения из индикаторного буфера (сдвиг
// относительно текущего бара на указанное количество периодов назад)
extern int iMaIndent = 3; // отступ от тени бара, на котором размещается стоплосс
//+------------------------------------------------------------------+
extern string ipcParams = "Price channel trailing parameters";
extern int ipcBars_n = 20; // кол-во баров текущего графика, по которым строится ценовой канал
extern int ipcIndent = 3; // отступ от тени бара, на котором размещается стоплосс
//+------------------------------------------------------------------+
extern string iShParams = "Shadows trailing parameters";
extern int iShBars_n = 3; // кол-во баров, по которым следует тралить
extern int iShIndent = 3; // отступ от тени бара, на котором размещается стоплосс
extern bool bShadowTrLoss = false; // следует ли тралить на участке лоссов (между курсом стоплосса и открытия)
//+------------------------------------------------------------------+
extern string iBarishParams = "Barishpolc trailing parameters";
extern int iPf_level_1 = 10; // уровень профита (пунктов), при котором стоплосс переносим
// в безубыток + 1 пункт;
extern int iPf_level_2 = 20; // уровень профита (пунктов), при котором стоплосс переносим с +1 на
// расстояние pf_level_1 пунктов от курса открытия;
extern int iPf_level_3 = 30; // уровень профита (пунктов), при котором стоплосс переносим с pf_level_1
// на pf_level_2 пунктов от курса открытия (на этом действия функции
// заканчиваются);
extern int iLs_level_1 = 15; // расстояние от курса открытия в сторону "лосса", на котором будет
// установлен стоплосс при достижении профитом позиции +1 (т.е. при +1
// стоплосс будет поджат на ls_level_1);
extern int iLs_level_2 = 25; // расстояние от курса открытия в "лоссе", на котором будет установлен
// стоплосс при условии, что курс сначала опускался ниже ls_level_1, а
// потом поднялся выше (т.е. имели лосс, но он начал уменьшаться -
// недопустим его повторного увеличения);
extern int iLs_level_3 = 35; // расстояние от курса открытия "минусе", на котором будет установлен
// стоплосс при условии, что курс снижался ниже ls_level_2, а потом поднялся выше;
extern bool bTrBarLoss = false; // следует ли тралить на участке лоссов (между курсом стоплосса и открытия)
//+------------------------------------------------------------------+
extern string iStairsParams = "Stairs trailing parameters";
extern int iStTrldistance = 40; // расстояние от текущего курса (пунктов), на котором включается трейлинг, пунктов
extern int iStTrlstep = 10; // "шаг" изменения стоплосса (пунктов) (не меньше 1)
//+------------------------------------------------------------------+
extern string iUdavkaParams = "Udavka trailing parameters";
extern int iTrl_dist_1 = 30; // исходное расстояние трейлинга (пунктов) (не меньше
// MarketInfo(Symbol(),MODE_STOPLEVEL), больше trl_dist_2 и trl_dist_3);
extern int iLevel_1 = 50; // уровень профита (пунктов), при достижении которого дистанция трейлинга
// будет сокращена с trl_dist_1 до trl_dist_2 (меньше level_2; больше trl_dist_1);
extern int iTrl_dist_2 = 20; // расстояние трейлинга (пунктов) после достижения курсом уровня профита в
// level_1 пунктов (не меньше MarketInfo(Symbol(),MODE_STOPLEVEL));
extern int iLevel_2 = 70; // уровень профита (пунктов), при достижении которого дистанция трейлинга
// будет сокращена с trl_dist_2 до trl_dist_3 пунктов (больше trl_dist_1 и
// больше level_1);
extern int iTrl_dist_3 = 10; // расстояние трейлинга (пунктов) после достижения курсом уровня профита
// в level_2 пунктов (не меньше MarketInfo(Symbol(),MODE_STOPLEVEL)).
//+------------------------------------------------------------------+
extern int Magic = 20131112;
extern int Slippage = 5;
//+------------------------------------------------------------------+





Индикаторы для эксперта брать тут: http://tradelikeapro.ru/hull-moving-average/

HMA-EA_v1-1-Trailing.ex4409 скач.
hma-expert.set448 скач.
HMA-EA_v1-2-Trailing.ex4372 скач.

Изменено 12 июля, 2017 пользователем Pavel888

#2

Да, быстро! Респект! =d>
Ещё не успел я увидеть тему с индикатором - а тут уже советник ... @-)

Спасибо! :)

#3

Плюсанул. Беру на тест. :)

#4

Протестировал, сливает, вот результаты можно скачать здесь: _http://yadi.sk/d/q1QhJvBxCYpSF

Изменено 12 ноября, 2013 пользователем Dmitrius

#5
xbms не могли бы Вы добавить функцию закрытия по противоположному сигналу?
#6

Спасибо.Плюсонул.Потестируем \M/

#7


xbms не могли бы Вы добавить функцию закрытия по противоположному сигналу?




...и чтобы открывал не более одного (или "n", ввести переменную количества открываемых ордеров) ордера между противоположными сигналами(если сработал трейлинг-стоп, то в эту же сторону ордер больше не открываем, до противоположного сигнала).
#8

И пошла туева куча советов:D:D:D

#9


И пошла туева куча советов:D:D:D



А чё, нельзя, что ли? Дык мы по простому, по нашенски..
Автор#10

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

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

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

Так-с... Давайте проанализируем на тиках каждый год и подойдём более детально к каждому периоду.
Это реально?

Давайте, наконец совместно, подкрепляя чем-то, какими данными или ещё чем-то что-то создать. Тут нужен анализ.

P.S.: я пробовал функцию закрытия ордера по противоположному сигналу, результат хуже...

#11

Так я и хочу прогнать, но на разных вариантах. Если по противоположному сигналу - согласен, результат будет хуже, остается трейлинг-стоп: но тогда надо, чтобы в эту же сторону ордер больше не открывался, или 2-3 ордера, как хочешь. Или - если хочешь - пройди этот вручную. А то большинство советников после тр.стопа открывает новый ордер(т. к. нет запрета, а еще лучше варианты: хочу один ордер, хочу два и т.д.) - а цена уже в другую сторону,и после нового стоп-лосса - новый ордер, снова не туда, т.к. нет еще срабатывания противоположного сигнала.
Вот и незапланированные убытки. Пусть лучше будут запланированные(но многовариантные!) прибыли. Вот и все. (Пока).

#12

Пооптил немного за этот год. Но с этими же параметрами торгует не "фонтан" с 2011-го.

HMA_eurusd_h1_2013.jpg

Автор#13

Я провёл некоторый анализ сливных периодов...
всё-таки, флет убивает любую подобную систему, индикатор всё-таки трендовый...






Изменено 13 ноября, 2013 пользователем xbms

#14

Есть мысль для исключения торговли во флете. Если есть сигнал на продажу или покупку и цена открытия ордера не отличается от цены последнего закрытого ордера на N пунктов (например 50 старыми) то не торговать. Это избавило бы от торговли в установившемся диапазоне

Автор#15


Есть мысль для исключения торговли во флете. Если есть сигнал на продажу или покупку и цена открытия ордера не отличается от цены последнего закрытого ордера на N пунктов (например 50 старыми) то не торговать. Это избавило бы от торговли в установившемся диапазоне



Вот и первая достойная идея! :)
#16

1. Можно как в WS. Заходим в сделку только если текущая цена отличается на n или больше пунктов от обычной и более медленной скользящей средней и в сторону этого отличия.

2-й вариант - заходим после пробоя последнего максимума/минимума дня и только один раз.

Автор#17

Советник в первом посте обновлён...
Добавлено:

1. 9 видов тралла!
2. По идее nixxer'a, вариант определения флета, т.е. сделки не будут открываться на том же уровне цены, если цена в диапазоне FlatPips от последнего открытого ордера.


2011-2013 с постоянным лотом 1




Вариантов для теста и подбора параметров просто немеряно...

Изменено 13 ноября, 2013 пользователем xbms

#18

кто-нибудь уже предлагал аллигатор на 3-х скользящих?))

Автор#19


кто-нибудь уже предлагал аллигатор на 3-х скользящих?))



а что с ними делать?
это те же мувинги...
одна машка уже есть, это HMA, и основной сигнал получаем от неё.
Тут нужна некая идея, что делать в сливной период... т.е. проанализировать его и решить как с этим быть.
#20

Из 3-х Hull мувингов:)
И с одной скользящей, пусть даже она и Hull, разве можно что-то сделать?)) проблема тут одна - как фильтровать флет. Грааль из одного индикатора сделать нереально))
Мне кажется, можно посмотреть, что в соседних темах товарищи разработчики используют для фильтрации. Slope, ещё что-то. И это прицепить к Hull и посмотреть, что получится))
Можно попробовать к волстриту прикрутить как ещё один фильтр или вместо чего-то.

Автор#21

Мерлин, дружище... это у тебя идея нового эксперта... Взять что-то да прикрутить к чему-то :)

Вот давай, сделай ТЗ с обоснованием, что этот индикатор на графике показывает то-то, и тут можно взять прибыль, а вот если ещё и прикрутить вот тот, то это позволит отсечь ненужные ордера как раз вот в этом месте на графике и т.д. и т.п.

Вот когда будет полноценное ТЗ с обоснованием, с графиками и т.п. вот тогда будет иметь смысл что-то к чему-то крутить.

Автор#22


плиизз, а выложите этот индикатор для подвала, если кто может.... ;)



какой индикатор?
какого подвала?

индикатор для этого советника брать тут: http://tradelikeapro.ru/hull-moving-average/
#23



плиизз, а выложите этот индикатор для подвала, если кто может.... ;)



какой индикатор?
какого подвала?

индикатор для этого советника брать тут: http://tradelikeapro.ru/hull-moving-average/


Да я в курсе, где этот индикатор размещен. Для подвала, это т.е. чтобы он отображался не на самом графике, а в низу(в подвале)
#24
Caesar34, ну так и надо спрашивать в топике индикатора или в блоге - здесь-то чего спрашиваете?

И с чего вы взяли, что этот индюк в версии для индикаторного окна существует?!
Это хотелка просто?

Ладно, если кто-то ответит - получите ответ.
Но в любом случае через пару дней эту переписку вашу удалю как не по теме топика.
#25

Индикатор HMA выложенный на сайте, к большому сожалению, перерисовывается ( Сам видел как стрелочка, то появляется, то исчезает.

Страница 1 из 4

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

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