CMARSI トレーディング戦略

作者: リン・ハーンチャオチャン, 日時: 2023-09-26 20:44:53
タグ:

概要

CMARSI取引戦略は,RSI指標と移動平均を組み合わせるトレンドフォロー戦略である.この戦略は,トレンドと移動平均を入力と出出出のシグナルとして識別するために改善されたRSI指標を使用する.この戦略は,中長期取引に適しており,トレンドをフォローして利益を得ることを目的としている.

原則分析

CMARSI戦略は,コンナーズRSIと呼ばれる強化されたRSI指標を使用しています.コンナーズRSIは3つの指標 - クラシックRSI,RSIアップ/ダウンライン,ROCパーセンチル - を組み込みます.その計算式は:

コナーズ RSI = (RSI + RSI 上下 + ROC 百分数) /3

RSIが3日間を用いると,RSIの上下は2日間,ROCの百分位は100日間を用いられる.

コナーズRSIの利点は,複数の指標を組み合わせ,トレンド変化をより正確に識別できる点である.40を超えると長い信号であり,70を下回ると短い信号である.

CMARSI戦略は,さらにコナーズRSIの上に移動平均因数も導入している. 2日間の移動平均を計算し,コナーズRSIとMAのクロスオーバーを取引信号として使用している.具体的なルールは:

  1. コナーズのRSIが40を超えて 2日間のMAの黄金十字を持つとき,ロングに入ります.

  2. コナーズ・RSIが70を下回り 2日間のMAの死十字が表示されたときに終了します

MAフィルターを使用すると,Connors RSIからの誤った信号を回避し,戦略の安定性を向上させることができます.

利点分析

CMARSI戦略の最大の利点は,単一のRSI指標の限界を回避し,トレンドを特定するための複数の指標の組み合わせである.特に,この戦略には以下の利点があります.

  1. 傾向の転換点を特定するために従来のRSIよりも安定しています.

  2. 移動平均値の導入は,ノイズを効果的にフィルタリングし,高値と低値を追いかけるのを防ぐ.

  3. 複数の指標を組み合わせることで 傾向を追跡することで 勝率を向上させることができます

  4. 取引規則はシンプルで 実行も簡単です

  5. トレンドフォロー戦略として 中長期のトレンドから利益を得ることができます

リスク分析

CMARSI戦略の主なリスクは,誤ったトレンド判断とストップロスの配置から生じる.

  1. コンナー RSI は誤った信号を表示し,不要なエントリが発生します.パラメータは調整したり,確認のために他の指標を追加したりできます.

  2. ストップロスの配置は不合理であり,早期ストップアウトまたはストップロスの大きすぎを引き起こす可能性があります.ストップロスは異なる製品と市場環境に最適化する必要があります.

  3. 移動平均フィルターは,変動市場ではうまく機能しない可能性があります. 戦略パラメータは,それに応じて最適化する必要があります.

  4. 長期使用は過剰なフィットメントを引き起こす可能性があります.市場状況に基づいて定期的なバックテストとパラメータ調整が必要です.

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

CMARSI戦略は,次の側面で最適化することができます:

  1. 異なる期間のRSIパラメータを最適化します

  2. フィルタリング効果をさらに改善するために,異なる種類の移動平均を試してください.

  3. 取引の確認のためにMACD,ボリンジャー帯などの他の指標を追加します.

  4. ストップ・ロスの戦略を最適化します.例えば,ストップ・ロスの後退やストップ・ロスの段階化などです.

  5. スクリーニングによって 戦略に適した製品を選択します

  6. ウォーク・フォワード・アナリティスを用いて,パラメータを定期的に最適化し,過剰なフィッティングを防ぐ.

結論

CMARSI戦略は,コナーズRSIと移動平均を組み合わせて,中長期取引のトレンドをフォローする.それは安定し,実装が容易で,トレンド利益を効果的に把握することができます.我々は市場の状況に基づいてパラメータを継続的に最適化し,リスクを管理し,良い収益性を生み出さなければなりません.全体として,CMARSIは推奨されるトレンド取引戦略です.


/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 1d
basePeriod: 1h
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
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

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)

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


if crossover(MA,band0)
    strategy.entry("buy", strategy.long, when=strategy.position_size <= 0)
    
if crossunder(MA,band1)
    strategy.exit("sell", "buy", profit=1000000, stop=10000000)
    
plot(strategy.equity)

    





もっと