
하위회복 전략은 전형적인 낮은 가격으로 높은 가격으로 판매하는 전략이다. 그것은 RSI 지표를 사용하여 과매매 지점을 식별하고, 가격이 어느 정도 떨어지면 구매 신호를 발산하여 낮은 가격으로 토큰을 축적합니다. 가격이 다시 상승하면 RSI의 퇴출 하락값을 설정하여 수익을 창출합니다. 이 전략은 중장선 보유에 적용되며, 코스 위기 상황에서 가짜 돌파구를 효과적으로 필터링하여 코스 보유 비용을 최적화합니다.
이 전략은 RSI 지표에 기반하여 오버셀 포인트를 식별합니다. RSI 지표의 정상적인 범위는 0에서 100 사이입니다. RSI 지표가 설정된 입구 지점 35 이하로 떨어지면 구매 신호를 발송합니다. RSI 지표가 설정된 출구 지점 65 이상으로 다시 상승하면 판매 신호를 발송합니다.
또한, 전략에는 100주기의 간단한 이동 평균이 도입되어 RSI 지표와 결합되어 가격이 이동 평균 아래로 떨어질 때만 구매 신호를 유발하며 RSI가 초과 지역으로 들어갑니다. 이것은 일부 가짜 돌파구를 효과적으로 필터링하여 불필요한 거래를 줄일 수 있습니다.
바닥을 깨고 돌아가는 전략은 전체적으로 안정적이고 실용적인 낮은 가격과 높은 가격의 전략이다. RSI와 이동 평균의 이중 필터링을 통해 잘못된 신호를 효과적으로 억제 할 수 있으며, 최적화된 파라미터를 사용하면 더 낮은 화폐 보유 비용을 얻을 수 있습니다. 동시에, 지표 파라미터를 적절히 최적화하여 포지션 전략을 조정하면 더 높은 자금 사용 효율을 얻을 수 있습니다.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
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='Optimized RSI Strategy',title='Optimized RSI Strategy - Buy The Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)
//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 // create function "within window of time"
// RSI inputs and calculations
lengthRSI = (14)
RSI = rsi(close, lengthRSI)
RSI_entry = input(35, title = 'RSI Entry', minval=1)
RSI_exit = input(65, title = 'RSI Close', minval=1)
//Calculate Moving Averages
movingaverage_signal = sma(close, input(100))
//Entry
strategy.entry(id="long", long = true, when = RSI< RSI_entry and close < movingaverage_signal and window())
//Exit
//RSI
strategy.close("long", when = RSI > RSI_exit and window())
plot (movingaverage_signal)