RSIと移動平均のクロスオーバートレンド

作者: リン・ハーンチャオチャン開催日:2023年12月13日17時50分
タグ:

img

概要

この戦略は,RSIインジケーターと高速/スロー移動平均値を活用してエントリー&エグジットポイントを決定する.RSIが5ポイント上昇して70を下回るとロングになり,9日間MAが50日間MAを超えるとロングになります.50日間MAが9日間MAを下回るとロングになります.

戦略の論理

この戦略は主にRSIインジケーターと移動平均値の組み合わせを使用している.RSIインジケーターは,株式または暗号通貨が過買いまたは過売れているかどうかを示す.30未満の値は過売りとみなされ,70を超える値は過買いとみなされる.この戦略は,これらの極端な領域の外で適切なエントリーポイントを決定するためにRSIを使用する.

移動平均は,トレンド方向を特定するために広く使用されています. 速い移動平均は価格変化により迅速に反応し,遅いMAは偽のブレイクアウトをフィルターします. 速いMAが遅いMAを超えると上昇傾向が始まります. その反対は下落傾向をシグナルします. この戦略は,9日および50日MAsとそのクロスを用いてトレンドとエントリー/出口を決定します.

利点分析

この戦略の最大の利点は,RSIを使用して極端な過剰買い値で購入を避けること,そして,MASの高速/遅いコンボを使用して偽のブレイクをフィルタリングし,より高い収益性のためにトレンド方向をロックすることです.

RSIが5点連続で上昇する追加条件は,過剰購入ゾーンで不必要な購入を防ぐ.また,部分的なポジションサイズ化により,取引毎の損失リスクが大幅に減少します.

危険 と 予防

最大のリスクは RSI と MAs の信号が激動した価格変動の際に遅れており,上位で買い,下位で売る可能性があります.

これを防ぐために,より速いMAを使用して価格変化をより迅速に捉え,遅れを軽減します.また,部分サイズ化により,取引毎の損失が減少します.

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

可能な最適化経路:

  1. 最適パラメータのためのRSI試験期間

  2. よりよいフィルタリングのために,より速い/遅いMA組み合わせをテストする

  3. 異なるパラメータで位置サイズを最適化

  4. ストップ・ロスの条件を追加して利益をロックする

結論

この戦略はトレンド取引に適している.RSIでオーバーバイト/オーバーセールエリアを回避し,トレンドとサポート/レジスタンス検出のために高速/スローMAを使用する.部分サイズ化により高い勝利率と収益性が実現する.さらなるパラメータ最適化とリスク管理によりパフォーマンスを向上させる.


/*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)






もっと