과잉 판매된 RSI 브레이크업 전략

저자:차오장, 날짜: 2023-09-26 16:11:55
태그:

전반적인 설명

이 전략은 RSI 지표를 사용하여 암호화폐가 과판되어 있는지 여부를 결정하고, RSI가 30 이하인 경우 구매합니다. 이는 과판된 것으로 간주됩니다. 그 다음 스톱 로스를 설정하고 수익을 취합니다. 스톱 로스 가격이 타격되면 포지션을 종료합니다. 이윤을 취하는 가격에 도달하면 수익을 위해 포지션을 닫습니다.

어떻게 작동 합니까?

  1. 이 전략은 입시 신호를 식별하기 위해 RSI 지표를 사용합니다. RSI는 자산이 과소매 또는 과소매인지 결정하기 위해 가격 변화의 속도와 크기를 측정합니다. RSI는 0에서 100까지 다양하며, 70 이상은 과소매로 간주되며 30 이하는 과소매로 간주됩니다.

  2. RSI가 30 이하로 떨어지면 전략은 트렌드 반전에 베팅하여 긴 지위에 진입합니다.

  3. 포지션 개척 후, 스톱 로즈와 트레이프 이윤이 설정됩니다. 스톱 로즈는 엔트리 가격보다 1% 낮게 설정됩니다. 트레이프 이윤은 엔트리 가격보다 7% 높게 설정됩니다.

  4. 만약 가격이 스톱 로스 이하로 떨어지면 포지션은 종료됩니다. 만약 가격이 영업 영업 영업 영업 영업 영업 영업 영업 영업 영업 영업 영업

이점 분석

  1. RSI를 사용하여 과잉 판매 상황을 식별하면 상대적 최저 수준에서 좋은 입구 지점을 제공합니다.

  2. 튼튼한 스톱 손실은 거래 기준으로 위험을 조절합니다.

  3. 이윤은 큰 상승세로 인한 이익에 고정됩니다.

  4. 이 전략은 강력한 유출 통제와 전반적으로 낮은 위험을 가지고 있습니다.

위험 분석

  1. RSI 과잉 판매 신호는 항상 반전으로 이어지는 것은 아니며, 가격이 계속 떨어질 수 있어 스톱 로스로 이어질 수 있습니다.

  2. 스톱 로즈는 너무 좁아서 드라우다운이 큰 경우 조기 스톱이 발생할 수 있습니다.

  3. 이윤은 너무 넓어서 이윤을 일찍 폐쇄하고 승자가 달릴 수 없습니다.

  4. 이 전략은 부진한 시장에서 큰 손실을 입을 수 있습니다.

최적화

  1. RSI를 KDJ 같은 다른 지표와 결합하면 신호 정확도를 향상시키고 잘못된 신호를 피할 수 있습니다.

  2. 다른 코인의 변동성을 기반으로 손해를 멈추고 수익을 차지하는 비율을 최적화합니다

  3. 최적의 조합을 찾기 위해 다른 시간 프레임 매개 변수를 테스트합니다.

  4. 백테스트 결과를 기반으로 위치 크기를 최적화합니다.

결론

전체적으로 이것은 상당히 견고한 과잉 판매 브레이크아웃 전략이다. RSI 신호가 과잉 판매 된 후 포지션을 취하는 것은 상대적으로 낮은 가격에 좋은 입구 지점을 제공합니다. 스톱 손실 및 수익 메커니즘은 위험을 제어하고 이익을 잠금하는 데 도움이됩니다. 인하가 관리 가능하여 장기 보유에 적합합니다. 개선 된 성과를 위해 변화하는 시장 조건에 따라 매개 변수를 최적화 할 수 있습니다.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
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/
// © brodieCoinrule

//@version=4
strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, 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"

perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100



// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
oversold= input(30)


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

//Exit
Stop_loss= ((input (1))/100)
Take_profit= ((input (7)/100))

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())



더 많은