移動平均重ね合わせRSIに基づく戦略


作成日: 2024-02-02 18:12:17 最終変更日: 2024-02-02 18:12:17
コピー: 0 クリック数: 924
1
フォロー
1617
フォロワー

移動平均重ね合わせRSIに基づく戦略

概要

この戦略は,RSI,陽線,陰線の指数と価格変化のパーセントの平均値を計算し,カスタマイズされた総合指数CRSIを構築し,その単純な移動平均MAを計算することで,価格の傾向を判断し,取引信号を生成します.

戦略原則

この戦略は,まず価格の3日RSIを計算して,価格が過熱または過冷しているかどうかを判断する.同時に,価格の陽陰線指標を計算して,価格の動きを判断する.さらに,価格のパーセントランク付けROCを計算して,価格の相対的な変化速度を判断する.それから,この3つの指標の平均値を計算して,カスタム総合指標CRSIを構築する.CRSIは価格の総合的動態を反映する.最後に,CRSIの2日簡易移動平均線MAを計算する.MAが40の水平線を横切るとき,多めに行います.MAが70の水平線を横切るとき,平仓します.

優位分析

この戦略は,複数の指標を組み合わせて,カスタム化されたCRSI指標を構築し,取引信号をより信頼性のあるものにします. RSIは価格が過熱または過冷かどうかを判断し,陽線または陰線指標は価格の動きを判断し,ROCは価格の変動速度を判断します.それらを組み合わせてCRSI指標を形成し,取引信号をより包括的かつ信頼性のあるものにします. さらに,MAの使用は偽の信号をさらにフィルターすることができます.

リスク分析

この戦略は複数の指標を組み合わせるが,特定の市場環境では誤った信号を生成する可能性がある.例えば,揺れのある状況では,RSI,ROCなどの指標は,実際には価格が明らかに動いていないのに,頻繁に買い買いシグナルを生成する可能性がある.または,突発的な事件が発生した後に,複数の指標は,遅滞して信号取引を生成するリスクがあるかもしれない.これらの状況は,戦略取引の損失につながる可能性がある.これらのリスクは,パラメータを最適化したり,他のフィルタリング条件を追加することによって軽減することができます.

最適化の方向

この戦略を最適化するために,以下のいくつかの側面を考慮することができます: 1) RSI,陽線陰線指標,ROCのパラメータを最適化して,CRSI指標をより安定して信頼できるようにする; 2) 信号をより包括的にするために,KDJ,MACDなどの他の補助指標を組み合わせて追加する; 3) 遅延リスクを減らすためにMAのパラメータを最適化する; 4) 単一損失を制御するためにストップ条件を増加させる; 5) より長い周期の指標と組み合わせて,トレンドを判断し,不安定な市場で頻繁に取引を避ける.

要約する

この戦略は,RSI,陽陰陽とROCの均線を計算し,CRSIのカスタム指標を構築し,CRSIのMAを計算し,MAと指定価格レベルがゴールデンクロスとデスクロスに発生したときに買入操作を行います.この多指標の組み合わせは,取引シグナルをより安定して信頼的にすることができます.しかし,この戦略は,誤った信号と市場環境の影響を減らすために,安定した収益性を高めるために,さらにパラメータを最適化し,補助指標とフィルタ条件を追加する必要があります.

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
src = close, lenrsi = 3, lenupdown = 2, lenroc = 100, malengt = 2, low = 40, high = 70, a = 1, vlow = 20
updown(s) => 
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0.0
    ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1])+1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1])-1)
    ud
rsi = rsi(src, lenrsi)
updownrsi = rsi(updown(src), lenupdown)
percentrank = percentrank(roc(src, 1), lenroc)
crsi = avg(rsi, updownrsi, percentrank)
MA = sma(crsi, malengt)

band1 = 70
band0 = 40
band2 = 20

ColorMA = MA>=band0 ? lime : red

p1 = plot(MA, title="BuyNiggers", style=line, linewidth=4, color=ColorMA)

p2 = plot(low, title="idk", style=line, linewidth=2, color=blue)
p3 = plot(high, title="idk2", style=line, linewidth=2, color=orange)
p4 = plot(vlow, title="idk3", style=line, linewidth=1, color=red)

//@version=2
strategy("CMARSI")


if crossover(MA, band0)
    strategy.entry("buy", strategy.long, 1, when=strategy.position_size <= 0)
    
if crossunder(MA, band1)
    strategy.exit("close", "buy",  1, profit=1, stop=1)
    



plot(strategy.equity)