TAM 내일 RSI 거래 전략

저자:차오장, 날짜: 2023-10-17 16:58:46
태그:

img

전반적인 설명

TAM 내일 RSI 거래 전략은 내일 입출 신호를 생성하기 위해 서로 다른 기간에 걸쳐 RSI 지표의 교차를 활용합니다. 이 전략은 RSI 지표에 의해 밝혀진 과잉 구매 및 과잉 판매 조건을 효과적으로 활용하여 시장이 반전 징후를 나타내면 역동 트렌드 거래를 통해 황소 및 곰 환경 모두에서 잘 수행합니다.

전략 논리

이 전략은 구매 및 판매 신호를 생성하기 위해 두 개의 RSI 지표를 사용합니다. 구매 신호는 짧은 기간 2 일 RSI와 중간 기간 14 일 RSI를 사용하여 짧은 기간 또는 중간 RSI가 50 이 넘을 때 구매를 유발합니다. 판매 신호는 짧은 기간 7 일 RSI와 중간 기간 50 일 RSI를 사용하여 짧은 기간 또는 중간 RSI가 50 이 넘을 때 판매를 유발합니다.

이 전략은 또한 RSI가 50의 임계점을 넘어서는 것이 아니라 실제로 50의 임계점을 넘어서는 것을 요구합니다. 이는 많은 잘못된 신호를 필터링하는 데 도움이됩니다. 구체적으로 구매는 다음 조건을 충족해야합니다.

  • 2일 RSI가 50 이상
  • 2일 RSI는 50보다 높습니다.
  • 14일 RSI가 50 이상
  • 14일 RSI는 50보다 높습니다.

판매 조건은 비슷합니다.

  • 7일 RSI가 50 이하로 넘는다
  • 7일 RSI는 50보다 작습니다.
  • 50일 RSI가 50보다 낮습니다.
  • 50일 RSI는 50보다 작습니다.

이러한 다층 필터링은 RSI가 명확한 과반 구매/ 과반 판매 지표를 표시할 때만 신호가 발생하고 소규모 변동으로 인해 오해되지 않도록 보장합니다.

이점 분석

TAM 내일 RSI 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 듀얼 RSI를 활용하면 멀티 타임프레임 분석이 가능하며 시장 소음을 효과적으로 필터링하고 중요한 트렌드 역전 지점에서만 입력합니다.

  2. 실제 RSI 값이 핵심 임계값을 넘을 때 잘못된 파업 신호를 피할 수 있습니다.

  3. 진입과 출구에 대한 다른 매개 변수들의 RSI를 채택하면 역전 시기를 더 정확하게 파악할 수 있습니다.

  4. RSI는 내일 거래 창문 내에서 비교적 안정적인 성과를 보이고 있으며, 내일 전략에 적합합니다.

  5. 사용자 정의 가능한 매개 변수는 다른 시장에 대한 RSI 입력값을 조정하고 더 나은 결과를 얻을 수 있습니다.

  6. 단순하고 명확한 논리는 알고 트레이딩을 이해하기 쉽고 구현하기 쉽습니다.

위험 분석

이 전략에는 몇 가지 위험이 있습니다.

  1. 일내 거래는 하루 간 간격 위험을 가지고 있습니다. 이는 스톱 로스 설정을 건너갈 수 있습니다.

  2. RSI의 오차는 자주 발생하며 다른 지표와 검증되어야 합니다.

  3. 내일 기간의 높은 변동성은 스톱 로스가 넓지만 너무 넓지 않아야 한다는 것을 의미합니다.

  4. 매개 변수 최적화는 과도한 적합성을 초래하고 다양한 시장에서 테스트를 필요로합니다.

  5. 백테스팅 제한은 실제 거래를 완전히 반영할 수 없으며 라이브 공연을 위해 조정이 필요합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. KDJ, MACD 등과 같은 다른 지표로 확인을 추가합니다.

  2. 부피 필터를 적용하면 부피가 증가하는 신호만 고려할 수 있습니다.

  3. 더 짧은 일내 주기에 매개 변수를 최적화합니다.

  4. 기계 학습 모델로 최적의 매개 변수를 알고리즘적으로 찾는 데 도움을 줍니다.

  5. 예술적 터치로 주요 S/R 레벨과 기술 분석의 차트 패턴을 결합했습니다.

  6. 동적 ATR, 변동성 기반 방법으로 스톱 로스를 개선합니다.

결론

전반적으로 TAM 내일 RSI 전략은 매우 실용적인 양성 전략이다. 그것은 멀티 타임프레임 RSI 평가를 사용하여 과반 구매 및 과반 판매 조건을 효과적으로 평가하고 잘못된 신호를 필터링하기 위해 엄격한 입출입 규칙과 결합하면 견고한 신호를 생성합니다. 적절한 최적화 및 위험 관리로 전략은 안정적인 거래 신호를 생산하고 좋은 결과를 얻을 수 있습니다. 명확하고 직설적인 논리는 알고 트레이더에 대한 구현 및 테스트를 용이하게합니다.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
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/
// © DvKel

//@version=5
strategy("TAM - RSI Strategy", overlay = true)

// Input parameters
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",  group="Backtest Time Period")
startDate = input(timestamp("2020-01-01"), title = "Start date", group = "Backtest Time Period")
buyRsiLength1 = input(2, title = "RSI Buy Length 1 (default 2)", group="Buy configuration")
buyRsiLength2 = input(14, title = "RSI Buy Length 2 (default 14)", group="Buy configuration")
buyRsiValue = input(50, title = "RSI Buy Value Signal (default 50)", group="Buy configuration")
closeRsiLength1 = input(7, title = "RSI Close Length 1 (default 7)", group="Close configuration")
closeRsiLength2 = input(50, title = "RSI Close Length 2 (default 50)", group="Close configuration")
closeRsiValue = input(50, title = "RSI Close Value Signal (default 50)", group="Close configuration")

// Check timeframe
inTradeWindow = true

// Calculate RSI
rsiBuy1Value =  ta.rsi(close, buyRsiLength1)
rsiBuy2Value = ta.rsi(close, buyRsiLength2)
rsiClose1Value =  ta.rsi(close, closeRsiLength1)
rsiClose2Value = ta.rsi(close, closeRsiLength2)

// Strategy conditions
//(ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and 
//8ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and
buyCondition = (ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and rsiBuy1Value > buyRsiValue and rsiBuy2Value > buyRsiValue
closeCondition = (ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and rsiClose1Value < closeRsiValue and rsiClose2Value < closeRsiValue


// Strategy actions
if (inTradeWindow  and buyCondition) 
    strategy.entry("Buy", strategy.long)


if (inTradeWindow and closeCondition) 
    strategy.close("Buy")

// Plot RSI and overbought/oversold levels
plotchar(rsiBuy1Value, title = "RSI-Buy1", color = color.green)
plotchar(rsiBuy2Value, title = "RSI-Buy2", color = color.lime)
plotchar(rsiClose1Value, title = "RSI-Close1", color = color.red)
plotchar(rsiClose2Value, title = "RSI-Close2", color = color.fuchsia)




더 많은