헐 이동 평균 트렌드 추적 전략은 헐 이동 평균을 사용하여 시장의 경향 방향을 판단하고 구매 및 판매 신호를 발송하는 정량 거래 전략이다. 이 전략은 중장선 트렌드를 포착하고, 트렌드 초기 단계에서 포지션을 구축하고, 트렌드 반전 전에 포지션을 중지한다.
이 전략은 동시에 헐 이동 평균과 일반 이동 평균을 사용하여 트렌드 방향을 판단한다. 짧은 기간 헐 MA 상에서 긴 기간 헐 MA를 통과할 때 구매 신호이다. 짧은 기간 헐 MA 아래에서 긴 기간 헐 MA를 통과할 때 판매 신호이다.
일반 이동 평균은 즉각적인 트렌드 방향을 판단하는 데 사용됩니다. 짧은 기간의 EMA에서 긴 기간의 EMA를 통과할 때 호불호가, 짧은 기간의 EMA 아래에서 긴 기간의 EMA를 통과할 때 하락이다. 헐 MA 신호와 EMA가 동방향 호불호 또는 하락 할 때만 거래 신호가 발송됩니다.
또한, 이 전략은 K선 실물 채널을 사용하여 시장의 변동량을 판단하여 불안한 시장에서 잘못된 거래를 피합니다. 가격 돌파 채널에서만 입장을 고려하십시오.
Hull 이동 평균은 가격 변화에 더 민감하여 트렌드 전환을 더 일찍 잡을 수 있다.
헐 MA와 EMA를 조합하여 가짜 신호를 필터링할 수 있다.
K선 채널을 사용하여 흔들림을 판단하여 재조정에서 자주 거래하는 것을 피하십시오.
트렌드 트래킹을 통해 중·장기 트렌드를 지속적으로 파악할 수 있습니다.
이동 평균은 추세가 뒤집어지는 가장 좋은 입구 지점을 놓칠 수 있습니다.
“지난 몇 년 동안, 우리는 우리의 경제를 재구성하기 위해 많은 노력을 기울였습니다.
거래의 수가 적고, 단편적 손실에 취약하다.
“이런 일이 벌어진다면, 우리는 더 이상 이 문제를 해결하지 못할 것이다.
이동 평균의 주기적 변수를 최적화하고, 신속한 반응 경향을 추구한다.
RSI, BBANDS 등과 같은 다른 지표들을 사용하여 진동을 판단하십시오.
적극적인 자금 관리로 단편적 손실 비율을 조절한다.
다른 전략들을 활용하여 단선 수익을 잡을 수 있습니다.
헐 이동 평균 트렌드 추적 전략은 헐 MA와 EMA의 조합을 통해 중장선 트렌드를 효과적으로 추적 할 수 있습니다. 수익 트렌드에서 계속적으로 수익을 쌓고, 트렌드 반전 전에 최대한 빨리 멈출 수 있습니다. 이것은 간단하고 실용적인 양적 거래 전략입니다.
/*backtest
start: 2023-08-16 00:00:00
end: 2023-09-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// strategy(title='HULLMiguel 2019/ Strategy v3', shorttitle='HULLMiguel_2019_Strategy', overlay=true, pyramiding=0, default_qty_value=1000, initial_capital=1000, currency=currency.USD)
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=blue, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=15)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0 ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=3, color = plot_color)
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0 ? green: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=2, color = plot_color2)
//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(16, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(10, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=5, title="Hull MA")
dif_close_hull= (close-hullma(hma_src, hma_base_length+hma_length_scalar*6))/close
Percent_dif = (dif_close_hull/(hullma(hma_src, hma_base_length+hma_length_scalar*6)))
//direction3 = Percent_dif>0 ? +1 : Percent_dif<0 ? -1 : 0
//plot_color3 = direction3 > 0 ? lime: direction3 < 0 ? red : na
//plot(dif_close_hull, title="dif close hull", style=line, linewidth=6, color = plot_color3)
//============ signal Generator ==================================//
Piriod=input('720')
ch1 = security(syminfo.tickerid, Piriod, open)
ch2 = security(syminfo.tickerid, Piriod, close)
plot(ch1, title="EMA Signal 2", style=line, linewidth=1, color = blue)
//longCondition = crossover(security(tickerid, Piriod, close),security(tickerid, Piriod, open))
//plot((close-ema02)/ema02+close)
longCondition = direction > 0 and direction2> 0
if (longCondition)
strategy.entry("BUY", strategy.long)
//shortCondition = crossunder(security(tickerid, Piriod, close),security(tickerid, Piriod, open))
shortCondition = direction < 0 and direction2 < 0
if (shortCondition)
strategy.entry("SELL", strategy.short)
///////////////////////////////////////////////////////////////////////////////////////////