Strategie zur Nachverfolgung von Rundnummern

Schriftsteller:ChaoZhang, Datum: 21.09.2023
Tags:

Übersicht

Diese Strategie basiert auf der Idee, dass Stop-Loss- und Take-Profit-Niveaus oft an runden Zahlen oder Schlüsselpreisniveaus platziert werden, die als Unterstützung und Widerstand fungieren.

Strategie Logik

Die wichtigsten Regeln dieser Strategie sind:

  1. Wenn der Schlusskurs über einem Schlüsselpreisniveau liegt und diesen in den letzten 10 Bars nicht erreicht hat, gehen Sie lang.

  2. Verwenden Sie einen Trailing-Stop mit einem 20-Punkte-Schritt, um der Bewegung nach dem Preis die Schlüsselstufe zu folgen.

  3. Verkaufssignale sind das Gegenteil - wenn der Schlusspunkt unter dem Schlüsselstand liegt und ihn in den letzten 10 Balken nicht berührt hat, gehen Sie kurz.

  4. Die Schlüsselwerte sind:

    • Konvertieren Sie den Schlusskurs in eine ganze Zahl
    • Berechnen Sie den Rest aus der Division durch 50 (konfigurierbar)
    • Wenn der Restwert > 25 ist, wird die nächste ganze Zahl 50 als Schlüsselstufe verwendet.
    • Ansonsten bleibt die Schlüsselstufe unverändert.

Die Strategie basiert auf der Psychologie, dass runde Zahlen und Schlüsselniveaus oft Schlachtfelder für Bullen und Bären sind und somit effektive Handelssignale liefern.

Vorteile

Die Vorteile dieser Strategie sind:

  1. Einfache und intuitive Handelssignale und Einstiegsregeln.
  2. Verwendet ein universelles Muster von Schlüsselpreisen anstelle von instrumentenspezifischen Regeln.
  3. Ein Trailing-Stop schließt den Gewinn ein, während man den Trend fährt.

Risiken

Die zu berücksichtigenden Risiken sind:

  1. Es kann sein, dass Schlüsselniveaus nicht immer als starke Unterstützung/Widerstand wirken.
  2. Ein festes 10-bar-Lookback ist möglicherweise nicht für verschiedene Instrumente geeignet.
  3. Die Hinterhaltentfernung sollte nicht zu groß sein, sonst kann es vorzeitig aussteigen.

Mögliche Lösungen:

  1. Hinzufügen von mehr Filtern, um die Stärke von Schlüsselstufen, z. B. Volumen, zu beurteilen.
  2. Optimieren von Parametern wie der Lookback Periode für verschiedene Instrumente.
  3. Optimieren Sie den Stoppmechanismus, damit er sich besser anpasst.

Möglichkeiten zur Verbesserung

Die Strategie kann verbessert werden, indem

  1. Hinzufügen von weiteren Bedingungen, um die Bedeutung von Schlüsselstufen zu bestätigen und Fälschungen zu vermeiden.

  2. Optimierung von Parametern wie Schlüsselstandsbereich und Rückblick auf Basis von Instrumenteneigenschaften.

  3. Verbesserung des Stopp-Mechanismus für die Rückfahrt, z. B. Verwendung einer dynamischen statt einer festen Spur.

  4. Einbeziehung von maschinellem Lernen zur Beurteilung der Stärke von Schlüsselstufen anhand historischer Daten.

  5. Erweiterung auf ein Multi-Timeframe-System mit höherem TF-Trend und geringerer TF-Verfolgung.

Schlussfolgerung

Diese Strategie bietet einfache und intuitive Signale basierend auf wichtigen Preisniveaus und Handelskonventionen. Sie bietet viele Möglichkeiten, muss aber weiter optimiert werden, um Fakeouts zu bewältigen. Parameter-Tuning und maschinelles Lernen können die Robustheit verbessern. Sie bietet gute Tageshandelsideen und kann auch auf ein Multi-Timeframe-Trend-Tracking-System erweitert werden.


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Strategy based on the idea that stop loss and take profit are often placed at full price levels or round numbers, whcih acts as resistance and supports levels
//Buy Rules:
//Actual price (close) is above round number.
//Round number level was not touched in previous ten bars (arbitrary value).
//Place a buy and follow the order with a trail step because price can bounce at round number (support) or can go through it.
//Sell Rules are the same of buy rules but inverted.
//
//Need improvement on conditions' logic and round numbers definitions


strategy("dP magnet", overlay=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

//Round Levels credit to RKchartest

roundLevel50 = input(500, 'Round Level 1, pips')
//roundLevel100 = input(1000, 'Round Level 2, pips')
deviation = input(1000, 'Max distance, pips', minval=0) 

rDelimeter = 1/syminfo.mintick

intRoundLevel = close[1] * rDelimeter

intRemainder = intRoundLevel % roundLevel50 
toRound = (intRemainder >= roundLevel50/2) ? roundLevel50 : 0
roundLevel = (intRoundLevel - intRemainder + toRound) / rDelimeter
plot(roundLevel, title='Round Level 1', color=black, style=line, transp=0, linewidth=1, trackprice=false)

//intRemainder2 = intRoundLevel % roundLevel100
//toRound2 = (intRemainder2 >= roundLevel100/2) ? roundLevel100 : 0
//roundLevel2 = (intRoundLevel - intRemainder2 + toRound2) / rDelimeter
//plot((abs(roundLevel2 - close) * rDelimeter < deviation) ? roundLevel2 : na, title='Round Level 2', color=black, style=circles, transp=0, linewidth=1, trackprice=true)

// end

//Start of strategy

distToFullNumber=(close-roundLevel) //can be positive or negative number

distPips=input(100,'Distance in pips to full level',minval=10) //user defined: this distance defines when to open an order at market price


TrailS=input(20,'Trail Step points',minval=10) //trail step that follows the order

longCondition = iff(distToFullNumber>0 and abs(distToFullNumber)<=distPips and lowest(low,10)>roundLevel,true,false)

if (longCondition)
    strategy.entry("LongMagnet", strategy.long)
    strategy.exit("ExitMagnet","LongMagnet",trail_points=TrailS)

shortCondition = iff(distToFullNumber<0 and abs(distToFullNumber)<=distPips and highest(high,10)<roundLevel,true,false)

if (shortCondition)
    strategy.entry("ShortMagnet", strategy.short)
    strategy.exit("Exit_Magnet","ShortMagnet",trail_points=TrailS)
    

Mehr