모멘텀 이동 평균 역전 전략

저자:차오장, 날짜: 2024-02-19 14:59:10
태그:

img

전반적인 설명

이 전략의 핵심 아이디어는 RSI 지표와 이동 평균을 결합하여 주식 가격 반전의 기회를 찾고 낮은 가격으로 구매하고 높은 가격으로 판매하는 것을 달성하는 것입니다. RSI 지표가 주가가 과판되고 단기 이동 평균이 가격 이하로 넘어가 있음을 보여주면 구매 신호로 작용합니다. 스톱 로스를 설정하고 이익을 취한 후 가격이 상향 전환 될 때까지 기다립니다.

전략 원칙

이 전략은 주로 RSI 지표를 사용하여 과판 및 과반 매입 조건을 판단하고, 이동 평균의 황금 십자 및 죽은 십자를 사용하여 가격 추세를 결정합니다. 구체적으로, RSI 지표는 주가가 과판 또는 과반 매입인지 효과적으로 판단 할 수 있습니다. RSI가 30 이하일 때 과판 범위 내에 있습니다. 단기 이동 평균 (이 전략에서 9 일로 설정) 이 가격 아래를 넘으면 가격이 떨어지고 있음을 의미합니다.

따라서 RSI 지표가 40 이하로, 과판 상태에 가까워지고, 9일 이동 평균이 가격 아래로 넘어가면, 그것은 주가가 반전될 수 있는 시점으로 판단될 수 있습니다.

이점 분석

이 전략은 RSI 지표와 이동 평균을 결합하여 구매 시기를 효과적으로 결정할 수 있습니다. 과잉 판매의 단일 판단과 비교하면 이동 평균의 추가 조건 판단은 과잉 판매 영역의 변동을 피합니다. 스톱 손실 및 수익을 취하는 설정은 유연하며 개인마다 다를 수 있습니다.

위험 분석

이 전략은 RSI 판단 문턱, 이동 평균 시간 창 등과 같은 매개 변수 설정에 의존합니다. 다른 매개 변수는 다른 결과를 초래할 수 있습니다. 그리고 특정 시장 조건 하에서는 여전히 중지 손실이 가능합니다.

또한 거래 수수료는 또한 수익에 어느 정도 영향을 미칩니다. 최적화를 위해 거래량 또는 기금 관리 모듈을 나중에 통합하는 것을 고려할 가치가 있습니다.

최적화 방향

이동 평균 매개 변수를 동적으로 조정하거나 다른 사이클에 다른 매개 변수를 선택하거나 여러 조건에 기반한 포괄적 인 판단을 형성하기 위해 KDJ, MACD 등과 같은 다른 평가 지표를 도입하는 것을 고려하십시오.

또한 거래량 또는 자본 관리 모듈을 설치하여 단일 거래에 사용된 자금의 비율을 제어하고 단일 손실의 영향을 줄일 수 있습니다.

요약

일반적으로 이 전략은 구매 시기를 결정하기 위해 RSI 지표와 이동평균을 사용하며 가격 반전을 효과적으로 결정할 수 있다. 오버셀드 구매 및 스톱 로스와 영업 취득으로 수익을 잠금하는 것은 좋은 결과를 가져올 수 있다. 미래의 최적화를 위해 더 많은 지표를 통합하거나 추가 거래/펀드 관리 모듈을 추가하여 전략을 더욱 견고하게 하는 것을 고려할 가치가 있다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=4
strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
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

//MA inputs and calculations
inshort=input(9, title='MA short period')
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)

//Entry 
strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window())

//Exit
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01
longTakePerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01
longSL  = strategy.position_avg_price * (1 - longLossPerc)
longTP  = strategy.position_avg_price * (1 + longTakePerc)
if (strategy.position_size > 0 and window())
    strategy.exit(id="TP/SL", stop=longSL, limit=longTP)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90)  
plot(MAshort, color=color.purple, linewidth=4)



더 많은