베이지안 조건 판단을 이용한 RSI 거래 전략


생성 날짜: 2023-12-18 17:09:00 마지막으로 수정됨: 2023-12-18 17:09:00
복사: 0 클릭수: 857
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

베이지안 조건 판단을 이용한 RSI 거래 전략

개요

이 글은 주로 ‘ 적용 베이츠 조건 판단’이라는 RSI 거래 전략의 정량 거래 전략을 분석한다. 이 전략은 RSI 지표의 확률 분포를 계산하여, 베이츠법을 적용하여 RSI 지표가 계속 상승하거나 하락할 확률을 추론하여 미래의 가격 추세를 판단하여 수익을 창출한다.

전략 원칙

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

  1. 특정 주기의 종결 가격 상승 여부를 계산하는 확률 분포 A
  2. RSI가 계속 상승할 확률 분포 B를 계산합니다.
  3. 베이스 법칙을 적용하여 A와 B가 동시에 일어날 확률을 계산합니다.
  4. 이 확률이 하락보다 높을 때, 추세가 계속될 것이라고 판단하여 거래 신호를 사용합니다.

구체적으로, 전략은 먼저 p를 RSI 지표를 계산하는 주기적 변수로 정의하고, r는 미래의 가격 변화를 예측하는 시간 범위를 정의한다. 그리고 p 주기에, 통계적 종결 가격 상승 여부를 계산하고, 확률 분포를 계산한다. 동시에 p 주기에, 이 주기가 끝난 후 r 주기에, RSI가 계속 상승 여부를 계산하고, 확률 분포를 계산한다.

그 다음, 베이츠 법칙 공식을 적용하여, 매출 종결 시점 가격 상승과 RSI가 계속 상승하는 두 가지 조건을 동시에 만족시키는 확률을 계산합니다. 이는 최종 확률 판단 지표입니다. 이 확률이 주어진 절댓값보다 높을 때, 추세가 계속 상승할 것이라고 판단하여 더 많은 거래를합니다. 확률이 절댓값보다 낮을 때, 추세가 역전되어 평점을 취합니다.

따라서, 전략 종합은 가격 정보와 기술 지표 정보를 고려하고, 확률 통계와 베이이스 법칙을 적용하여 미래의 추세를 판단하여 거래 신호를 생성합니다.

전략적 이점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 다양한 정보를 통합하는 것이 전략은 가격 정보뿐만 아니라 RSI와 같은 기술 지표 정보와 결합하여 미래 추세를 종합적으로 판단하여 판단 정확도를 향상시킵니다.

  2. 확률 예측: 통계적 확률 분포를 통해 가격과 RSI의 변화 방향을 확률적으로 예측하고, 단순한 수치 비교가 아닌 판단을 더 과학적으로 만든다.

  3. 베이스 최적화: 베이즈 법칙을 사용하여 관련 확률을 계산하고, 원시 통계 확률을 최적화하여 판단을 더 정확하게 한다.

  4. 유연한 변수: 다양한 변수를 제공하여 조정 최적화, 다른 시장 및 자산에 대한 변수 적합성을 제공하여 전략 적응성을 향상시킵니다.

  5. 간단하고 효과적입니다.전략적 사고가 명확하고, 간단한 통계 및 확률 연산으로 거래 신호 판단을 구현하고, 이해하기 쉽고 최적화할 수 있으며, 효과가 분명하다.

전략적 위험

이 전략에는 다음과 같은 주요 위험도 있습니다.

  1. 변수 의존: 정책 효과는 파라미터 설정에 의존하며, 다른 시장에서 최적의 효과를 얻기 위해 많은 파라미터를 조정해야 하며, 정책 운영의 난이도를 증가시킨다.

  2. 확률 오류: 통계 시간 및 샘플이 제한되어 있기 때문에 계산된 확률이 실제 추세와 일치하지 않을 수 있으며, 판단이 편향될 수 있다.

  3. 특별 이벤트주요 돌연변이는 시장 가격과 RSI 지표의 연관성에 영향을 미쳐 전략을 무효화 할 수 있습니다.

  4. 기술적인 지표의 무효: 어떤 시장 상황에서는 RSI와 같은 기술 지표가 실패 신호를 만들어서 전략 판단이 실패할 수 있습니다.

위험을 대응하는 해결책은 다음과 같습니다: 매개 변수 설정 프로세스를 최적화, 통계 시간 및 샘플 수를 조정, 더 많은 보조 정보를 결합, 인적 개입 이상 상황 등.

전략 최적화

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

  1. 다중 시간 프레임여러 시간 주기 (태양선, 주경선 등) 에서 전략을 실행할 수 있고, 종합적인 판단을 통해 안정성을 높일 수 있다.

  2. 더 많은 지표: K선 형태, 운동 평균 등과 같은 기술 지표 신호를 더 추가하여 판단 기반을 풍부하게 한다.

  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)