
La estrategia utiliza brechas de alzas y bajas de un marco de tiempo dinámico para generar señales de negociación. Decide si se compra o se vende comparando los precios máximos y mínimos del marco de tiempo actual con el precio de cierre del marco de tiempo anterior, más o menos un cierto número de puntos. Este método puede adaptarse a diferentes movimientos y volatilidad del mercado, lo que aumenta la adaptabilidad y la flexibilidad de la estrategia.
El núcleo de la estrategia es utilizar los puntos altos y bajos de los diferentes marcos de tiempo para determinar el movimiento de los precios. En primer lugar, se obtienen los correspondientes precios máximos, mínimos y precios de cierre según el marco de tiempo elegido por el usuario. Luego, se obtiene una señal de compra mediante la comparación de si el precio máximo del marco de tiempo actual es mayor que el precio de cierre del marco de tiempo anterior, sumado a un cierto número de puntos para determinar la señal de venta.
Las estrategias de ruptura de puntos altos y bajos de los marcos de tiempo dinámicos generan señales de negociación basadas en la ruptura de puntos altos y bajos de los datos de precios de diferentes marcos de tiempo. La lógica de la estrategia es clara, adaptable, fácil de implementar y optimizar. Pero también hay problemas como la sensibilidad a los parámetros, la sobreadaptación y el riesgo de mercado, que requieren una optimización y mejora continuas en la aplicación real.
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(" NIFTY 65-15 ", overlay=true)
// Define input options for point settings and timeframe
points = input.int(60, title="Point Threshold", minval=1, step=1)
timeframe = input.timeframe("60", title="Timeframe", options=["1", "3", "5", "15", "30", "60", "240", "D", "W", "M"])
// Calculate high and low of the selected timeframe
high_timeframe = request.security(syminfo.tickerid, timeframe, high)
low_timeframe = request.security(syminfo.tickerid, timeframe, low)
close_timeframe = request.security(syminfo.tickerid, timeframe, close)
// Define conditions for Buy and Sell
buyCondition = high_timeframe > (close_timeframe[1] + points)
sellCondition = low_timeframe < (close_timeframe[1] - points)
// Entry and exit rules
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Close the positions based on the conditions
if (sellCondition)
strategy.close("Buy")
if (buyCondition)
strategy.close("Sell")
// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Entry", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Entry", color=color.red, style=shape.triangledown, location=location.abovebar)
// Plot the equity curve of the strategy
plot(strategy.equity, title="Equity", color=color.blue, linewidth=2)