
Chiến lược này là một hệ thống giao dịch thông minh dựa trên nhận diện đỉnh của biến động giá. Chiến lược này kích hoạt tín hiệu giao dịch bằng cách theo dõi biến động giá trên biểu đồ đường K 1 giờ khi có đỉnh tăng hoặc giảm đáng kể. Hệ thống sử dụng khoản đầu tư cố định 30.000 USDT và tự động tính toán số lượng giao dịch dựa trên giá thị trường hiện tại để thực hiện phân bố tối ưu vốn.
Trọng tâm của chiến lược này là nhận diện các đỉnh cao của biến động giá thông qua hàm detect_spike. Khi giá biến động lớn hơn 0,62%, hệ thống sẽ xác định tín hiệu giao dịch có hiệu lực. Gồm:
Chiến lược này xác định cơ hội thị trường thông qua mô hình toán học nghiêm ngặt, kết hợp với hệ thống kiểm soát rủi ro tốt, để đạt được lợi nhuận giao dịch vững chắc. Chiến lược có khả năng mở rộng và tối ưu hóa tốt, có thể thích ứng với các môi trường thị trường khác nhau thông qua cải tiến liên tục, là một chiến lược giao dịch định lượng có giá trị thực tế.
/*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")