
La estrategia de intercambio intermitente es una estrategia de seguimiento de tendencias basada en promedios móviles. La estrategia utiliza promedios móviles de 30 días para identificar la tendencia de los precios, entrando en el campo cuando los precios superan la media y saliendo de la posición cuando los precios retroceden por debajo de la media.
La estrategia se basa principalmente en la relación entre el precio y la media móvil de 30 días del índice para determinar las señales de entrada y salida. En concreto:
De esta manera, se pueden bloquear las oportunidades de negociación de tendencias a través de la ruptura de la tendencia de precios de CAPTURE.
Esta estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
La estrategia puede ser optimizada en los siguientes aspectos:
La estrategia de intermitencia de comercio para el seguimiento de la tendencia por la captura de los precios a través de la ruptura de la EMA, es una estrategia simple y práctica de la cuantificación. La estrategia puede ser adaptado y optimizado con flexibilidad, para el medio largo de la posición, también se puede hacer un comercio de la línea corta. En general, la estrategia de riesgo es controlado, si los parámetros se establecen adecuadamente, se puede obtener un rendimiento estable.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Spaced Out Trading Strategy", overlay=true)
// Define strategy parameters
emaPeriod = input(30, title="EMA Period") // Longer EMA period for more spaced-out trades
stopLossPct = input(2.0, title="Stop Loss Percentage") // Stop loss percentage
takeProfitPct = input(3.0, title="Take Profit Percentage") // Take profit percentage
// Calculate EMA
emaValue = ta.ema(close, emaPeriod)
// Define entry and exit conditions
enterLong = ta.crossover(close, emaValue)
exitLong = ta.crossunder(close, emaValue)
// Place orders
contractsQty = 5 // Number of contracts to buy
var float lastTradePrice = na // Track the last trade price
if enterLong and strategy.position_size == 0
strategy.entry("Buy Call", strategy.long, qty = contractsQty)
lastTradePrice := close
else if exitLong and strategy.position_size > 0
strategy.close("Buy Call")
lastTradePrice := na
// Calculate stop loss and take profit
stopLossPrice = lastTradePrice * (1 - stopLossPct / 100)
takeProfitPrice = lastTradePrice * (1 + takeProfitPct / 100)
strategy.exit("Sell Call", "Buy Call", stop = stopLossPrice, limit = takeProfitPrice)