이동평균 진동 돌파 HODL 전략


생성 날짜: 2023-09-12 16:02:24 마지막으로 수정됨: 2023-09-12 16:02:24
복사: 0 클릭수: 612
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이 전략은 가격과 긴 주기 평균선 (예: 200일선) 과의 관계를 관찰함으로써, 가격이 평균선을 돌파할 때 더 많은 포지션을 만들고, 가격이 평균선을 넘어설 때 평소 포지션을 하는, 긴 선의 흔들림 돌파 운영 전략에 속한다. 이 전략은 장기간 보유를 추구하고 거래 빈도를 줄인다.

전략적 원칙:

  1. 긴 주기 이동 평균을 계산합니다. 전형적인 변수는 200일선입니다.

  2. 매매가 아래에서 이 평균선을 돌파할 때, 구매를 하고 여러 작업을 한다.

  3. 종식 가격이 상단에서 이 평균선 아래로 떨어지면, 매매하는 평형수행한다.

  4. 다중 상태에서는 가격이 평균선에서 떨어질 때까지 계속 유지한다.

이 전략의 장점:

  1. 긴 선 평균 선은 가격 중의 긴 선 트렌드를 효과적으로 식별할 수 있다.

  2. 파격적인 거래 방식은 주가가 반전되는 것을 적시에 잡을 수 있다.

  3. 거래 빈도를 줄이는 것은 거래 비용과 위험을 줄이는 데 도움이 됩니다.

이 전략의 위험은:

  1. 긴 주기 평균 선의 지연 문제는 심각하고, 입학 시점은 좋지 않다.

  2. 파격 이후의 회귀 변동으로 인한 손실을 제한할 수 없습니다.

  3. 작은 진동이 자주 발생하면 작은 손실이 발생할 수 있습니다.

요약하자면, HODL 전략은 장기 주기 평균 선의 흔들림에 의해 보유 시간을 판단하여 거래 빈도를 줄일 수 있습니다. 그러나 기량 최적화 및 중지 손실 설정에서 개선 할 수있는 여지가 있습니다.

전략 소스 코드
/*backtest
start: 2022-09-05 00:00:00
end: 2023-04-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HODLBot", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick=true, overlay=true)
    
//// Time limits 
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2029, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

maPeriod = input(200, "MA Period")
smoothing = input(defval="EMA", options=["EMA", "SMA"])

ma(smoothing, src, length) => 
    if smoothing == "EMA"
        ema(src, length)
    else
        if smoothing == "SMA"
            sma(src, length)
        
//// Main ////

movingAverage = ma(smoothing, close, maPeriod)

plot(movingAverage, color=orange, style = line, linewidth = 4)
 
// very simple, price over MA? Buy and HODL 
if (testPeriod() and close > movingAverage)
    strategy.entry("HODL", strategy.long)

// Price under, close long
if (testPeriod() and close < movingAverage)
    strategy.close("HODL")