Strategi ini terutamanya menggunakan harga tertinggi, harga terendah, dan purata bergerak eksponen (EMA) untuk mengesahkan pembalikan trend dan menjana isyarat perdagangan. Strategi pertama mengira harga tertinggi dan terendah dalam tempoh kembali yang ditentukan, kemudian menentukan sama ada harga penutupan semasa berada di bawah harga terendah yang sepadan dengan harga tertinggi (penegasan pembalikan penurunan) atau di atas harga tertinggi yang sepadan dengan harga terendah (penegasan pembalikan kenaikan). Setelah isyarat pengesahan pembalikan muncul, strategi menghasilkan isyarat kemasukan yang sepadan. Kelebihan utama strategi ini adalah keupayaannya untuk menangkap peluang pembalikan trend, sementara risiko utama adalah bahawa selepas isyarat pengesahan pembalikan muncul, harga mungkin mengalami turun naik berulang daripada trend satu arah.
Strategi perdagangan pengesahan pembalikan jangka masa berbilang mengenal pasti peluang pembalikan trend yang berpotensi menggunakan harga tertinggi, harga terendah, dan EMA, menghasilkan isyarat kemasukan yang sepadan. Kelebihan strategi ini adalah keupayaannya untuk menangkap pembalikan trend, tetapi ia juga menghadapi masalah perdagangan yang kerap dan kawalan risiko yang tidak mencukupi. Dengan memperkenalkan mekanisme stop-loss dan mengambil keuntungan, menggabungkan penunjuk lain, pengoptimuman parameter, dan ukuran kedudukan, prestasi dan kestabilan strategi dapat ditingkatkan lagi. Dalam aplikasi praktikal, parameter strategi dan langkah kawalan risiko perlu disesuaikan mengikut instrumen perdagangan dan persekitaran pasaran tertentu.
/*backtest start: 2023-05-05 00:00:00 end: 2024-05-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Reversal Confimation Strategy", overlay=true) // Indicator inputs lookback = input.int(50, 'Lookback Period', minval=1, step=1) downColor = input(color.red, 'Shape Color Down') upColor = input(color.green, 'Shape Color Up') // Indicator calculations find_highest = ta.highest(high, lookback) find_lowest = ta.lowest(low, lookback) ema = ta.ema(close, lookback) var dnRv = 0.0 var dnRv_trigger = false var upRv = 0.0 var upRv_trigger = false if high == find_highest dnRv_trigger := false if low == find_lowest upRv_trigger := false for i = 0 to lookback - 1 if high[i] == find_highest dnRv := low[i] for i = 0 to lookback - 1 if low[i] == find_lowest upRv := high[i] dnRv_signal = close < dnRv and dnRv_trigger == false upRv_signal = close > upRv and upRv_trigger == false if dnRv_signal dnRv_trigger := true if upRv_signal upRv_trigger := true // Entry and exit conditions if dnRv_signal strategy.entry("Sell", strategy.short) if upRv_signal strategy.entry("Buy", strategy.long) // Plotting plotshape(dnRv_signal ? 1 : 0, style=shape.triangledown, location=location.abovebar, color=downColor, size=size.small) plotshape(upRv_signal ? 1 : 0, style=shape.triangleup, location=location.belowbar, color=upColor, size=size.small)