Strategie mit niedrigem Durchbruch der durchschnittlichen Umkehrung

Schriftsteller:ChaoZhang, Datum: 2023-11-02 15:34:22
Tags:

img

Übersicht

Die Hauptidee dieser Strategie besteht darin, zu erkennen, ob der Preis den niedrigsten Preis in einem bestimmten Zeitraum durchbricht und lang geht und darauf wartet, dass der Preis zum Durchschnitt zurückkehrt.

Strategie Logik

Die Strategie erhält den niedrigsten Preis in einem bestimmten Zeitraum lowestLow unter Verwendung der ta.lowest-Methode von Pine Script und vergleicht ihn mit dem niedrigsten Preis des vorherigen Zeitraums.

Wenn der niedrigste Preis des letzten Zeitraums lowestLow niedriger ist als der niedrigste Preis des vorherigen Zeitraums preLow, wird ein Long-Signal ausgelöst. Nach dem Long-Gehen wird er mit dem höchsten Preis des angegebenen Zeitraums highestHigh verglichen. Wenn der höchste Preis des letzten Zeitraums größer ist als der vorherige höchste Preis, wird die Position geschlossen.

Die Strategie erlaubt die Auswahl der Auslöserbedingung, d. h. der niedrigste Preis muss 1, 2, 3 oder 4 vorherige niedrigste Preise hintereinander durchbrechen, um die Handelsfrequenz zu steuern.

Es zeigt auch die niedrigste Preislinie niedrigsteNiedrigste und höchste Preislinie höchsteHoch auf dem Diagramm, um die Trendänderung visuell anzuzeigen.

Analyse der Vorteile

  • Die Strategie fängt die Umkehrung des Trends nach dem Durchbrechen neuer Tiefs mit einer relativ hohen Gewinnrate.

  • Ermöglicht die Auswahl der Anzahl der gebrochenen niedrigsten Preise zur Steuerung der Handelshäufigkeit.

  • Das Zeichnen der Linien hilft, die Trendwechselpunkte visuell zu bestimmen.

  • Einfache und klare Strategie-Logik, leicht zu verstehen und umzusetzen.

  • Sie kann für verschiedene Bestände und Zeiträume konfiguriert und optimiert werden.

Risikoanalyse

  • Ein falscher Boden kann keine Trendumkehrpunkte bestimmen und kann zu Verlusten führen.

  • Verschiedene Parameterkombinationen müssen getestet werden, um die Konfiguration zu optimieren, da sonst die Handelsfrequenz zu hoch oder zu niedrig sein kann.

  • Die Parameter müssen für verschiedene Bestände angepasst werden und dürfen nicht mechanisch angewendet werden.

  • Eine unzureichende Rückprüfung kann zu einer Überanpassung führen.

  • Der Preis kann nach dem Ausbruch neue Tiefstände erreichen, müssen Sie einen Stop-Loss setzen, um Risiken zu kontrollieren.

Optimierungsrichtlinien

  • Fügen Sie Stop-Loss-Mechanismen wie bewegliche Stop-Loss, Trailing Stop-Loss hinzu, um den Verlust pro Handel zu begrenzen.

  • Optimieren Sie die Anzahl der Ausbrüche, um die Handelsfrequenz und die Signalqualität auszugleichen.

  • Prüfparameter für verschiedene Bestände und Zeiträume.

  • Fügen Sie Filter hinzu, um häufigen Handel auf verschiedenen Märkten zu vermeiden.

  • Es sollten Trendindikatoren hinzugefügt werden, um einen Gegentrendhandel zu vermeiden.

  • Testen Sie verschiedene Ausstiegssignale.

Schlussfolgerung

Die Strategie erfasst Umkehrchancen, indem sie die niedrigsten Preis-Breakouts überwacht, eine typische Mittelumkehr-Breakout-Strategie. Die Vorteile sind Einfachheit, kontrollierbare Häufigkeit und Anwendbarkeit auf verschiedene Aktien. Aber sie hat auch einige falsche Breakout-Risiken. Filter hinzufügen und optimieren ist notwendig, sowie Risiken zu kontrollieren. Mit umfassendem Testen und Optimieren kann es zu einem stabilen und zuverlässigen Handelssystem werden.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © merovinh

//@version=5
strategy(title="Merovinh - Mean Reversion Lowest low",
     overlay = true,
     default_qty_type = strategy.percent_of_equity,
     initial_capital = 10000,
     default_qty_value = 10,
     commission_type = strategy.commission.percent,
     slippage = 1,
     commission_value = 0.04)

GR_TIME = 'Time Period'

bars = input(9, title = "Minimum number of bars", tooltip = "The minimum number of bars before updating lowest low / highest high")

numberOfLows  = input.string(defval='One', title='Number of broken lows', options=['One', 'Two', 'Three', 'Four'])

//Period

var prevLow = .0
var prevHigh = .0
var prevLow2 = .0
var prevLow3 = .0
var prevLow4 = .0

truetime = true


highestHigh = ta.highest(high, bars)
lowestLow = ta.lowest(low, bars)

if numberOfLows == 'One'
    if truetime and prevLow > 0 and lowestLow < prevLow
        strategy.entry('long', strategy.long)
if numberOfLows == 'Two'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2
        strategy.entry('long', strategy.long)
if numberOfLows == 'Three'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3
        strategy.entry('long', strategy.long)
if numberOfLows == 'Four'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 and prevLow3 < prevLow4
        strategy.entry('long', strategy.long)

if truetime and prevHigh > 0 and highestHigh > prevHigh
    strategy.close('long')


if prevLow != lowestLow
    prevLow4 := prevLow3
    prevLow3 := prevLow2
    prevLow2 := prevLow
    prevLow := lowestLow
prevHigh := highestHigh

plot(lowestLow, color=color.green, linewidth=1, title="Lowest Low Line")
plot(highestHigh, color=color.green, linewidth=1, title="Highest High Line")




Mehr