
이 전략의 주요 아이디어는 3 분 K 선의 높은 낮은 점을 뚫는 점으로 이용하는 것입니다. 가격이 3 분 K 선의 높은 점을 뚫을 때 더 많이 하고, 낮은 점을 뚫을 때 공백한다. 이 전략은 일간 거래에 적합하며, 매일 상장 시 청산하고, 다음날 계속 거래한다. 이 전략의 장점은 간단하고 이해하기 쉽고, 위험도 상대적으로 낮다는 것입니다. 그러나 이 전략에는 위험도 있습니다.
이 전략은 3분 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)