
本記事では,ベイエス条件判断と呼ばれるRSI取引戦略を主に分析する.この戦略は,RSI指標の確率分布を計算し,ベイエス法を適用して,RSI指標が今後上昇または下落する確率を推論し,将来の価格傾向を判断し,利益を上げることを目的としている.
この戦略の核心的な論理は:
具体的には,策略は,pをRSI指標を計算する周期パラメータと定義し,rを将来の価格変化を予測する時間範囲と定義する.そして,pの周期で,統計的終止価格が上昇したかどうかを計算し,確率分布Aを計算する.また,pの周期で,rの周期で,RSIが上昇し続けていたかどうかを計算し,確率分布Bを計算する.
その後,ベイエスの法則の公式を適用し,終盤の値上がりとRSIが上昇し続ける2つの条件を同時に満たす確率を計算し,最終的な確率判断指標として使用する. この確率が与えられた値より高い場合,傾向が上昇し続けると判断し,多取引を行う. 値より低い場合,傾向が逆転して平仓を取る.
このように,戦略総合は,価格情報と技術指標情報,確率統計とベイエスの法則を考慮し,将来の傾向を判断し,取引信号の生成を実現する.
この戦略の利点は以下の通りです.
複数の情報を組み合わせて戦略は価格情報だけでなく,RSIなどの技術指標情報も考慮し,将来のトレンドを総合的に判断し,判断の正確性を向上させる.
確率予測: 統計的確率分布を使って,価格とRSIの変化方向の確率予測を,単純な数値比較ではなく,判断をより科学的にする.
ベイズ最適化:ベイエスの法則を用いて関連確率を計算し,原始統計確率を最適化して判断をより正確にする.
フレキシブルなパラメータ: 調整最適化のための複数のパラメータを提供し,異なる市場と資産にパラメータを適合させ,戦略の適応性を向上させる.
シンプルで効果的: 戦略的思考が明確で,簡単な統計と確率操作によって取引信号の判断を実現し,容易に理解・最適化され,効果が顕著である.
この戦略には以下の主要なリスクがあります.
パラメータ依存: 策略効果はパラメータ設定に依存し,異なる市場では,最適な効果を達成するために多くのパラメータを調整する必要があり,策略の運用難しさが増加する.
確率の誤り統計の時間とサンプルが限られているため,計算された確率は実際の傾向と一致しない可能性があり,判断の偏差が生じます.
特別なイベント市場価格とRSIの関連性を影響する重大突発事件が起こり,戦略が有効にならない.
技術指標の無効性市場状況によっては,RSIなどの技術指標が失敗信号を生じ,戦略的判断が失敗する可能性があります.
リスクに対応する解決策には,パラメータ設定プロセスを最適化し,統計時間とサンプル量を調整し,より多くの補助情報,人工介入の異常状況等を組み合わせるなどがあります.
この戦略の主要な最適化方向は以下の通りです.
複数の時間枠複数の時間周期 (日線,周線など) で戦略を実行し,総合判断を行い,安定性を高めることができる.
もっと多くの指標: K線形,運動平均などの技術指標信号を追加し,判断を豊かにする.
モデル最適化: 機械学習などの方法を適用し,ベイエスのモデルを最適化し,計算をより正確にする.
動的パラメータ: パラメタルの動的最適化モジュールが追加され,パラメタルはリアルタイムで市場の変化に応じて調整できます.
風力制御装置極端な市場での大きな損失を避けるために,最大撤退,単発的な風力制御指標を設定します.
統合された改善投票の仕組みを整え,判断の安定性を高めます.
この戦略は,まず,統計価格と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)