
Strategi ini adalah sistem perdagangan pintar yang berasaskan pengesanan puncak pergerakan harga. Strategi ini memantau pergerakan harga pada carta garis K 1 jam, dan mencetuskan isyarat perdagangan apabila terdapat puncak yang ketara ke atas atau ke bawah. Sistem ini menggunakan jumlah pelaburan tetap 30,000 USDT, dan secara automatik mengira jumlah perdagangan berdasarkan harga pasaran semasa, untuk mencapai penyetempatan modal yang optimum.
Pusat strategi ini adalah untuk mengenal pasti puncak pergerakan harga melalui fungsi detect_spike. Apabila harga bergerak lebih besar daripada 0.62%, sistem menentukan sebagai isyarat perdagangan yang sah.
Strategi ini menggunakan model matematik yang ketat untuk mengenal pasti peluang pasaran, digabungkan dengan sistem kawalan risiko yang baik, untuk mencapai keuntungan perdagangan yang mantap. Strategi ini mempunyai ruang untuk skala dan pengoptimuman yang baik, dan dapat menyesuaikan diri dengan keadaan pasaran yang berbeza melalui penambahbaikan berterusan, merupakan strategi perdagangan kuantitatif yang bernilai praktikal.
/*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")