이 전략의 주요 아이디어는 3분 촛불의 높고 낮은 지점을 브레이크아웃 지점으로 사용하는 것입니다. 가격이 3분 촛불의 높이를 넘으면 길게 갈 것이고, 낮을 넘으면 짧게 갈 것입니다. 이 전략은 내일 거래에 적합하며, 매일의 끝에서 포지션을 닫고 다음 날 거래를 계속합니다. 이 전략의 장점은 비교적 낮은 위험으로 간단하고 이해하기 쉽고 구현하기 쉽다는 것입니다. 그러나 시장 변동성이 높을 때 큰 인하의 가능성과 같은 이 전략과 관련된 몇 가지 위험도 있습니다.
이 전략은 3분 촛불의 높은 점과 낮은 점의 브레이크아웃을 기반으로 하며, 내일 거래에 적합하다. 이의 장점은 상대적으로 낮은 위험으로 간단하고 이해하기 쉽고 구현하기 쉽다는 것이다. 그러나 시장 변동성이 높을 때 큰 드라우다운의 가능성과 같은 몇 가지 위험도 있다. 전략의 안정성과 수익성을 향상시키기 위해서는 신호 필터링, 오픈 시간을 최적화, 수익을 취하고 스톱-러스 포인트를 최적화하고 포지션 관리를 추가하는 측면에서 최적화하는 것을 고려해야 한다.
/*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)