Estrategia de compra de ATR sin pérdidas basada en el tiempo

El autor:¿ Qué pasa?, Fecha: 2024-02-28 17:36:50
Las etiquetas:

img

Resumen general

La idea central de esta estrategia es combinar el tiempo y los indicadores ATR para establecer el tiempo de compra y los puntos de stop loss. La estrategia emite una señal de compra cronometrada en el momento especificado, utiliza el precio de cierre en ese momento como el precio de compra, y luego establece el punto de stop loss en el precio de compra más el valor ATR. Esto puede filtrar algunos tiempos de compra inadecuados mientras utiliza ATR para controlar los riesgos.

Principio de la estrategia

La estrategia consta de las siguientes partes principales:

  1. Parámetros de entrada: incluidos los parámetros timeTrade y ATR del tiempo de compra atrLength. timeTrade determina el tiempo de compra y atrLength determina el parámetro del período de ATR.

  2. Calcular el indicador ATR: calcular el valor ATR atrValue basándose en el parámetro atrLength.

  3. Definir las condiciones de compra: generar señales de compra cuando la combinación de horas y minutos es igual a timeTrade.

  4. Orden de compra de emisión: pasar a largo cuando se cumpla la condición de compra, y registrar el precio de compra.

  5. Establecer punto de stop loss: el punto de stop loss se establece en el precio de compra más el valor ATR.

  6. Trazado: traza la línea de nivel de stop loss.

Análisis de ventajas

La mayor ventaja de esta estrategia es la doble confirmación del tiempo de compra y el punto de stop loss por tiempo e indicador ATR. Esto evita seguir ciegamente el mercado para comprar y controla efectivamente los riesgos. En segundo lugar, el punto de stop loss establecido por ATR cambia dinámicamente, lo que puede establecer un rango de stop loss razonable de acuerdo con la fluctuación del mercado. Por último, la lógica de la estrategia es simple y fácil de entender y rastrear.

Análisis de riesgos

Los principales riesgos de esta estrategia incluyen:

  1. El ajuste incorrecto del tiempo de compra puede perder mejores oportunidades de compra o comprar en mercados indeseables.

  2. La configuración incorrecta de los parámetros del ATR afectará al rendimiento de la estrategia si el punto de parada de pérdida es demasiado grande o demasiado pequeño.

  3. Incapaz de realizar un seguimiento eficaz de las tendencias a largo plazo, más adecuado para operaciones a corto plazo.

  4. No se tienen en cuenta los factores de análisis fundamentales.

Direcciones de optimización

Esta estrategia puede optimizarse aún más en los siguientes aspectos:

  1. Determinar un tiempo de aceptación más científico mediante la combinación de modelos multifactoriales.

  2. Optimizar la configuración de los parámetros del ATR combinando modelos de volatilidad.

  3. Mejorar el mecanismo de seguimiento de tendencias para adaptarse a períodos de retención más largos.

  4. Incorporar el análisis fundamental para juzgar la razonabilidad de los plazos de compra.

Conclusión

En general, esta es una estrategia de trading intradiario de alta frecuencia relativamente simple e intuitiva. La idea central es utilizar la doble confirmación del tiempo y los indicadores ATR para determinar el tiempo de compra y los puntos de stop loss. Las ventajas son los riesgos controlables y relativamente fáciles de implementar. Pero también hay problemas como la selección insuficiente del tiempo de compra y la optimización de parámetros inadecuada. Las optimizaciones futuras se pueden hacer introduciendo más factores, optimización de parámetros dinámicos, seguimiento de tendencias, etc.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-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", 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)")


Más.