매입 다이프 - MA200 최적화된 전략

저자:차오장, 날짜: 2024-01-08 16:54:21
태그:

img

전반적인 설명

이 전략은 트렌드를 따르는 논리와 (값이 MA200보다 높을 때만) 반대적인 접근 (하락을 구매) 을 결합합니다. 이 전략은 수익성이 가장 높은 하락을 구매하는 가장 좋은 시기를 찾는 것을 목표로합니다. 장기 이동 평균 이상의 가격은 단기 약점 중 자산 구매에서 이익을 얻는 가능성을 증가시키는 추진력을 나타냅니다.

전략 원칙

이 전략은 룩백 기간 동안 가격의 전체 비율 변화를 계산하여 가격이 상대적 인 하락에 있는지 여부를 결정합니다. 전체 변화 비율이 -3% 미만일 때 가격은 하락으로 간주됩니다. 또한 전략은 트렌드를 판단하는 지표로 200 일 간 간단한 이동 평균을 설정합니다. 가격이 200 일 이동 평균 이상일 때만 구매 신호가 발생합니다. 평균 반전 원칙과 긴 짧은 커플링을 모두 활용하여 전략은 수익을 창출하기 위해 상승 추세 동안 하락을 구입합니다.

이점 분석

이 전략은 트렌드 트레이딩과 반대 트레이딩의 장점을 결합한다. 한편으로는, 트렌드를 결정하기 위해 장기 이동 평균을 사용하는 것은 하락 추세 동안 맹목적으로 구매하는 것을 피한다. 다른 한편으로, 구매 다이프는 단기 수정 중에 더 나은 진입 기회를 제공한다. 이 조합은 거래 보안과 높은 수익 확률을 모두 보장한다. 게다가, 전략은 다른 시장에 맞게 조정할 수 있는 매개 변수에 대한 큰 최적화 공간을 가지고 있으며, 강력한 적응력을 제공한다.

위험 분석

가장 큰 위험은 구매 신호가 발생 한 후 가격이 계속 하락하여 손실이 커질 수 있다는 것입니다. 또한 시장이 오랫동안 범위 내에서 유지되고 가격이 이동 평균을 넘지 못하면 전략도 실패 할 것입니다. 이러한 위험을 완화하기 위해 이동 평균 기간을 그에 따라 단축하고 충분한 안전 지분을 보장하기 위해 구매 기준을 최적화 할 수 있습니다.

최적화 방향

전략은 여러 측면에서 최적화 될 수 있습니다. 1) 이동 평균 기간을 최적화하여 다른 시장에 적응합니다. 2) 충분한 마진을 보장하기 위해 구매 기준을 최적화합니다. 3) 손실을 제어하기 위해 스톱 로스를 추가합니다. 4) 다른 지표를 결합하여 추세와 다이프를 판단하여 정확성을 향상시킵니다.

요약

일반적으로, 이것은 트렌드를 따르는 것과 반대적인 거래 아이디어를 결합하는 전형적인 전략이다. 강력한 실용적 가치와 함께 거래 보안과 높은 승률을 보장합니다. 매개 변수 최적화 및 스톱 로스 최적화로 안정성 및 실제 거래 효과에 대한 추가 향상도 달성 할 수 있습니다.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Buy The Dips - MA200 Optimised", overlay=false)

//Moving average
MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1)
MA=sma(close, MAinp)

//Percent change
inp_lkb = input(1, title='Lookback Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//Entry/Exit
strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA) 
strategy.close(id="long", when = window() and overall>1)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90) 
plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3)
band1 = hline(1, "Upper Band", color=#C0C0C0)
band0 = hline(-2, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)

더 많은