RSIインジケーターの量的な取引戦略と組み合わせた二重移動平均のクロスオーバー

作者: リン・ハーンチャオチャン, 日付: 2023-11-21 12:09:50
タグ:

img

概要

この戦略は,トレンド方向とオーバーバイト/オーバーセール状況を特定するために,両動平均クロスオーバーとRSIインジケータを組み合わせます. 購入条件が満たされるとロングになり,販売条件が引き出されるときにポジションを閉じる. 目標は,動平均クロスオーバーを使用してトレンド方向を決定し,RSIインジケータを使用することで,誤った上位購入と下位販売を避けるため,より良い利益を生むことです.

戦略の論理

急速な9期間の移動平均が遅い50期間の移動平均を超えると,より短い時間枠で上向き傾向がより長い時間枠で上向き傾向が重なり合っていることを示します.これは典型的な上昇シグナルです.一方,RSIが前期よりも5ポイント高で70未満である場合は,資産が接近しているが,まだ過買い領域に入っていないことを意味します.これは,長期化するのに良いタイミングです.

急速な9期間の移動平均が遅い50期間の移動平均を下回ると,下落市場の始まりを示し,既存のロングポジションは閉鎖されるべきです.

利点分析

  • 二重移動平均値は,市場全体の方向性を決定し,誤ったブレイクを避けるのに役立ちます.
  • RSIインジケーターは,ターニングポイントで間違った動きを防ぐ
  • 異なるシンボルと時間枠に合わせて移動平均期間の調整に柔軟性
  • 制御可能なストップ損失戦略

リスク分析

  • クロスオーバー信号が遅れて,いくつかの損失を引き起こす可能性があります
  • RSI パラメータの設定が正しくない場合,ベストエントリータイムが失われる可能性があります.
  • 価格動きをサポートするかどうかを確認するために取引量を監視する必要があります
  • ブラック・スワン事件は 手動による介入が必要です

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

  • 最良の結果のために RSI パラメータを最適化
  • 誤った信号を避けるために取引量を考慮する
  • シンボルとタイムフレームに基づいて最適な移動平均期をテストする
  • 早期に停止されないようにストップ損失を緩める.

概要

この戦略は,方向とRSIを決定するために二重移動平均クロスオーバーを使用し,上下を追いかけるのを避ける.安定した利益のために中長期のトレンドを効果的に走ることができます.しかし,クロスオーバー信号の遅延性およびRSIパラメータの調整に注意する必要があります.また,価格とボリュームを関連付けなければなりません.継続的なテストと最適化により,この戦略はさらにより良い結果をもたらすことを約束しています.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © joshuajcoop01

//@version=5
strategy("Bitpanda Coinrule Template",
         overlay=true,
         initial_capital=1000,
         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)





もっと