Diese Strategie trägt den Namen
Die Idee hinter dieser Strategie stammt von Tushar Chande, dem Schöpfer der Aroon-Linien. Chande schlug vor, dass Aufwärtstrends und Abwärtstrends erkannt werden können, wenn der Aroon-Oszillator über oder unter 50 liegt. Dies hilft, die Mängel einfacher Aroon-Linien und Kreuzungen in nicht-trendigen Perioden zu mildern.
Der Oszillator wird berechnet, indem die Down-Linie von der Up-Linie abgezogen wird. Die mittlere Linie wird dann auf -25, die obere Schiene auf 75 und die untere Schiene auf -85 gesetzt. Wenn der Oszillator über die mittlere Linie geht, wird eine Long-Position geöffnet. Wenn er unten geht, wird eine Short-Position geöffnet. Die Ausgangszustände schließen lang, wenn der Oszillator über die obere Schiene geht, und schließen kurz, wenn er unter die untere Schiene geht.
So wird die mittlere Linie verwendet, um die Trendrichtung zum Eintritt zu bestimmen, die oberen und unteren Schienen werden verwendet, um bei Trendumkehr auszusteigen, um einen automatisierten Handel auf der Grundlage des Aroon-Oszillators zu realisieren.
Im Vergleich zu traditionellen Trendfolgestrategien weist diese Strategie folgende Vorteile auf:
Zusammenfassend lässt sich sagen, dass die Strategie durch die Kombination der Stärken des Aroon-Oszillators einen automatisierten Handel mit bestimmten Vermögenswerten mit einer guten Gewinnrate und Rentabilität ermöglicht.
Diese Strategie birgt auch einige Risiken:
Diese Risiken können durch Anpassung von Parametern und Optimierung des Codes reduziert und verbessert werden.
Um die Strategieleistung weiter zu verbessern, können Optimierungen in den folgenden Bereichen vorgenommen werden:
Durch umfassende Tests und Optimierungen können die Stabilität, Gewinnrate und Rentabilität der Strategie erheblich verbessert werden.
Diese Strategie erzielte kreativ den automatisierten Handel mit Vermögenswerten mit hoher Volatilität und unklaren Trends basierend auf dem Aroon-Oszillator-Indikator. Im Vergleich zu traditionellen Trendstrategien leistet sie bei diesen Vermögenswerten bessere Leistungen und ihre strengen Handelsbedingungen werden auch durch Parameter-Einstellungen erreicht. Die Vorteile der Strategie sind bemerkenswert, aber es gibt immer noch Raum für Verbesserung. Weitere Verbesserung kann durch gezielte Optimierungen erzielt werden. Die Strategie bietet eine Referenz für quantitative Handelspraktiken.
/*backtest start: 2023-12-15 00:00:00 end: 2024-01-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // by Saucius Finance https://saucius-finance.blogspot.com/ // copyrights reserved :) // This strategy derives form the consideration of the author, Tushar Chande, that, in "more patterns" paragraph, // long and short trends are identified by oscillator < or > line 50. // This helps because simple Aroon and Aroon crosses suffer in not trending periods. // original article avabile in:" Stocks & Commodities, V. 13:9 (369-374) : A Time Price Oscillator by Tushar Chande, Ph.D."" strategy("Aroon Oscillator strategy by Saucius", overlay=false) //building aroon lines, Embodying both Aroon line (Up and Down) and Aroon Oscillator length = input(19, minval=1) level_middle = input(-25, minval=-90, maxval=90, step = 5) levelhigh = input(75, minval=-100, maxval=100, step = 5) levellow = input(-85, minval=-100, maxval=100, step = 5) upper = 100 * (highestbars(high, length+1) + length)/length lower = 100 * (lowestbars(low, length+1) + length)/length oscillator = upper - lower plot(upper, title="Aroon Up", color=blue) plot(lower, title="Aroon Down", color=red) plot(oscillator, title="Aroon Oscillator", color = yellow) hline(level_middle, title="middle line", color=gray, linewidth=2) hline(levelhigh, title ="upper border", color=gray, linewidth=1) hline(levellow, title ="lower border", color=gray, linewidth=1) // Entry // entryl = oscillator[1] < level_middle[1] and oscillator > level_middle entrys = oscillator[1] > level_middle[1] and oscillator < level_middle strategy.entry("Long", true, when = entryl) strategy.entry("Short", false, when = crossunder (oscillator, level_middle)) // === EXIT=== exitL1 = oscillator[1] > levelhigh[1] and oscillator < levelhigh exitS1 = oscillator[1] < levellow[1] and oscillator > levellow strategy.close("Long", when=entrys) strategy.close("Short", when=entryl) strategy.close("Long", when= exitL1) strategy.close("Short", when= exitS1)