该策略的主要思路是利用三分钟K线的高低点作为突破点,当价格突破三分钟K线的高点时做多,突破低点时做空。该策略适用于日内交易,每日收盘时平仓,第二天继续交易。该策略的优势在于简单易懂,容易实现,风险也相对较低。但是该策略也存在一些风险,如市场波动较大时,可能会出现较大的回撤。
该策略基于三分钟K线的高低点突破,适用于日内交易。优势是简单易懂,易于实现,风险相对较低。但是也存在一些风险,如市场波动较大时,可能会出现较大的回撤。可以考虑从过滤信号、优化开仓时间、优化止盈止损点位、加入仓位管理等方面对该策略进行优化,以提高策略的稳定性和盈利能力。
/*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)