N 바스 브레이크아웃 전략 (N Bars Breakout Strategy) 은 가격 브레이크아웃을 기반으로 한 양적 거래 전략이다. 이 전략의 주요 아이디어는 폐쇄 가격이 지난 N 바의 가장 높은 수준을 넘어서면 긴 포지션을 열고 종료 가격이 지난 N 바의 가장 낮은 수준을 넘어서면 긴 포지션을 닫는 것입니다. 현재의 가격을 과거 N 바의 가장 높은 가격과 가장 낮은 가격과 비교함으로써이 전략은 강력한 브레이크아웃 움직임을 포착하고 트렌드 다음 효과를 달성하는 것을 목표로합니다.
N 바스 브레이크아웃 전략 (N Bars Breakout Strategy) 은 가격 브레이크아웃을 포착함으로써 좋은 트렌드 추후 효과를 달성하는 간단하고 실용적인 양적 거래 전략이다. 전략은 명확한 논리, 큰 최적화 공간 및 광범위한 적용 가능성을 가지고 있으며, 추가 연구 및 최적화를 가치가 있는 양적 전략이다. 합리적인 매개 변수 최적화 및 논리 개선을 통해이 전략의 안정성과 수익성이 더 향상되어 다른 시장 환경에 더 잘 적응 할 수 있습니다.
/*backtest start: 2023-04-06 00:00:00 end: 2024-04-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Breakout", overlay=true, precision=6, pyramiding=0, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=25.0, commission_value=0.05) n = input.int(5, "N Bars", minval=1) src_input = input.string("Close", "Source", ["Close", "High/Low"]) bull_src = switch src_input "Close" => close "High/Low" => high => runtime.error("Invalid source input") na bear_src = switch src_input "Close" => close "High/Low" => low => runtime.error("Invalid source input") na highest = ta.highest(bull_src[1], n) lowest = ta.lowest(bear_src[1], n) //----------------------------------------------------------------------------------------------------------------------------------------------------------------- // Plots //----------------------------------------------------------------------------------------------------------------------------------------------------------------- bool long = ta.crossover(bull_src, highest) bool short = ta.crossunder(bear_src, lowest) //Plots lowest_plot = plot(lowest, color=color.red, title="Lowest") highest_plot = plot(highest, color=color.green, title="Highest") bull_src_plot = plot(bull_src, color=color.blue, title="Bull") bear_src_plot = plot(bear_src, color=color.orange, title="Bear") // this message is an alert that can be sent to a webhook, which allows for simple automation if you have a server that listens to alerts and trades programmatically. enter_long_alert = '{"side": "Long", "order": "Enter", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}' exit_long_alert = '{"side": "Long", "order": "Exit", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}' if long strategy.entry(id="Long", direction=strategy.long, limit=open, alert_message=enter_long_alert) if short strategy.close(id="Long", comment="Close Long", alert_message=exit_long_alert)