
Strategi penjejakian trend binari adalah strategi perdagangan kuantitatif untuk menjejaki trend yang menggunakan garis rintangan sokongan dan purata bergerak sebagai isyarat pilihan pilihan. Strategi ini mempertimbangkan secara komprehensif harga pada tahap rintangan sokongan dan isyarat penjernih harga dalam jangka masa yang berbeza. Untuk menangkap sokongan dan rintangan yang penting ketika harga menembusi, ia digabungkan dengan penapis indikator trend untuk membuat banyak peluang kosong.
Strategi ini terdiri daripada empat bahagian utama:
Khususnya, strategi pertama menggunakan fungsi Keamanan permintaan untuk mendapatkan harga tertinggi dan terendah dalam 30 hari dan 30 minggu, masing-masing untuk menetapkan garis sokongan dan garis rintangan yang dinamik. Kemudian menggabungkan isyarat garpu emas dan garpu mati dari purata bergerak 10 hari untuk menyaring peluang perdagangan yang pecah.
Strategi ini mempertimbangkan sokongan dan rintangan pada garis pendek dan panjang untuk menangkap peluang trend yang lebih besar. Dalam kombinasi dengan purata bergerak, ia dapat menyaring isyarat yang salah dalam trend yang bergoyang.
Strategi ini mempunyai beberapa kelebihan:
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Penyelesaian:
Strategi ini masih boleh dioptimumkan lagi:
Strategi pengesanan trend yang menyelubungi garpu emas dan garpu mati mengambil kira tahap rintangan sokongan garpu panjang dan garpu panjang dan indikator purata bergerak sebagai isyarat perdagangan, dapat menyaring kebisingan dengan berkesan dalam konteks trend yang besar untuk mencapai keuntungan, merupakan strategi perdagangan kuantitatif yang lebih matang. Strategi ini masih mempunyai ruang yang besar untuk pengoptimuman, dapat diperbaiki dari segi mekanisme henti rugi, parameter penyesuaian diri, dan lain-lain, juga boleh mencuba memperkenalkan kaedah baru seperti pembelajaran mesin untuk meningkatkan ketahanan strategi.
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © neosaid
//@version=5
strategy("Support and resistant Strategy", overlay=true)
// Function to check for breakout
f_breakoutCondition(closingPrice, highestHigh, lowestLow) =>
closingPrice > highestHigh or closingPrice < lowestLow
// Step 1: 30 Days Trend Line (Lower Lows)
low30Days = request.security(syminfo.tickerid, "D", low)
// Step 2: 30 Weeks Upper Trend Line (Higher Highs)
high30Weeks = request.security(syminfo.tickerid, "W", high)
// Step 3: Trend Line for Lowest Low within the Last Month
var float lowestLowLastMonth = na
for i = 0 to 29
lowestLowLastMonth := na(lowestLowLastMonth) ? low[i] : math.min(lowestLowLastMonth, low[i])
lowestLowLastMonthValue = lowestLowLastMonth[1]
// Breakout Strategy
highestHighLast3Candles = request.security(syminfo.tickerid, "D", ta.highest(close, 3))
lowestLowLast3Candles = request.security(syminfo.tickerid, "D", ta.lowest(close, 3))
// Additional conditions to filter signals
buyCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close > low30Days
sellCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close < high30Weeks
// Additional filters to reduce the number of orders
buyFilter = ta.crossover(close, ta.sma(close, 10)) // Buy only when price crosses above a 10-period SMA
sellFilter = ta.crossunder(close, ta.sma(close, 10)) // Sell only when price crosses below a 10-period SMA
buyCondition := buyCondition and buyFilter
sellCondition := sellCondition and sellFilter
// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Strategy entries
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)