RSIと移動平均に基づくトレンドフォロー戦略


作成日: 2023-12-13 17:50:34 最終変更日: 2023-12-13 17:50:34
コピー: 1 クリック数: 825
1
フォロー
1621
フォロワー

RSIと移動平均に基づくトレンドフォロー戦略

概要

この戦略は,RSI指数と快速移動平均を計算して,買いと売りのタイミングを判断する. RSIが5ポイント上昇し,70を下回ったとき; そして9日移動平均で50日移動平均を横切ったとき,多めに; 50日移動平均の下から9日移動平均を横切ったとき,平仓.

戦略原則

この戦略は,主にRSI指標と移動平均の組み合わせを使用しています. RSI指標は,株式または仮想通貨が過大評価されているか過小評価されているかを示すことができます. RSIが30を下回ると,超売りとみなされ,70を下回ると,超買いとみなされます. この戦略は,RSI指標が超売り地域にあるかどうかを判断して,購入のタイミングを決定します.

移動平均は,トレンドの方向を判断するために広く使用されます. 急速な移動平均は,価格の変化をより早く捉え,ゆっくりとした移動平均は,偽の突破をフィルターします. 急速な移動平均の上でゆっくりとした移動平均を穿越すると,上昇傾向に入ることを意味します. 逆に,下を穿越すると,下降傾向に入ることを意味します. この戦略は,9日および50日移動平均の金叉死叉の組み合わせを使用して,トレンドを判断し,買入販売の機会を意味します.

優位分析

この戦略の最大の利点は,RSI指標によって超売り地域を判断し,高値の買い方を避けること,そして,速動平均フィルターによる偽突破を利用して,トレンドの方向をロックすることで,より高い収益率を得ることができるということです.

同時に,戦略は,RSI指標が連続して5ポイント上昇した条件を加え,過剰買い区域の不必要な買いをさらに避けることができます.さらに,戦略は,部分的なポジション取引方法を採用し,単一の取引の損失リスクを大幅に減らすことができます.

リスクと予防

この戦略の最大のリスクは,RSI指数と移動平均が遅滞する可能性があることです. 価格が急激に変化すると,それらのシグナルが遅滞し,高値の買取または低値の販売のリスクが生じます.

このリスクを防ぎ,この戦略は,価格変化により迅速に反応する特性を利用して,遅滞の可能性を減らすために,急速な移動平均を加えた.さらに,一部のポジション取引は,単一の取引の損失を減らすことができます.

最適化の方向

この戦略は以下の点で最適化できます.

  1. RSI指標のパラメータを異なる周期でテストし,最適なパラメータの組み合わせを探します.

  2. フィルタリングの効果を高めるため,より多くの組み合わせのスローモーション平均をテストする

  3. ポジションのサイズを最適化し,異なるポジションパラメータをテストする

  4. 利潤を固定するために,ストップ・ロスを追加します.

要約する

この戦略は,全体的にトレンド取引に適しています. RSI指数で超売り区域を回避し,スロー移動平均と組み合わせてトレンドの方向と重要なサポート抵抗を判断します. 同時に,一部のポジション取引をとることで,より高い勝率と利益率を得ることができます. 後期には,パラメータ最適化と風力制御条件の最適化により,より良い戦略効果を得ることができます.

ストラテジーソースコード
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
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/
// © Coinrule

//@version=5
strategy("RSI with Slow and Fast MA Crossing Strategy (by Coinrule)",
         overlay=true,
         initial_capital=10000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)