SMAとRSIの組み合わせ取引戦略


作成日: 2023-10-08 11:40:49 最終変更日: 2023-10-08 11:40:49
コピー: 0 クリック数: 993
1
フォロー
1617
フォロワー

概要

この戦略は,単純移動平均 (SMA) と相対的に強い指数 (RSI) をベースに,RSI値が設定された入場信号ラインを突破し,SMAより低い閉店価格で空白を空白して,ストップを追跡するか,RSIが再び退出信号ストップを誘発する.この戦略は,トレンドフォローと超買い超売指標を組み合わせて,中短線反転の機会を捕捉することを目的としています.

戦略原則

  1. SMA ((200周期) を用いて大トレンドの方向を判断し,価格がSMAより下にあるとき空売りチャンスは発生する.

  2. RSI ((14サイクル) を用いて,超買い超売り状況を判断する。RSIが51を突破すると,売り手の力が増し,空調に入場できる。

  3. ポジションを空白した後に,最低の閉店価格でストップ・ロスを追跡する.RSIが54を突破した場合または32を突破した場合,ストップ・ロスは退場する.

  4. 価格の停止,RSIの停止,利益の停止.

優位分析

  1. トレンドフォローとOverboughtOversellの組み合わせにより,入場タイミングの正確さを向上させることができます.

  2. ストップトラッキングは,価格のリアルタイムの変化に応じて利益を保護し,ストップを過度に固定することを防ぐことができます.

  3. RSIの双方向のトリガーは,利潤をロックし,過度の反転による損失を防ぐことができます.

  4. シンプルな指数とパラメータを固定して,中短線操作に適し,容易に掌握する.

リスク分析

  1. SMAとRSIのパラメータ設定は,すべての品種と周期に適していない可能性があり,最適化が必要です.

  2. スライドポイントや手数料などの取引コストを考慮せずに,実際の利益と損失が影響されます.

  3. 取引量や市場構造などの他の要因を総合的に考慮しない限り,信号は信頼できない可能性があります.

  4. 価格の動きを無視して指標に過度に依存すると,転換点を見逃す可能性があります.

  5. ストップダストは比較的固定で,大きな変動に対応できません.

最適化の方向

  1. SMA周期とRSIパラメータをテストして最適化し,最適なパラメータの組み合わせを探します.

  2. 取引量指標を導入することを検討し,低量の偽ブレークを回避してください.

  3. MACD,ブリン帯など,他の指標の組み合わせをテストできます.

  4. 機械学習アルゴリズムを追加し,過去のデータ訓練を利用し,信号の正確性を向上させる.

  5. 損失を抑える方法を最適化して,状況の変化に適応し,より柔軟にします.

  6. リスク管理システムに参加し,単一損失を制御する.

要約する

この戦略は,SMAとRSIの2つの指標の優位性を統合し,一部のノイズ取引機会をフィルターすることができます.その単純な取引ロジックは,実行しやすいですが,パラメータとルールに対してテスト・最適化が行われ,リスク管理手段に補足され,長期的に安定した動作を行う必要があります.さらに,他の指標またはアルゴリズムとの組み合わせも,戦略の安定性をさらに高めるために探索する価値があります.

ストラテジーソースコード
/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © abdllhatn

//@version=5
// strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100)

// Inputs
sma_length = input(200, title="SMA Length")
rsi_length = input(14, title="RSI Length")
rsi_entry = input(51, title="RSI Entry Level")
rsi_stop = input(54, title="RSI Stop Level")
rsi_take_profit = input(32, title="RSI Take Profit Level")

// Indicators
sma_value = ta.sma(close, sma_length)
rsi_value = ta.rsi(close, rsi_length)

var float trailingStop = na
var float lastLow = na

// Conditions
shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    trailingStop := na
    lastLow := na

if (strategy.position_size < 0)
    if (na(lastLow) or close < lastLow)
        lastLow := close
        trailingStop := close

if not na(trailingStop) and close > trailingStop
    strategy.close("Sell")

if (rsi_value >= rsi_stop)
    strategy.close("Sell")

if (rsi_value <= rsi_take_profit)
    strategy.close("Sell")

// Plot
plot(sma_value, color=color.red, linewidth=2)