
La estrategia es un sistema de negociación inteligente basado en la identificación de picos de fluctuaciones de precios. La estrategia activa la señal de negociación al monitorear las fluctuaciones de precios en el gráfico de 1 hora de K, cuando hay picos de subida o bajada significativos.
El núcleo de la estrategia es identificar los picos de fluctuación del precio a través de la función detect_spike. Cuando el precio fluctúa más del 0.62%, el sistema determina que es una señal de negociación válida.
La estrategia identifica las oportunidades de mercado a través de modelos matemáticos rigurosos, se combina con un sistema de control de riesgos completo, y se obtiene una ganancia de comercio sólida. La estrategia tiene una buena escalabilidad y espacio de optimización, se puede adaptar a diferentes entornos de mercado a través de la mejora continua, es una estrategia de comercio cuantitativa de valor práctico.
/*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")