CRSI移動平均戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-02 18:12:17
タグ:

img

概要

この戦略は,RSI,牛/熊の力,価格変動率の割合順位の平均を取って,固定レベルを横断するCRSIの移動平均に基づいて取引することによって,カスタム複合指標CRSIを構築します.

戦略の論理

この戦略は,まず価格の3日間のRSIを計算し,価格が過買いまたは過売れているかどうかを測定する.一方,価格の牛/熊力を計算し,勢いを判断する.また,価格変化の相対速度をチェックするために価格変化率 (ROC) の百分比順位を計算する.その後,これらの3つの指標の平均を計算し,価格の全体的な状態を反映したカスタム複合指標CRSIを構築する.最後に,CRSIの2日間の単純な移動平均 (MA) を計算する.MAが40レベルを超えると,ロングになります.MAが70レベルを下回ると,ロングポジションを終了します.

利点分析

この戦略は,カスタムCRSIインジケーターを構築するために複数のインジケーターを組み合わせ,取引信号をより信頼性のあるものにする. RSIは価格が過熱または過売されているかどうかを判断することができます. ブール/ベアパワーが勢いを判断することができます. ROCは価格がどのくらい速く変化しているかチェックします.それらをCRSIに組み合わせることで,取引信号がより包括的で信頼性があります. さらに,MAの使用は偽の信号をフィルタリングするのに役立ちます.

リスク分析

この戦略はコンボのために複数の指標を使用しているが,特定の市場条件では依然として誤った信号を生むリスクがある.例えば,レンジバインド市場では,RSI,ROCおよびその他の指標は,実際に価格が明確なトレンドを持っていない間に頻繁に購入および販売信号を生成する可能性がある.または,突然のイベントが起きた後にいくつかの指標が遅れて取引信号を生成するのを遅らせることができる.これらの状況は損失を引き起こす可能性がある.パラメータを最適化したり,他のフィルタリング条件を追加することによってリスクを軽減することができる.

オプティマイゼーションの方向性

この戦略を最適化できるいくつかの側面は以下の通りです. 1) CRSI をより安定し信頼性のあるものにするために RSI,bull/bear power,ROC のパラメータを最適化すること. 2) より包括的な信号のためにKDJ,MACDなどの他の補助指標をコンボに追加すること. 3) 遅延リスクを低減するために MA パラメータを最適化すること. 4) 単一の損失を制御するためにストップ・ロスの条件を追加すること. 5) 進捗傾向の状態を判断するために長期指標を組み込むこと.

結論

この戦略は,RSI,bull/bear power,ROCの平均値に基づいてカスタムインジケーターCRSIを構築し,CRSIの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)


もっと