바텀 커버링 전략


생성 날짜: 2024-01-18 15:44:10 마지막으로 수정됨: 2024-01-18 15:44:10
복사: 0 클릭수: 629
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

바텀 커버링 전략

개요

하위회복 전략은 전형적인 낮은 가격으로 높은 가격으로 판매하는 전략이다. 그것은 RSI 지표를 사용하여 과매매 지점을 식별하고, 가격이 어느 정도 떨어지면 구매 신호를 발산하여 낮은 가격으로 토큰을 축적합니다. 가격이 다시 상승하면 RSI의 퇴출 하락값을 설정하여 수익을 창출합니다. 이 전략은 중장선 보유에 적용되며, 코스 위기 상황에서 가짜 돌파구를 효과적으로 필터링하여 코스 보유 비용을 최적화합니다.

전략 원칙

이 전략은 RSI 지표에 기반하여 오버셀 포인트를 식별합니다. RSI 지표의 정상적인 범위는 0에서 100 사이입니다. RSI 지표가 설정된 입구 지점 35 이하로 떨어지면 구매 신호를 발송합니다. RSI 지표가 설정된 출구 지점 65 이상으로 다시 상승하면 판매 신호를 발송합니다.

또한, 전략에는 100주기의 간단한 이동 평균이 도입되어 RSI 지표와 결합되어 가격이 이동 평균 아래로 떨어질 때만 구매 신호를 유발하며 RSI가 초과 지역으로 들어갑니다. 이것은 일부 가짜 돌파구를 효과적으로 필터링하여 불필요한 거래를 줄일 수 있습니다.

전략적 이점

  • RSI를 사용하여 오버셀 오버 바이 포인트를 효과적으로 식별하고, 역전 시점에 진입하여 더 나은 구매 비용을 얻을 수 있습니다.
  • 이동 평균과 함께 잘못된 신호를 필터링하여 추격을 피합니다.
  • 중장기 보유에 적합하여 잠재적인 상승 추세를 활용할 수 있습니다.

전략적 위험과 해결책

  • 이 모든 것은, 우리가 지금 하고 있는 일들에 대해 이야기 할 때, 우리가 지금 하고 있는 일들에 대해 이야기할 때,
    • RSI 계산주기를 적절히 단축하여 지표 반응을 가속화하십시오.
  • 위기 상황에서는 평형 손실이 발생할 수 있다.
    • 이동 평균의 주기를 조정하거나 이동 평균을 취소합니다
    • RSI 입출력 파라미터를 적절히 느슨하게

전략 최적화 방향

  • 다른 통화와 시간 주기의 파라미터 최적화를 테스트합니다.
  • 다른 지표들, 예를 들어 MACD, 브린 밴드 등과 함께
  • 동적으로 조정 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)