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.
Die wichtigsten Regeln dieser Strategie sind:
Wenn der Schlusskurs über einem Schlüsselpreisniveau liegt und diesen in den letzten 10 Bars nicht erreicht hat, gehen Sie lang.
Verwenden Sie einen Trailing-Stop mit einem 20-Punkte-Schritt, um der Bewegung nach dem Preis die Schlüsselstufe zu folgen.
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.
Die Schlüsselwerte sind:
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.
Die Vorteile dieser Strategie sind:
Die zu berücksichtigenden Risiken sind:
Mögliche Lösungen:
Die Strategie kann verbessert werden, indem
Hinzufügen von weiteren Bedingungen, um die Bedeutung von Schlüsselstufen zu bestätigen und Fälschungen zu vermeiden.
Optimierung von Parametern wie Schlüsselstandsbereich und Rückblick auf Basis von Instrumenteneigenschaften.
Verbesserung des Stopp-Mechanismus für die Rückfahrt, z. B. Verwendung einer dynamischen statt einer festen Spur.
Einbeziehung von maschinellem Lernen zur Beurteilung der Stärke von Schlüsselstufen anhand historischer Daten.
Erweiterung auf ein Multi-Timeframe-System mit höherem TF-Trend und geringerer TF-Verfolgung.
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)