複数のタイムフレーム移動平均値とRSIに基づいたトレンドフォロー戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-08 16:57:29
タグ:

img

概要

この戦略は,マルチタイムフレーム移動平均値に基づいてトレンド方向を特定し,トレード信号を生成するためにRSIでオーバーバイト/オーバーセール状況を判断する.長,中,短MA線が同じ方向にある場合,それはトレンドとみなされる.この時点で,RSIはオーバーバイト/オーバーセールかどうかを決定するために使用され,トレード信号が生成される.さらに,戦略はリスクを管理するためにトライリングストップロスを採用する.

戦略の論理

基本論理は,高速線がスローラインを越えたとき,それはブル市場を示すゴールデンクロスである.高速線がスローラインを越えたとき,それは熊市場を示すデスクロスである.この戦略は,長期,中期,短期が同じ方向にあるかどうかを確認するために,異なるタイムフレームでそのような論理を適用する.すべて牛または熊である場合,取引信号が生成される.さらに,RSIは傾斜点でのストップ損失を逃すことを避けるのに役立ちます.リスクを制御しながら利益が実行できるように,ストップ損失を追う特定のオフセットを設定します.

利点分析

  1. 傾向を特定するために複数の時間枠を使用することで 短期間の市場騒音を効果的にフィルタリングし 中長期の傾向を特定できます

  2. RSIは,転換点での元の方向に固執し,ストップロスを逃すのを避けるのに役立ちます.

  3. トレイリングストップロスは,利益の成長とリスク管理の両方を考慮し,高いリターン/リスク比をもたらします.

リスク分析

  1. 複数のタイムフレームの決定には時間遅れがあり,遅刻してトレンドの初期段階を見逃す可能性があります.

  2. RSIは過買い/過売状態のみを判断する.急激な逆転が起こる場合,曲線点を決定するのにうまく機能しません.

  3. トレイリングストップ損失オフセットの不正な設定は,攻撃的または保守的な行動につながる可能性があります.パラメータ調整が必要です.

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

  1. より正確な取引信号を生成するために,ボリンジャーバンドやKDJなどのより多くの指標を組み合わせることを検討してください.

  2. 市場変動とリスク意欲に基づいてオフセットを調整するダイナミックストップロスを採用する.

  3. 資本をよりうまく活用するために 短期間で同様の論理を適用します

概要

一般的に,この戦略にはメリットよりもメリットが多くあります.中長期の傾向を正確に決定し,高いリターン/リスク報酬を提供します.トレンドフォローシステムとして,統合の中での主要なトレンド方向性を特定することができます.パラメータと指標のさらなる改善は安定性と収益性を向上させることができます.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Cryptocurrency Trading Tools by XMAXPRO
//ATA INDIKATORU
//Test 4.0v Tarih:23.02.2020
//

strategy("MTF+MA+RSI+TSL", overlay=false, shorttitle="ATA v4 Strategy")
src = input(title="kaynak", type=input.source, defval=close)
fast = input(title="hızlıbarlar", type=input.integer, defval=21)
slow = input(title="yavaşbarlar", type=input.integer, defval=34)

//MTF source
long = input(title="uzunvade", type=input.resolution, defval="240")
mid = input(title="ortavade", type=input.resolution, defval="60")
short = input(title="kısavade", type=input.resolution, defval="5")

//MTF Grafikleri
ln = security(syminfo.ticker, long, src)
md = security(syminfo.ticker, mid, src)
sh = security(syminfo.ticker, short, src)

//0
lnma = ema(ln, fast) - ema(ln, slow)
mdma = ema(sh, fast) - ema(md, slow)
shma = ema(sh, fast) - ema(sh, slow)

//Makeup
uzunrenk = lnma > 0 ? color.white : color.red
ortarenk = mdma > 0 ? color.white : color.red
kisarenk = shma > 0 ? color.white : color.red

l1 = 1
m1 = 2
s1 = 3

plot(l1, style=plot.style_line, color=uzunrenk, linewidth=25)
plot(m1, style=plot.style_line, color=ortarenk, linewidth=25)
plot(s1, style=plot.style_line, color=kisarenk, linewidth=25)

atarsi = rsi(close, 14)
rsiob = input(title="aşırıalım", type=input.integer, defval=60)
rsios = input(title="aşırısatış", type=input.integer, defval=25)

sell = atarsi > rsiob and lnma > 0 and mdma > 0 and shma > 0
buy = atarsi < rsios and lnma < 0 and mdma < 0 and shma < 0

barcolor(sell ? color.white : color.red)
barcolor(buy ? color.white : color.red)

//strateji
strategy.entry("long", strategy.long, comment = "BULL", when = sell)
strategy.entry("short", strategy.short, comment = "BEAR", when = buy)

//kompleks alarm
//alertcondition(sell, title = "ATA LONG SIGNAL", message = "btc/usd ata long sinyali")
//alertcondition(buy, title = "ATA SHORT SIGNAL", message = "btc/usd ata short sinyali")

//iz sürücü TSL
strategy.exit ("Bull TSL", "long", trail_points=close * 0.02 / syminfo.mintick, trail_offset=close * 0.02/syminfo.mintick)
strategy.exit ("Bear TSL", "short", trail_points=close * 0.02 / syminfo.mintick, trail_offset=close * 0.02/syminfo.mintick)

もっと