バイエスの条件 RSI トレーディング戦略

作者: リン・ハーンチャオチャン開催日:2023年12月18日 17:09
タグ:

img

概要

この記事では,主に"ベイジアンスコンディション RSI トレーディング戦略"と呼ばれる定量的な取引戦略を分析しています.この戦略は,RSI インディケーターの確率分布を計算し,RSI インディケーターが上昇または下落し続ける確率を推測するためにベイジアンスルールを適用し,将来の価格動向を判断し,利益を得ることができます.

戦略原則

この戦略の基本的な論理は

  1. 閉店価格が特定のサイクル内で上昇したかどうかを確率分布Aを計算する
  2. RSI インディケーターが対応するサイクル内で上昇し続けるか否かの確率分布Bを計算する.
  3. AとBが同時に起こる確率を計算するためにベイジアン法則を適用する
  4. 傾向が続くと判断し,取引信号を取ります.

具体的には,戦略はまず,パラメータpをRSI指標の計算のためのサイクルのパラメータ,そしてrを将来の価格変化を予測するための時間帯として定義する.その後,pサイクルの内では,確率分布Aを計算するために閉じる価格が上昇する回数を数える.同時に,pサイクルの内では,このサイクルの終了後,RSIがrサイクルの内での上昇を継続する回数を数えて,確率分布Bを計算する.

その後,最後の確率判断指標として,閉じる価格上昇とRSIの上昇を続ける2つの条件が同時に満たされる確率を計算するために,ベイジアン式を適用します.この確率が与えられた値を超えると,上昇傾向が継続し,ロングポジションを取ると判断します.確率が値を下回ると,トレンドが逆転してポジションを閉じると判断します.

このようにして,戦略は価格情報と技術指標を包括的に考慮し,確率統計とベイジアン規則を適用して将来の傾向を判断し,取引信号を生成します.

戦略 の 利点

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

  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)

もっと