이 전략은 헐 이동 평균 지표에 기반한 짧은 라인 거래 전략이다. 전략은 헐 이동 평균의 금叉死叉을 이용하여 구매 신호를 형성하는 트렌드 추적 전략이다.
이 전략은 주로 헐 이동 평균 지표에 기반을 두고 있다. 헐 이동 평균은 두 개의 이동 평균으로 구성된다. 우선 가격을 계산하는 중기 이동 평균 nma, 주기는 헐 기간이다.
일부 가짜 신호를 필터링하기 위해, 전략은 또한 Hull 라인을 도입했다. Hull 라인은 nma와 n2ma 사이의 미분값을 계산하는 선형 회귀의 결과이다. 가격이 Hull 라인과 이탈하면, 전략은 매매 신호를 건너 낸다.
이 전략은 다음과 같습니다.
계산 nma, 주기 hullperiod
n2ma를 계산하고, 주기는 nma 주기의 반이다.
n2ma와 nma의 차이를 계산한다.
diff를 sqrt ((hullperiod) 로 계산한 이동 평균은 Hull 라인을 얻는다.
Hull 라인을 넘어서서 구매 신호를 발산합니다.
가격이 Hull 라인을 넘으면 판매 신호를 냅니다.
만약 가격이 헐라인에서 벗어나면 신호를 건너뛰세요.
일정한 비율의 포지션으로 입점, 퇴장 손실 방식을 채택하여 손실을 중지
이 전략은 다음과 같은 장점을 가지고 있습니다.
헐의 이동 평균을 기반으로 트렌드를 빠르게 파악할 수 있습니다.
허울 라인을 사용하여 가짜 신호를 필터링하여 신호 품질을 향상시킵니다.
회수와 적자 비율이 좋고, 단선 운영에 적합하다.
다양한 시장 환경에 적응할 수 있는 변수 조정 유연성
리버스 스톱을 적용하여 적시에 스톱을 하고 위험을 통제합니다.
계절성, 특정 기간의 회피 가능한 체계적인 위험
이 전략에는 몇 가지 위험도 있습니다.
트렌드 트래킹 전략으로 온종일 거래가 불가능하다
트렌드가 바뀌면 더 큰 손실이 발생할 수 있습니다
이동 평균 시스템은 뒤떨어져서 전환점을 잡을 수 없습니다.
은 거래가 많고, 거래비용이 높습니다.
변수 설정이 잘못되면 흔들리는 시장의 수익이 떨어질 수 있습니다.
위와 같은 위험은 다음과 같은 방법으로 통제할 수 있습니다.
마틴겔의 단편적 손실을 통제하기 위한 전략
최적화 매개 변수, 다양한 시장 환경의 매개 변수 강도를 테스트
동향을 판단하는 지표와 결합하여 반전 중 추격 하락을 피하십시오.
지분 보유 시간을 늘리고 거래 빈도를 낮추는 것
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
동력 지표와 결합하여 트렌드의 시작 지점을 확인하고 더 나은 입구를 배치합니다.
트렌드 방향과 강도를 판단하는 데 도움이 되는 기계 학습 모델을 추가합니다.
실시간 시장에 따라 변수를 조정하는 적응 변수 설정을 사용합니다.
다중 시간 주기 Hull 시스템을 구성하고, 다른 기간에 다른 포지션을 구성
거래량 에너지 지표와 결합하여 불충분한 가짜 돌파구를 피하십시오.
변동율에 따라 역동적으로 위치를 조정하는 변동율 기반의 위치 관리 모듈을 추가합니다.
헐 이동 평균 진동 거래 전략은 전체적으로 매우 실용적인 단선 추적 전략이다. 그것은 Hull 이동 평균 시스템을 사용하여 트렌드 방향을 판단하여 진행을 달성하는 목적을 가지고 있다. 단일 이동 평균 시스템에 비해 더 높은 신호 품질과 파라미터의 유연성을 가지고 있다. 이 전략의 장점은 빠른 트렌드 전환을 포착하여 낮은 회수 수익을 얻는 데 있습니다.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Hull Moving Average Swing Trader by SEASIDE420
strategy("Hull Moving Average Swing Trader", shorttitle="HMA_Swing_Trader", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
hullperiod = input(title="HullMA Period", type=input.integer, defval=210, minval=1)
price = input(open, type=input.source, title="Price data")
FromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input(defval=2020, title="From Year", minval=2017)
ToMonth = input(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input(defval=9999, title="To Year", minval=2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
n2ma = 2 * wma(price, round(hullperiod / 2))
nma = wma(price, hullperiod)
diff = n2ma - nma
sqn = round(sqrt(hullperiod))
n2ma1 = 2 * wma(price[1], round(hullperiod / 2))
nma1 = wma(price[1], hullperiod)
diff1 = n2ma1 - nma1
n1 = wma(diff, sqn)
n2 = wma(diff1, sqn)
Hull_Line = n1 / n1 * n2
Hull_retracted = if n1 > n2
Hull_retracted = Hull_Line - 2
else
Hull_retracted = Hull_Line + 2
c1 = Hull_retracted + n1 - price
c2 = Hull_retracted - n2 + price
c4 = n1 > n2 ? color.green : color.red
c2p = plot(c2, color=color.black, linewidth=1)
c3p = plot(price, color=color.black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
//plot(cross(c1, c2) ? c1 : na, style=plot.style_circles, color=c4, linewidth=4)
if price < c2
strategy.close("BUY", when=window())
if price > c2
strategy.close("SELL", when=window())
if price > c2 and price[1] > c1
strategy.entry("BUY", strategy.long, when=window())
if price < c1 and price[1] < c2
strategy.entry("SELL", strategy.short, when=window()) // /L'-,
// ,'-. ` ```` / L '-,
// . _,--dMMMM\ ` ` ` '`.. / '-,
// : _,--, )MMMMMMMMM),. ` ,<> /_ '-,'
// ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .'
// | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' /
// | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,'
// | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ /
// | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___
// | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-.
// | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-.,
// | __ \`. | | | \ / _ |. . . . \ `-. F
// | ___ / \ | `| ' __ \ | /-' F . . . . \ '`
// | \ \ \ / | __ / \ | |,-' __,- J . . . . . \
// | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,'
// | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\
// | ___ \ \ | | ` __,--' /;;;;;;;;;;;;.
// | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\
// \ | | / | __,--' `--;;/ \;-'\
// \ | |/ __,--' / / \ \
// \ | __,--' / / \ \
// \|__,--' _,-;M-K, ,;-;\
// <;;;;;;;; '-;;;;
// :D