RSI 이중 경로 돌파구 전략

저자:차오장, 날짜: 2024-01-08 10:28:26
태그:

img

전반적인 설명

이 전략은 RSI 듀얼 트랙 돌파구 전략 (RSI Dual-track Breakthrough Strategy) 이라고 불린다. 이 전략은 RSI 지표의 두 개의 트랙을 판단에 활용하여 낮은 가격에 구매하고 높은 가격에 판매하는 목표를 달성한다. RSI 지표가 설정된 하위 트랙 (40 기본값) 아래로 떨어지면 구매 신호로 간주된다. 이 시점에서, RSI10가 RSI14보다 작으면 구매를 추가로 확인한다; RSI 지표가 설정된 상위 트랙 (설정값 70) 이상으로 상승하면 판매 신호로 간주된다. 이 시점에서, RSI10가 RSI14보다 크면 판매를 추가로 확인한다. 이 전략은 또한 손실을 멈추고 이익을 취하는 메커니즘을 설정한다.

전략 원칙

이 전략의 핵심 논리는 판단을 위해 RSI 지표의 이중 트랙을 사용하는 것입니다. RSI 지표는 일반적으로 14 기간으로 설정되어 최근 14 일 동안 주식의 강도와 약도를 나타냅니다. 이 전략은 RSI10을 보조 판단 지표로 추가합니다.

RSI14가 40 트랙 아래로 넘어가면 주가가 약한 측면을 뚫고 넘어갔고 지지부진이 발생할 수 있다고 생각됩니다. 이 시점에서 RSI10가 RSI14보다 낮다면 단기 트렌드가 여전히 하향적이라는 것을 의미합니다. 이는 판매 신호를 추가로 확인할 수 있습니다. 따라서 RSI14 <= 40과 RSI10 가 충족되면 구매 신호가 생성됩니다.

RSI14가 70 트랙을 넘을 때 주가가 단기적인 강한 영역에 진입했으며 후퇴 조정의 기회가있을 수 있다고 믿어집니다. 이 시점에서 RSI10가 RSI14보다 크다면 단기 트렌드가 상승세를 계속한다는 것을 의미합니다. 이는 구매 신호를 추가로 확인할 수 있습니다. 따라서 RSI14 >= 70 및 RSI10> RSI14가 충족되면 판매 신호가 생성됩니다.

따라서 RSI14와 RSI10의 결합 판단은 이중 전략의 핵심 논리를 구성합니다.

전략 의 장점

  1. 이중 RSI 지표의 조합 판단은 거래 신호를 더 정확하게 포착 할 수 있습니다.
  2. 이동 스톱 손실 메커니즘을 채택하면 적시에 손실을 줄이고 최대 마감량을 제어 할 수 있습니다.
  3. 이윤 출구 메커니즘을 설정하면 목표 이익에 도달 할 때 출퇴 할 수 있으며 이윤을 추구하는 재구성을 피합니다.

전략 의 위험

  1. RSI 지표는 잘못된 신호를 생성 할 가능성이 있으며 손실은 완전히 피할 수 없습니다.
  2. 스톱 로스 포인트가 너무 가까이 설정되면 곧 꺼낼 수 있습니다. 너무 커 설정되면 위험을 통제하기가 어렵습니다.
  3. 격차와 같은 비정상적인 시장 조건에서는 손실을 초래할 수도 있습니다.

이 전략을 완전히 활용하기 위해서는 RSI 매개 변수를 적절히 조정하고, 스톱 로스 포지션을 엄격하게 통제하고, 과도한 빈도 거래를 피하고, 안정적인 수익을 추구해야합니다.

전략 최적화의 방향

  1. KDJ, MACD 등과 같은 조합 검증을 위한 다른 지표를 포함하는 것을 고려하십시오.
  2. 다른 제품의 특성에 따라 각각 RSI 매개 변수를 설정
  3. ATR와 같은 지표에 기반한 동적 중지 손실을 설정 중지 위치를 적시에 조정
  4. 기계 학습 기술을 통해 자동으로 RSI 매개 변수를 최적화

요약

이 전략은 RSI의 이중 트랙 아이디어를 기반으로 판단을 내리고 어느 정도 소란 신호를 필터합니다. 그러나 단일 지표 전략은 완벽할 수 없으며, RSI 지표는 오해의 소지가 있으며 조심스럽게 봐야 합니다. 이 전략은 위험을 제어하기 위해 이동 스톱 손실 및 수익 메커니즘을 통합합니다. 이는 필수적입니다. 전략 매개 변수 및 스톱 손실 방법을 더 지능적이고 역동적으로 만들기 위해 미래의 최적화가 계속 될 수 있습니다.


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 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/
// © DojiEmoji

//@version=4
strategy("[KL] RSI 14 + 10 Strategy",overlay=true)

backtest_timeframe_start = input(defval = timestamp("01 Jan 2015 13:30 +0000"), title = "Backtest Start Time", type = input.time)
//backtest_timeframe_end = input(defval = timestamp("19 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time)
TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met")
REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit")
// Trailing stop loss {
TSL_ON = input(true,title="Use trailing stop loss")
var entry_price = float(0)
ATR_multi_len = 26
ATR_multi = input(2, "ATR multiplier for stop loss")
ATR_buffer = atr(ATR_multi_len) * ATR_multi
plotchar(ATR_buffer, "ATR Buffer", "", location = location.top)
risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO
take_profit_long = low > entry_price + risk_reward_buffer
take_profit_short = low < entry_price - risk_reward_buffer
var bar_count = 0 //number of bars since entry 
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer)
// plot TSL line
trail_profit_line_color = color.green
showLine = strategy.position_size == 0
if showLine
    trail_profit_line_color := color.black
    stop_loss_price := close - trailing_SL_buffer
plot(stop_loss_price,color=trail_profit_line_color)
// }
// RSI
RSI_LOW = input(40,title="RSI entry")
RSI_HIGH = input(70,title="RSI exit")
rsi14 = rsi(close, 14)
rsi10 = rsi(close, 10)

if true// and time <= backtest_timeframe_end
    buy_condition = rsi14 <= RSI_LOW and rsi10 < rsi14
    exit_condition = rsi14 >= RSI_HIGH and rsi10 > rsi14
    //ENTRY:
    if strategy.position_size == 0 and buy_condition
        entry_price := close
        trailing_SL_buffer := ATR_buffer
        stop_loss_price := close - ATR_buffer
        strategy.entry("Long",strategy.long, comment="buy")
        bar_count := 0
    else if strategy.position_size > 0
        bar_count := bar_count + 1

    //EXIT: 
    // Case (A) hits trailing stop
    if TSL_ON and strategy.position_size > 0 and close <= stop_loss_price
        if close > entry_price
            strategy.close("Long", comment="take profit [trailing]")
            stop_loss_price := 0
        else if close <= entry_price and bar_count
            strategy.close("Long", comment="stop loss")
            stop_loss_price := 0
        bar_count := 0
    // Case (B) take targeted profit relative to risk 
    if strategy.position_size > 0 and TARGET_PROFIT_MODE
        if take_profit_long
            strategy.close("Long", comment="take profits [risk:reward]")
            stop_loss_price := 0
        bar_count := 0
    // Case (C)
    if strategy.position_size > 0 and exit_condition
        if take_profit_long
            strategy.close("Long", comment="exit[rsi]")
            stop_loss_price := 0
        bar_count := 0


더 많은