
Strategi ini adalah sistem perdagangan cerdas yang didasarkan pada identifikasi puncak fluktuasi harga. Strategi ini memonitor fluktuasi harga pada grafik 1 jam K dan memicu sinyal perdagangan ketika ada puncak yang menonjol ke atas atau ke bawah. Sistem ini menggunakan investasi tetap sebesar 30.000 USDT dan secara otomatis menghitung jumlah transaksi berdasarkan harga pasar saat ini.
Inti dari strategi ini adalah untuk mengidentifikasi puncak fluktuasi harga melalui fungsi detect_spike. Sistem ini menilai sinyal perdagangan yang valid ketika harga berfluktuasi lebih dari 0,62%.
Strategi ini mengidentifikasi peluang pasar melalui model matematika yang ketat, digabungkan dengan sistem kontrol risiko yang baik, untuk mencapai keuntungan perdagangan yang kuat. Strategi ini memiliki skalabilitas dan ruang optimasi yang baik, dapat beradaptasi dengan lingkungan pasar yang berbeda melalui perbaikan berkelanjutan, dan merupakan strategi perdagangan kuantitatif yang memiliki nilai praktis.
/*backtest
start: 2024-11-08 00:00:00
end: 2025-02-18 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Spike Strategy 1h Optimized", overlay=true, margin_long=100, margin_short=100, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Fixed investment amount per trade (30,000 USDT)
fixed_investment = 30000
// Optimized parameters
spike_threshold = 0.62 // Spike threshold (0.80%)
profit_target = 0.42 // Take profit (0.48%)
stop_loss = 1 // Stop loss (10%)
// Function to detect spikes
detect_spike(threshold, close_price, high_price, low_price) =>
spike_up = (high_price - close_price) / close_price >= threshold / 100 // Bullish spike (high - close)
spike_down = (close_price - low_price) / close_price >= threshold / 100 // Bearish spike (close - low)
[spike_up, spike_down]
// Detecting spikes
[spike_up, spike_down] = request.security(syminfo.tickerid, "60", detect_spike(spike_threshold, close, high, low))
// Entry conditions
long_condition = spike_up and not spike_down // Only bullish spikes
short_condition = spike_down and not spike_up // Only bearish spikes
// Calculate the quantity to invest based on the current price
qty_long = fixed_investment / close
qty_short = fixed_investment / close
// Executing the orders
if (long_condition)
strategy.entry("Long", strategy.long, qty=qty_long)
if (short_condition)
strategy.entry("Short", strategy.short, qty=qty_short)
// Exiting orders with take profit and stop loss
if (strategy.position_size > 0)
strategy.exit("Take Profit Long", "Long", limit=strategy.position_avg_price * (1 + profit_target / 100), stop=strategy.position_avg_price * (1 - stop_loss / 100))
if (strategy.position_size < 0)
strategy.exit("Take Profit Short", "Short", limit=strategy.position_avg_price * (1 - profit_target / 100), stop=strategy.position_avg_price * (1 + stop_loss / 100))
// Plot spikes (optional)
plotshape(series=long_condition, title="Long Spike", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=short_condition, title="Short Spike", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")