바이에스 조건 RSI 거래 전략

저자:차오장, 날짜: 2023-12-18 17:09:00
태그:

img

전반적인 설명

이 문서에서는 주로 베이시안 조건 RSI 거래 전략이라는 양적 거래 전략을 분석합니다. 이 전략은 RSI 지표의 확률 분포를 계산하고 RSI 지표가 계속 상승하거나 하락할 확률을 추론하여 미래의 가격 추세를 판단하고 이익을 창출하기 위해 베이시안 규칙을 적용합니다.

전략 원칙

이 전략의 핵심 논리는 다음과 같습니다.

  1. 닫기 가격이 특정 주기에 상승했는지 여부에 대한 확률 분포 A를 계산합니다.
  2. RSI 지표가 해당 주기에 계속 상승하는지 여부에 대한 확률 분포 B를 계산합니다.
  3. A와 B가 동시에 발생하는 확률을 계산하기 위해 베이지안 법칙을 적용합니다.
  4. 이 확률이 임계보다 높을 때, 추세가 계속 될 것이라고 판단하고 거래 신호를

구체적으로, 전략은 먼저 매개 변수 p를 RSI 지표를 계산하기 위한 사이클 매개 변수, 그리고 r를 미래의 가격 변화를 예측하기 위한 시간 범위로 정의한다. 그 다음 p 사이클 내에서, 확률 분포 A를 계산하기 위해 종료 가격이 상승하는 횟수를 계산한다. 동시에, p 사이클 내에서, 이 사이클이 끝난 후 RSI가 r 사이클 내에서 계속 상승하는 횟수를 계산하고, 확률 분포 B를 계산한다.

그 다음, 베이지안 공식을 적용하여 최종 확률 판단 지표로서, 두 가지 조건인 폐기 가격 상승RSI 계속 상승이 동시에 충족되는 확률을 계산합니다. 이 확률이 주어진 임계치보다 높을 때 상승 추세가 계속될 것이라고 판단하고 긴 포지션을 취합니다. 확률이 임계치보다 낮을 때 트렌드가 역전되고 포지션을 닫을 것이라고 판단합니다.

이러한 방식으로 전략은 가격 정보와 기술 지표를 종합적으로 고려하고 확률 통계와 베이지안 규칙을 적용하여 미래의 추세를 판단하고 거래 신호를 생성합니다.

전략 의 장점

이 전략의 주요 장점은 다음과 같습니다.

  1. 여러 정보를 결합: 전략은 가격 정보뿐만 아니라 RSI와 같은 기술 지표 정보도 고려하여 미래의 추세를 포괄적으로 판단하고 판단 정확도를 향상시킵니다.

  2. 확률 예측: 단순한 수치 비교 대신 통계적 확률 분포를 통해 가격 방향과 RSI 변화에 대한 확률 예측을 수행하여 판단을 더 과학적으로 만듭니다.

  3. 베이지안 최적화: 관련 확률을 계산하고 판단을 더 정확하게 하기 위해 원래 통계적 확률을 최적화하기 위해 베이지안 규칙을 사용한다.

  4. 유연한 매개 변수: 다양한 시장과 자산에 맞게 조정 및 최적화를 위한 여러 매개 변수를 제공하고 전략의 적응력을 향상시킵니다.

  5. 간단하고 효과적: 전략 아이디어는 명확하고 간단한 통계 및 확률 연산이 거래 신호 판단을 생성하는 데 사용됩니다. 이해하기 쉽고 최적화 할 수 있으며 효과는 중요합니다.

전략 의 위험

이 전략의 주요 위험은 또한 다음을 포함합니다.

  1. 매개 변수 의존성: 성능은 매개 변수 설정에 크게 의존합니다. 다양한 시장은 최적의 결과를 얻기 위해 많은 매개 변수를 조정해야하며 전략 운영의 복잡성을 증가시킵니다.

  2. 확률 오류: 제한된 통계 시간 및 표본으로 인해 계산된 확률은 실제 추세와 일치하지 않을 수 있으며 판단 편차가 발생할 수 있습니다.

  3. 특별 행사: 큰 비상 사태는 시장 가격과 RSI 지표 사이의 상관관계에 영향을 미치며 전략 실패를 유발할 수 있습니다.

  4. 기술 표시기 고장: 일부 시장 상황에서는 RSI와 같은 기술적 지표가 유효하지 않은 신호를 생성하여 전략 판단 실패로 이어질 수 있습니다.

해결책은: 매개 변수 설정 프로세스를 최적화하고, 통계 시간 및 표본 크기를 조정하고, 더 많은 보조 정보를 결합하고, 비정상적인 상황에서 수동 개입 등을 포함합니다.

최적화 방향

이 전략의 주요 최적화 방향은 다음과 같습니다.

  1. 여러 시간 프레임: 안정성 향상을 위한 통합 판단을 위한 여러 시간 프레임 (일일, 주간 등) 을 통한 전략 실행.

  2. 더 많은 지표: 촛불 패턴, 이동 평균 등과 같은 더 많은 기술적 지표 신호를 추가하여 판단의 기초를 풍부하게합니다.

  3. 모델 최적화: 기계 학습 등을 사용하여 보다 정확한 계산을 위해 베이지안 모델을 최적화합니다.

  4. 동적 매개 변수: 시장 변화에 따라 실시간으로 조정할 수 있는 매개 변수들을 위한 동적 최적화 모듈을 추가합니다.

  5. 위험 관리 메커니즘: 극심한 시장에서 큰 손실을 방지하기 위해 최대 마감과 거래 빈도와 같은 위험 메트릭을 설정합니다.

  6. 개선을 통합: 다른 전략 유형이나 모델과 함께 투표 메커니즘을 형성하고 안정성을 향상시킵니다.

결론

이 전략은 먼저 통계적으로 가격과 RSI의 확률 분포를 계산하고, 그 다음 바이에스 법칙을 사용하여 결합 확률을 계산하여 확률이 설정된 임계치를 초과하면 거래 신호를 생성하여 수익을 창출합니다. 이 전략은 다중 소스 정보를 결합하고, 확률 예측과 베이세스 최적화를 활용하여 괜찮은 판단 성능을 제공합니다. 주요 최적화 방향에는 시간 프레임 확장, 더 많은 지표, 동적 매개 변수 등을 포함합니다. 결론적으로이 전략은 독특한 아이디어와 탐구 및 적용 가치가있는 주목할만한 효과를 가지고 있습니다.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-03-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Stealthy7 trading scripts are radikal. You have entered the mystical realm of demonic profit.
// If you like this script, check out my bots at cryptotrader.org/?r=51
// Let me know if you find any improvements to this script. It is beta. 
// Please subscribe.
strategy("Stealthy7 Bayes Conditional RSI Trader Strategy", overlay=true)
p = input(title="Period",  defval=30, minval=5, maxval=500)
t = input(title="Movement Thresh", type=float, defval=1.003, minval=1.001, maxval=1.5, step=0.001)
r = input(title="Look Range",  defval=7, minval=1,maxval=500, step=1)
RSIT = input(title="Jump",  defval=8, minval=1,maxval=99, step=1)
BAYEST = input(title="SM",  defval=3, minval=1,maxval=99, step=1)
RSIP = input(title="RSIP",  defval=14, minval=2,maxval=100, step=1)
countup = 1
countdn = 1
countupS = 1
countdnS = 1
for i = p to 1
    if close[i]/close[i + r] > t
        countup := countup + 1
    else
        countdn := countdn + 1
    if close[i]/close[i + r] < 2 - t
        countupS := countupS + 1
    else
        countdnS := countdnS + 1

rsi = rsi(open,RSIP)

countup2 = 1
countup3 = 1
countup2S = 1
countup3S = 1
for i = p to 1
    if close[i]/close[i + r] > t and rsi[i + r + 1] > rsi[i + r + 2] + RSIT
        countup2 := countup2 + 1
    else
        countup3 := countup3 + 1
    if close[i]/close[i + r] < 2 - t and rsi[i + r + 1] < rsi[i + r + 2] - RSIT
        countup2S := countup2S + 1
    else
        countup3S := countup3S + 1

countup2b = countup2 / p
countup3b = countup3 / p
countupb = countup / p
countdnb = countdn / p

countup2bS = countup2S / p
countup3bS = countup3S / p
countupbS = countupS / p
countdnbS = countdnS / p
bayes = 0
bayes := ((countupb * countup2b) / ((countupb * countup2b) + (countdnb * countup3b))) * 100
bayesS = 0
bayesS := ((countupbS * countup2bS) / ((countupbS * countup2bS) + (countdnbS * countup3bS))) * 100
SN1 = sma(bayes,BAYEST)
SN2 = sma(bayesS,BAYEST)
shortCondition = crossunder(bayesS, SN2) //and rsi < 49
longCondition = crossover(bayes, SN1) //and rsi > 59
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

더 많은