
La idea principal de esta estrategia es utilizar los puntos altos y bajos de la línea K de tres minutos como punto de ruptura, hacer más cuando el precio rompe los puntos altos de la línea K de tres minutos y cerrar cuando rompe los puntos bajos. La estrategia es adecuada para el comercio en el día, cerrar la posición al cierre del día y continuar el comercio al día siguiente. La estrategia tiene la ventaja de ser simple y fácil de entender, fácil de implementar y de riesgo relativamente bajo.
La estrategia se basa en la ruptura de los puntos altos y bajos de la línea K de tres minutos y se aplica a las operaciones diarias. La ventaja es que es simple y fácil de entender, fácil de implementar, el riesgo es relativamente bajo. Pero también hay algunos riesgos, como cuando la volatilidad del mercado es grande, puede haber una gran retirada.
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Banknifty Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// Parameters
start_date = input(timestamp("2024-01-01 00:00"), title="Start Date")
end_date = input(timestamp("2024-06-07 23:59"), title="End Date")
// Time settings
var startTime = timestamp("2024-06-09 09:15")
var endTime = timestamp("2024-06-09 09:24")
// Variables to store the 3rd 3-minute candle
var bool isCandleFound = false
var float thirdCandleHigh = na
var float thirdCandleLow = na
var float baseCandleHigh = na
var float baseCandleLow = na
var float entryPrice = na
var float targetPrice = na
// Check if the current time is within the specified date range
inDateRange = true
// Capture the 3rd 3-minute candle
if (inDateRange and not isCandleFound)
var int candleCount = 0
if (true)
candleCount := candleCount + 1
if (candleCount == 3)
thirdCandleHigh := high
thirdCandleLow := low
isCandleFound := true
// Wait for a candle to close above the high of the 3rd 3-minute candle
if (isCandleFound and na(baseCandleHigh) and close > thirdCandleHigh)
baseCandleHigh := close
baseCandleLow := low
// Strategy logic for buying and selling
if (not na(baseCandleHigh))
// Buy condition
if (high > baseCandleHigh and strategy.opentrades == 0)
entryPrice := high
targetPrice := entryPrice + 100
strategy.entry("Buy", strategy.long, limit=entryPrice)
// Sell condition
if (low < baseCandleLow and strategy.opentrades == 0)
entryPrice := low
targetPrice := entryPrice - 100
strategy.entry("Sell", strategy.short, limit=entryPrice)
// Exit conditions
if (strategy.opentrades > 0)
// Exit BUY trade when profit is 100 points or carry forward to next day
if (strategy.position_size > 0 and high >= targetPrice)
strategy.exit("Take Profit", from_entry="Buy", limit=targetPrice)
// Exit SELL trade when profit is 100 points or carry forward to next day
if (strategy.position_size < 0 and low <= targetPrice)
strategy.exit("Take Profit", from_entry="Sell", limit=targetPrice)
// Close trades at the end of the day
if (time == timestamp("2024-06-09 15:30"))
strategy.close("Buy", comment="Market Close")
strategy.close("Sell", comment="Market Close")
// Plotting for visualization
plotshape(series=isCandleFound, location=location.belowbar, color=color.red, style=shape.labeldown, text="3rd 3-min candle")
plot(baseCandleHigh, title="Base Candle High", color=color.green, linewidth=2, style=plot.style_line)
plot(baseCandleLow, title="Base Candle Low", color=color.red, linewidth=2, style=plot.style_line)