
Strategi ini adalah sistem perdagangan garis pendek berdasarkan teori pembahagian dan grid yang menyesuaikan diri, yang menggabungkan titik rendah kadar turun naik untuk mengoptimumkan masa perdagangan. Sistem ini secara dinamik menyesuaikan tahap grid, menangkap perubahan struktur mikro pasaran semasa turun naik tinggi, dan mengelakkan perdagangan berlebihan semasa turun naik rendah. Strategi ini mengintegrasikan pelbagai petunjuk teknikal, termasuk purata gelombang sebenar (ATR), purata bergerak sederhana (SMA) dan titik pecah pembahagian, untuk membina kerangka keputusan perdagangan yang komprehensif.
Strategi ini berpusat pada membangunkan grid perdagangan dinamik melalui pengenalan pembahagian dan pengelompokan kadar turun naik. Pelaksanaan khusus merangkumi beberapa langkah penting berikut:
Ini adalah sistem strategi komprehensif yang menggabungkan teori pembahagian, perdagangan grid dan penapisan kadar turun naik. Ia berjaya menangkap struktur mikro pasaran dengan menggunakan pelbagai petunjuk teknikal. Kelebihan strategi adalah kemampuan untuk menyesuaikan diri dan mengawal risiko, tetapi juga memerlukan perhatian terhadap pengoptimuman parameter dan kesesuaian dengan keadaan pasaran.
/*backtest
start: 2024-02-17 00:00:00
end: 2025-02-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Adaptive Fractal Grid Scalping Strategy", overlay=true)
// Inputs
atrLength = input.int(14, title="ATR Length")
smaLength = input.int(50, title="SMA Length")
gridMultiplierHigh = input.float(2.0, title="Grid Multiplier High")
gridMultiplierLow = input.float(0.5, title="Grid Multiplier Low")
trailStopMultiplier = input.float(0.5, title="Trailing Stop Multiplier")
volatilityThreshold = input.float(1.0, title="Volatility Threshold (ATR)")
// Calculate Fractals
fractalHigh = ta.pivothigh(high, 2, 2)
fractalLow = ta.pivotlow(low, 2, 2)
// Calculate ATR and SMA
atrValue = ta.atr(atrLength)
smaValue = ta.sma(close, smaLength)
// Determine Trend Direction
isBullish = close > smaValue
isBearish = close < smaValue
// Calculate Grid Levels
gridLevelHigh = fractalHigh + atrValue * gridMultiplierHigh
gridLevelLow = fractalLow - atrValue * gridMultiplierLow
// Plot Fractals and Grid Levels
plotshape(not na(fractalHigh), style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
plotshape(not na(fractalLow), style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plot(gridLevelHigh, color=color.red, linewidth=1, title="Grid Level High")
plot(gridLevelLow, color=color.green, linewidth=1, title="Grid Level Low")
// Trade Execution Logic with Volatility Threshold
if (atrValue > volatilityThreshold)
if (isBullish and not na(fractalLow))
strategy.entry("Buy", strategy.long, limit=gridLevelLow)
if (isBearish and not na(fractalHigh))
strategy.entry("Sell", strategy.short, limit=gridLevelHigh)
// Profit-Taking and Stop-Loss
strategy.exit("Take Profit/Stop Loss", "Buy", limit=gridLevelHigh, stop=fractalLow - atrValue * trailStopMultiplier)
strategy.exit("Take Profit/Stop Loss", "Sell", limit=gridLevelLow, stop=fractalHigh + atrValue * trailStopMultiplier)