ベイズ条件判断を用いたRSI取引戦略


作成日: 2023-12-18 17:09:00 最終変更日: 2023-12-18 17:09:00
コピー: 0 クリック数: 857
1
フォロー
1621
フォロワー

ベイズ条件判断を用いたRSI取引戦略

概要

本記事では,ベイエス条件判断と呼ばれるRSI取引戦略を主に分析する.この戦略は,RSI指標の確率分布を計算し,ベイエス法を適用して,RSI指標が今後上昇または下落する確率を推論し,将来の価格傾向を判断し,利益を上げることを目的としている.

戦略原則

この戦略の核心的な論理は:

  1. 決算価格が一定の周期で上昇するかどうかを計算する確率分布A
  2. RSIが相応の周期で上昇し続けるかどうか Bの確率分布を計算する
  3. ベイズの法則を使って,AとBが同時に起こる確率を計算する.
  4. 値下がりよりも高い確率で,トレンドが続くと判断し,取引シグナルを取ります.

具体的には,策略は,pをRSI指標を計算する周期パラメータと定義し,rを将来の価格変化を予測する時間範囲と定義する.そして,pの周期で,統計的終止価格が上昇したかどうかを計算し,確率分布Aを計算する.また,pの周期で,rの周期で,RSIが上昇し続けていたかどうかを計算し,確率分布Bを計算する.

その後,ベイエスの法則の公式を適用し,終盤の値上がりとRSIが上昇し続ける2つの条件を同時に満たす確率を計算し,最終的な確率判断指標として使用する. この確率が与えられた値より高い場合,傾向が上昇し続けると判断し,多取引を行う. 値より低い場合,傾向が逆転して平仓を取る.

このように,戦略総合は,価格情報と技術指標情報,確率統計とベイエスの法則を考慮し,将来の傾向を判断し,取引信号の生成を実現する.

戦略的優位性

この戦略の利点は以下の通りです.

  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)