
La idea principal de esta estrategia es la combinación del tiempo y el indicador ATR para lograr un stop loss automatizado. La estrategia abre una posición para comprar o vender en un punto fijo de tiempo, y en combinación con el indicador ATR se calcula un precio de stop loss razonable. De esta manera, se puede lograr una negociación automatizada eficiente, reducir la frecuencia de operaciones manuales, mientras que el riesgo puede ser controlado de manera efectiva a través del indicador ATR.
Esta estrategia utiliza las variables hour y minute en combinación con las condiciones if para activar la operación de apertura de posición en el momento especificado en el parámetro de estrategia tradeTime. Por ejemplo, si se configura como 0700, significa que la apertura de la posición se realizará a las 7:00 a.m. hora de Beijing.
Una vez abierta la posición, la estrategia utiliza la función ta.atr () para calcular el valor del indicador ATR en los últimos 5 minutos y utilizarlo como base para el stop loss. Por ejemplo, después de la compra, el precio de parada = precio de compra + valor de ATR; después de la venta, el precio de parada = precio de venta - valor de ATR.
Esto permite la apertura automática de posiciones basadas en puntos de tiempo, y el stop loss basado en indicadores ATR. Esto reduce la frecuencia de operaciones manuales y controla el riesgo de manera efectiva.
La estrategia tiene las siguientes ventajas:
Alta automatización. Se pueden realizar pedidos automáticos sin guardia en un momento determinado, lo que reduce considerablemente la frecuencia de las operaciones manuales.
El Stop Loss Bar basado en el indicador ATR permite controlar eficazmente las pérdidas individuales. El indicador ATR puede capturar dinámicamente el grado de volatilidad del mercado y así establecer una distancia de parada razonable.
Escalable. Se puede combinar fácilmente con más indicadores o algoritmos de aprendizaje automático para ayudar a la toma de decisiones. Por ejemplo, se puede combinar la tendencia de juicio de indicadores de línea media.
Arbitraje de variedades múltiples fácilmente. La estrategia de arbitraje de apertura de contratos se puede implementar fácilmente con solo establecer el mismo tiempo de negociación para diferentes variedades.
Fácil integración con sistemas automatizados de negociación. En combinación con la gestión de tareas en tiempo real, puede ejecutar programas de estrategia sin guardias las 24 horas del día, lo que permite una negociación completamente automatizada.
La estrategia también tiene sus riesgos:
Riesgo de eventos inesperados en el mercado. Un evento de gran impacto puede provocar una fluctuación extrema en los precios, lo que puede provocar un alto riesgo de pérdidas y una mayor pérdida.
Riesgo de liquidez de la marca. Algunas variedades tienen una mala liquidez, no pueden realizar transacciones completas en el punto de parada de precio límite, no pueden liquidar el punto de parada.
Los parámetros ATR requieren una optimización de prueba repetida, y si se establecen demasiado grandes o demasiado pequeños, afectarán la eficacia de la estrategia.
Optimización del riesgo en el momento. Las posiciones fijas en el momento de la apertura pueden perder oportunidades de mercado, lo que requiere la combinación de más indicadores para ajustar el momento.
Esta estrategia puede optimizarse aún más en las siguientes dimensiones:
Combine más indicadores para juzgar la situación del mercado y evite abrir posiciones en un entorno de mercado desfavorable, como MACD, RSI, etc.
El uso de algoritmos de aprendizaje automático para predecir la mejor hora de apertura de la posición. Se puede recopilar más datos históricos, usar LSTM para entrenar modelos, etc.
Utiliza plataformas como Heartbeat para ampliar el arbitraje a varias variedades. Busca oportunidades de arbitraje en combinación con la relevancia de la industria.
Optimización de los parámetros ATR y la configuración de los parados de frenado. Se puede encontrar el parámetro óptimo mediante más respuestas repetitivas.
Las estrategias se ejecutan en el servidor, se integran las tareas programadas y se ejecutan de forma totalmente automatizada las 7x24 horas.
Esta estrategia integra el punto de tiempo y el indicador ATR para lograr un comercio de stop loss automático y eficiente. Se puede obtener un alfa estable a través de la optimización de parámetros. Al mismo tiempo, tiene una gran escalabilidad e integración, y es una de las estrategias de cuantificación recomendadas.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Time-based Strategy with ATR Take Profit Sell", overlay=true)
// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na
// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")
// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))
// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders
// if (buyCondition)
// strategy.entry("Buy", strategy.long)
// buyprice := close
// takeProfitLevel := buyprice + atrValue
// strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
sellprice := close
takeProfitLevelForSell := sellprice -atrValue
strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)
// Plot horizontal lines for take profit levels
plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")