Diese Strategie ist eine quantitative Handelsstrategie, die auf dem Bollinger Bands-Indikator und dem Relative Strength Index (RSI) basiert.
Die Handelssignale dieser Strategie stammen aus dem kombinierten Urteil von doppelten Bollinger Bands und RSI-Indikatoren. Unter ihnen ist der Bollinger Bands-Indikator der Volatilitätskanal, der auf der Grundlage der Preisstandardabweichung berechnet wird. Er erzeugt Handelssignale, wenn sich der Preis dem Kanal nähert oder berührt. Der RSI-Indikator beurteilt die Überkauf- und Überverkaufssituation des Preises.
Insbesondere wird ein Kaufsignal erzeugt, wenn der Schlusskurs unter der unteren Schiene von 1,0 Standardabweichungen liegt und der RSI gleichzeitig größer als 42 ist. Ein Verkaufssignal wird erzeugt, wenn der Schlusskurs gleichzeitig über der oberen Schiene von 1,0 Standardabweichungen liegt und der RSI größer als 70 ist. Darüber hinaus legt diese Strategie auch zwei Sätze von BB- und RSI-Parametern fest, die jeweils für den Einstieg und den Stop-Loss-Schlusspositionen verwendet werden. Diese Parameter sind optimale Werte, die durch umfangreiches Backtesting und maschinelles Lernen erhalten werden.
Der größte Vorteil dieser Strategie ist die Genauigkeit der Parameter. Durch maschinelle Lernmethoden wird jeder Parameter durch umfassendes Backtesting erhalten, um das beste Sharpe-Verhältnis zu erzielen. Dies gewährleistet sowohl die Rendite der Strategie als auch Risiken. Darüber hinaus verbessert die Kombination von doppelten Indikatoren auch die Genauigkeit und Gewinnrate von Signalen.
Das Hauptrisiko dieser Strategie liegt in der Einstellung von Stop-Loss-Punkten. Wenn der Stop-Loss-Punkt zu groß eingestellt ist, wird er die Verluste nicht effektiv kontrollieren. Darüber hinaus erhöht er, wenn der Stop-Loss-Punkt andere Handelskosten wie Provisionen und Slippage nicht richtig berechnet, auch die Risiken. Um Risiken zu reduzieren, wird empfohlen, den Stop-Loss-Größenparameter anzupassen, um die Handelsfrequenz zu reduzieren, während eine angemessene Stop-Loss-Position berechnet wird.
Es gibt immer noch Raum für weitere Optimierung dieser Strategie. Zum Beispiel können Sie versuchen, die Längeparameter von Bollinger Bands zu ändern oder die Überkauf- und Überverkaufsschwellen des RSI anzupassen. Sie können auch versuchen, andere Indikatoren einzuführen, um eine Multi-Indikatoren-Kombination aufzubauen. Dies kann den Gewinnraum und die Stabilität der Strategie erhöhen.
Diese Strategie kombiniert doppelte BB-Indikatoren und RSI-Indikatoren und erhält durch maschinelle Lernmethoden optimale Parameter, um hohe Renditen und kontrollierbare Risikoniveaus zu erzielen.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Bunghole 2020 strategy(overlay=true, shorttitle="Flawless Victory Strategy" ) // Stoploss and Profits Inputs v1 = input(true, title="Version 1 - Doesn't Use SL/TP") v2 = input(false, title="Version 2 - Uses SL/TP") stoploss_input = input(6.604, title='Stop Loss %', type=input.float, minval=0.01)/100 takeprofit_input = input(2.328, title='Take Profit %', type=input.float, minval=0.01)/100 stoploss_level = strategy.position_avg_price * (1 - stoploss_input) takeprofit_level = strategy.position_avg_price * (1 + takeprofit_input) //SL & TP Chart Plots plot(v2 and stoploss_input and stoploss_level ? stoploss_level: na, color=color.red, style=plot.style_linebr, linewidth=2, title="Stoploss") plot(v2 and takeprofit_input ? takeprofit_level: na, color=color.green, style=plot.style_linebr, linewidth=2, title="Profit") // Bollinger Bands 1 length = 20 src1 = close mult = 1.0 basis = sma(src1, length) dev = mult * stdev(src1, length) upper = basis + dev lower = basis - dev // Bollinger Bands 2 length2 = 17 src2 = close mult2 = 1.0 basis2 = sma(src1, length2) dev2 = mult2 * stdev(src2, length2) upper2 = basis2 + dev2 lower2 = basis2 - dev2 // RSI len = 14 src = close up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) // Strategy Parameters RSILL= 42 RSIUL= 70 RSILL2= 42 RSIUL2= 76 rsiBuySignal = rsi > RSILL rsiSellSignal = rsi > RSIUL rsiBuySignal2 = rsi > RSILL2 rsiSellSignal2 = rsi > RSIUL2 BBBuySignal = src < lower BBSellSignal = src > upper BBBuySignal2 = src2 < lower2 BBSellSignal2 = src2 > upper2 // Strategy Long Signals Buy = rsiBuySignal and BBBuySignal Sell = rsiSellSignal and BBSellSignal Buy2 = rsiBuySignal2 and BBBuySignal2 Sell2 = rsiSellSignal2 and BBSellSignal2 if v1 == true strategy.entry("Long", strategy.long, when = Buy, alert_message = "v1 - Buy Signal!") strategy.close("Long", when = Sell, alert_message = "v1 - Sell Signal!") if v2 == true strategy.entry("Long", strategy.long, when = Buy2, alert_message = "v2 - Buy Signal!") strategy.close("Long", when = Sell2, alert_message = "v2 - Sell Signal!") strategy.exit("Stoploss/TP", "Long", stop = stoploss_level, limit = takeprofit_level)