Absolute Kursoszillatorentwicklung nach Strategie

Schriftsteller:ChaoZhang, Datum: 21.09.2023
Tags:

Übersicht

Diese Strategie verwendet den Indikator Absolute Price Oscillator (APO), um Handelssignale zu generieren und Trends zu verfolgen.

Strategie Logik

  • Die APO besteht aus einer schnelleren und einer langsameren EMA, wobei die Differenz zwischen ihnen berücksichtigt wird.

  • Wenn der APO über die Kaufzone (Standard 3) geht, geht man lang, wenn er unter die Verkaufszone (Standard -3) geht, geht man kurz.

  • Option zur Umkehrung von Signalen - Überschreitung von Verkauf, Überschreitung von Kauf.

  • Die Kurve zeigt die Preisdynamik, kann Rückschläge bei Divergenzen finden.

Dies ist eine Trendfolgestrategie, die APO verwendet, um die Trendrichtung für anhaltende lange/kurze Signale zu bestimmen.

Vorteile

  • Einfache Implementierung unter Verwendung einer einfachen Kombination von gleitenden Durchschnitten.

  • APO misst die Kursdynamik und -richtung.

  • Standardparameter erzeugen mittelfristige, anhaltende Signale und verhindern einen Überhandel.

  • Kann Trendumkehrungen auf der Grundlage von Preis-Indikator-Divergenzen erkennen.

Risiken

  • Anfällig für falsche Signale und Whipsaws in verschiedenen Märkten.

  • Verzögerungssignale können schnelle Umkehrungen verfehlen.

  • Keine Stop-Loss- oder Positionsgröße, unvollständiges Risikomanagement.

Abmilderung:

  • Optimierung der Parameter und Prüfung verschiedener Kombinationen pro Gerät.

  • Fügen Sie Filter hinzu, um zu vermeiden, dass der Handel in unruhigen Bedingungen stattfindet.

  • Einführung von Stop-Loss, z. B. Trailing Stop.

Möglichkeiten zur Verbesserung

  • Parameteroptimierung für jedes Instrument, um ideale Paare zu finden.

  • Zusätzliche Filter für die Preisbewegung oder das Volumen zur Verringerung falscher Signale.

  • Dynamische Positionsgröße auf der Grundlage von Volatilität oder Konto%

  • Optimierte Gewinnentnahme wie Trailing Stop, um Trends zu folgen.

  • ML zur Bewertung der Wahrscheinlichkeit erfolgreicher Divergenzsignale.

Schlussfolgerung

Dieses EMA-Crossover-System mit APO bietet eine solide Grundlage für die Trendverfolgung. Mit Optimierungen in Parametern, Risikomanagement und Filtern kann es eine effektive quantitative Strategie werden. Das Kernkonzept ist einfach und robust für die weitere Entwicklung.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/09/2018
// The Absolute Price Oscillator displays the difference between two exponential 
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
//    APO crossing above zero is considered bullish, while crossing below zero is bearish.
//    A positive indicator value indicates an upward movement, while negative readings 
//      signal a downward trend.
//    Divergences form when a new high or low in price is not confirmed by the Absolute Price 
//      Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO 
//      forms a higher low. This indicates less downward momentum that could foreshadow a bullish 
//      reversal. A bearish divergence forms when price makes a higher high, but the APO forms a 
//      lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Absolute Price Oscillator (APO) Backtest 2.0", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
BuyZone = input(3, step = 0.01)
SellZone = input(-3, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > BuyZone, 1,
       iff(xAPO < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(xAPO, color=blue, title="APO")

Mehr