Die N-Bars-Breakout-Strategie ist eine quantitative Handelsstrategie, die auf Preis-Breakouts basiert. Die Hauptidee dieser Strategie besteht darin, eine Long-Position zu eröffnen, wenn der Schlusskurs über das höchste Niveau der letzten N-Bars bricht, und die Long-Position zu schließen, wenn der Schlusskurs unter das niedrigste Niveau der letzten N-Bars bricht. Durch den Vergleich des aktuellen Preises mit den höchsten und niedrigsten Preisen der letzten N-Bars zielt diese Strategie darauf ab, starke Breakout-Bewegungen zu erfassen und den Effekt des Trendfolgens zu erzielen.
Die N Bars Breakout Strategie ist eine einfache und praktische quantitative Handelsstrategie, die durch die Erfassung von Preis-Breakouts gute Trend-nachfolgenden Effekte erzielt. Die Strategie hat eine klare Logik, einen großen Optimierungsraum und eine breite Anwendbarkeit, was sie zu einer quantitativen Strategie macht, die weitere Forschung und Optimierung wert ist. Durch eine angemessene Parameteroptimierung und Logikverbesserung können die Stabilität und Rentabilität dieser Strategie weiter verbessert werden, um sich besser an verschiedene Marktumgebungen anzupassen.
/*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)