Эта стратегия основана на индикаторе Hull Moving Average, рассчитывая Hull MA на разные временные рамки и сравнивая тенденции Hull MA в разные временные рамки для выявления изменений тренда.
Входные параметры: период Hull MA Период, временная рамка HMA2 Резолюция2, временная рамка HMA3 Резолюция3
Вычислить текущее значение HMA
Вычислить значение Hull MA HMA2 на временной шкале Resolution2
Вычислить значение Hull MA HMA3 на временной шкале Resolution3
Сравните величину взаимосвязи между HMA, HMA2, HMA3
Создание сигнала покупки при HMA>HMA2>HMA3
Сгенерировать сигнал продажи, когда HMA
Показать значения и сигналы Hull MA на разных временных отрезках в левом верхнем углу диаграммы
Используйте цвета, чтобы отличить восходящий и нисходящий тренд
Использование нескольких временных рамок может отфильтровать ложные утечки и избежать ловушек.
Параметры временных рамок, адаптируемые к различным периодам и волатильности.
Дисплей сигнала в режиме реального времени, интуитивная работа.
Визуализация тенденций Hull MA помогает определить текущую тенденцию.
Неправильные параметры могут привести к переоценке.
Более длительные временные рамки Hull MA имеют задерживающий эффект, могут пропустить поворотные моменты тренда.
Может генерировать ложные сигналы вокруг бычьего-медвежьего перехода.
Стратегии побега склонны попасть в ловушку ложных побегов.
Торговые комиссии не учитываются, что влияет на фактическую прибыль.
Риски могут быть уменьшены путем оптимизации параметров, объединения других индикаторов для фильтрации и предоставления более широкого стоп-лосса.
Оптимизировать период Hull MA, адаптируемый к различным периодам и волатильности.
Добавьте индикатор громкости, чтобы избежать ложных прорывов.
Добавьте осцилляторы, чтобы определить силу тренда.
Включить модели машинного обучения для планирования покупок и продаж.
Объединяйте показатели настроения, чтобы обнаружить рыночный ажиотаж.
Корректировать стратегию стоп-лосса для улучшения управления рисками.
Устройство условий покупки/продажи с другими индикаторами.
Добавьте торговые стратегии, основанные на ценовом канале или волне.
Эта стратегия использует многочасовые Hull MA для определения направления тренда путем сравнения скользящих средних склонов в разные временные рамки и генерирует сигналы при изменении тренда. Многочасовые Hull MA более эффективны в фильтрации ложных прорывов, чем одиночные MA. Но эта стратегия также имеет ограничения в настройке параметров, определении тренда и т. Д. Интегрирование большего количества индикаторов, оптимизация параметров, улучшение стоп-лосса может повысить прибыльность и контролировать риск.
/*backtest start: 2023-10-07 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy("wtfBUYorSELLffs",overlay=true,currency="USD",initial_capital=100000,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.percent,commission_value=0.1) Period=input(title="Hull MA Period",type=input.integer,defval=6,minval=1) Resolution2=input(title="HMA2 Resolution", type=input.resolution,defval="60") Resolution3=input(title="HMA3 Resolution", type=input.resolution,defval="240") Price=input(title="Source of Price",type=input.source,defval=open) xOffset = input(40, title="Panel offset (X-Axis)") yOffset = input(0, title="Panel offset (y-Axis)") lightgray = #D3D3D3FF pnlTextColor = color.silver pnlColor = color.black HMA = hma(Price,Period) HMA2 = security(syminfo.tickerid, Resolution2, HMA,barmerge.gaps_off,barmerge.lookahead_off) HMA3 = security(syminfo.tickerid, Resolution3, HMA,barmerge.gaps_off,barmerge.lookahead_off) HUP = HMA > HMA[1] H1UP = security(syminfo.tickerid, Resolution2, HUP,barmerge.gaps_off,barmerge.lookahead_off) H2UP = security(syminfo.tickerid, Resolution3, HUP,barmerge.gaps_off,barmerge.lookahead_off) int barSize = timeframe.isdaily ? timeframe.multiplier*86400000 : timeframe.isseconds? timeframe.multiplier*1000 : timeframe.isminutes? timeframe.multiplier*60000 : (time[0]-time[1]) int lapos_x = timenow + barSize*xOffset float lapos_y = highest(20) + yOffset*syminfo.mintick * syminfo.pointvalue f_draw_infopanel(_x, _y, _line, _text)=> _rep_text = "" for _l = 0 to _line _rep_text := _rep_text + "\n" _rep_text := _rep_text + _text // var label _la = na // label.delete(_la) // _la := label.new( // x=_x, y=_y, // text=_rep_text, xloc=xloc.bar_time, yloc=yloc.price, // color=pnlColor, style=label.style_labelup, textcolor=pnlTextColor, size=size.normal) // f_draw_infopanel(lapos_x, lapos_y, 8, "╚═══════════════════════╝") f_draw_infopanel(lapos_x, lapos_y, 6, "HMA3 on TF " + Resolution3 + " = " + tostring(HMA3,"#.####") + (H2UP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 4, "HMA2 on TF " + Resolution2 + " = " + tostring(HMA2,"#.####") + (H1UP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 2, "HMA1 on TF " + timeframe.period + " = " + tostring(HMA,"#.####") + (HUP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 0, "╔═════════ HMA(" + tostring(Period,"#") +") ════════╗") change_color=HMA>HMA3?color.green:color.red change_color2=HMA2>HMA3?color.lime:color.yellow plot1=plot(HMA3,color=change_color2,title="3 Hull MA Line",linewidth=2,transp=75) plot2=plot(HMA2,color=change_color,title="2 Hull MA Line",linewidth=2,transp=75) plot3=plot(HMA,color=color.white,title="Hull MA Line",linewidth=2,transp=75) fill(plot1,plot3,color=change_color,transp=90) fill(plot2,plot3,color=change_color2,transp=75) if (H2UP and H1UP and HUP) strategy.entry("BUY",strategy.long) if (not H2UP and not H1UP and not HUP) strategy.entry("SELL",strategy.short)