Strategi ini membina isyarat perdagangan berdasarkan purata bergerak, purata bergerak Hull dan Indeks Kekuatan Relatif (RSI). Ia adalah sebahagian daripada strategi penjejakan peluang biasa yang secara automatik dapat mengenal pasti peluang pasaran dan beralih antara kedudukan panjang dan pendek. Ia sesuai untuk perdagangan jangka sederhana dan pendek.
Strategi ini menggunakan gabungan EMA, Hull dan RSI merentasi jangka masa untuk menangkap peluang perdagangan jangka sederhana dan pendek. Isyarat kemasukan mesti memenuhi kriteria dalam dimensi trend, momentum dan overbought / oversold secara serentak untuk menapis isyarat palsu. Strategi ini boleh ditingkatkan lagi melalui pengoptimuman parameter dan memperkenalkan lebih banyak penunjuk tambahan untuk meningkatkan kestabilan dan prestasi perdagangan.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 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/ // © Bitduke //@version=4 strategy(shorttitle="EHR", title="Simple EMA_Hull_RSI", overlay=false, calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=1000, currency=currency.USD, initial_capital=1000, commission_type=strategy.commission.percent, commission_value=0.075) // EMA len = input(minval=1, title="EMA Length", defval=50) src = input(close, title="EMA Source") final_ema = ema(src, len) plot(final_ema, color=color.red, title="EMA") overbought = input(60, title="overbought value") oversold = input(45, title="oversold value") overbought_signal = rsi(close, 14) > overbought oversold_signal = rsi(close, 14) < oversold barcolor(overbought_signal ? color.black : na) barcolor(oversold_signal ? color.blue : na) // Hull MA n = input(title="Hull Length", defval=7) n2ma=2*wma(close,round(n/2)) nma=wma(close,n) diff=n2ma-nma sqn=round(sqrt(n)) n2ma1=2*wma(close[1],round(n/2)) nma1=wma(close[1],n) diff1=n2ma1-nma1 sqn1=round(sqrt(n)) n1=wma(diff,sqn) n2=wma(diff1,sqn) c=n1>n2?color.green:color.red ma=plot(n1,color=c) // Strategy Logic longCondition = overbought_signal and crossover(n1,final_ema) shortCondition = oversold_signal and crossover(final_ema,n1) strategy.entry("EHR_Long", strategy.long, when=longCondition) strategy.entry("EHR_Short", strategy.short, when=shortCondition)