この記事では,主に"ベイジアンスコンディション RSI トレーディング戦略"と呼ばれる定量的な取引戦略を分析しています.この戦略は,RSI インディケーターの確率分布を計算し,RSI インディケーターが上昇または下落し続ける確率を推測するためにベイジアンスルールを適用し,将来の価格動向を判断し,利益を得ることができます.
この戦略の基本的な論理は
具体的には,戦略はまず,パラメータpをRSI指標の計算のためのサイクルのパラメータ,そしてrを将来の価格変化を予測するための時間帯として定義する.その後,pサイクルの内では,確率分布Aを計算するために閉じる価格が上昇する回数を数える.同時に,pサイクルの内では,このサイクルの終了後,RSIがrサイクルの内での上昇を継続する回数を数えて,確率分布Bを計算する.
その後,最後の確率判断指標として,閉じる価格上昇とRSIの上昇を続ける2つの条件が同時に満たされる確率を計算するために,ベイジアン式を適用します.この確率が与えられた
このようにして,戦略は価格情報と技術指標を包括的に考慮し,確率統計とベイジアン規則を適用して将来の傾向を判断し,取引信号を生成します.
この戦略の主な利点は以下の通りです.
複数の情報を組み合わせる: 戦略は,価格情報だけでなく,RSIなどの技術指標情報も考慮し,将来の傾向を包括的に判断し,判断の正確性を向上させます.
確率予測: 単純な数値比較ではなく,統計的確率分布によって価格の方向とRSIの変化に関する確率予測を行い,判断をより科学的にします.
ベイジアン最適化: 関連確率を計算し,判断をより正確にするために元の統計確率を最適化するためにベイジアン規則を使用します.
柔軟なパラメータ: 異なる市場や資産に合わせて調整と最適化のための複数のパラメータを提供し,戦略の適応性を向上させる.
シンプルで効果的: 戦略のアイデアは明確で,単純な統計と確率操作を使用して取引信号判断を生成し,理解し最適化しやすく,効果は重要です.
この戦略の主なリスクには,以下も含まれます.
パラメータ依存: 性能はパラメータ設定に大きく依存する. 異なる市場は,最適な結果を達成するために多くのパラメータを調整する必要があります. 戦略操作の複雑さが増加します.
確率の誤り: 統計時間とサンプルが限られているため,計算された確率が実際の傾向と一致しない可能性があり,判断偏差を引き起こす可能性があります.
特別イベント: 重大な緊急事態は,市場価格とRSI指標の相関に影響を与え,戦略の失敗を引き起こす可能性があります.
テクニカル・インジケーターの障害: 市場状況によっては,RSIのような技術指標は,戦略判断の失敗につながる無効な信号を生む可能性があります.
解決策には,パラメータ設定プロセスを最適化し,統計時間とサンプルサイズを調整し,より多くの補助情報を組み合わせ,異常な状況での手動介入などが含まれます.
この戦略の主な最適化方向は以下の通りである.
複数の時間枠: 安定性を向上させるための統合判断のための複数の時間枠 (毎日,週,など) を超える戦略を実行する.
さらに多くの指標: 判断の基盤を豊かにするために,キャンドルスタイクパターン,移動平均等のようなより多くの技術指標信号を追加します.
モデル最適化: より正確な計算のためにベイジアンモデルを最適化するために機械学習などを使用します.
ダイナミックパラメータ: パラメータのダイナミック最適化モジュールを追加し,市場の変化にリアルタイムで調整します.
リスク管理メカニズム: リスク指標を設定します 最大引き上げと取引頻度 極端な市場での大きな損失を防ぐためです
改善を組み込む投票メカニズムを形成し,安定性を向上させるため,他の戦略タイプやモデルと連携する.
この戦略は,まず統計的に価格と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)