
이 전략의 핵심 아이디어는 RSI 지표와 이동 평균을 결합하여 주식 가격 반전의 기회를 찾고, 낮은 가격으로 낮은 가격으로 판매하는 것입니다. RSI 지표가 주식을 과매매하고, 단기 이동 평균 이하의 가격을 통과 할 때, 구매 신호로; 중지 및 중지 후, 가격이 반전 될 때까지 기다립니다.
이 전략은 주로 RSI 지표를 사용하여 과매매 과매매를 판단하고, 이동 평균의 황금 사각지대를 판단하는 가격 트렌드를 판단한다. 구체적으로, RSI 지표는 주식이 과매매되거나 과매매되는지 여부를 효과적으로 판단한다. RSI가 30보다 낮으면 과매 범위에 속한다. 그리고 단기 이동 평균 (이 전략에서 9 일선으로 설정) 이 가격을 통과하면 가격이 떨어지고 있음을 나타냅니다.
따라서, RSI 지표가 40보다 낮거나 과매매 상태에 가깝고, 9일 이동 평균선 아래로 가격을 통과할 때, 주식 가격이 반전될 가능성이 있는 시점으로 판단할 수 있으며, 더 많은 구매를 할 수 있다. 그 다음에는 스톱 손실과 스톱 철수를 설정하고, 주식 가격이 반전 후 상향 상향을 설정한 후 자금 조달을 통해 이익을 얻을 수 있다.
이 전략은 RSI 지표와 이동 평균을 결합하여 구매 시기를 효과적으로 판단할 수 있다. 단일 판단 과매매에 비해 이동 평균의 조건 결정이 증가하여 과매매 지역 변동을 피한다.
이 전략은 RSI judgment threshold, 이동 평균 시간 창 등과 같은 변수 설정에 의존합니다. 다른 변수는 다른 결과를 가져올 수 있습니다. 특정 시장 상황에서는 여전히 중단이 발생할 수 있습니다.
또한 거래비용은 수익에 영향을 미칩니다. 나중에 거래량이나 자금 관리 모듈을 추가하여 최적화를 고려할 수 있습니다.
이동 평균 변수를 동적으로 조정하여 다른 주기에서 다른 변수를 선택할 수 있습니다. 또는 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)