Die Strategie basiert auf der DSP, einer Binär-Equal-Line-Trading-Strategie. Die DSP ist eine Funktion, die mit der realen Preis-Dominanz-Zyklus synchronisiert ist, und wird durch die Berechnung von 1⁄4-Zyklus-EMA abzüglich 1⁄2-Zyklus-EMA erhalten. Einseitige Transaktionen werden getätigt, wenn der DSP auf oder unter dem Kurs ist.
Berechnen Sie den 1⁄2-Zyklus-Durchschnittswert des Preises xHL2.
Berechnen Sie die 1⁄4-Zyklus-EMA ((xEMA1) und die 1⁄2-Zyklus-EMA ((xEMA2) von xHL2 nach dem Parameter Length.
Berechnen Sie xEMA1 minus xEMA2 und erhalten Sie den Trend-Synthesepreis DSP。
Setzen Sie die Parameter auf-und-unter-Schiene, wenn der DSP auf und leer ist, wenn er auf und leer ist.
Die Reverse-Parameter-Switching ermöglicht mehrere Freiraum-Richtungen.
Diese Strategie hat folgende Vorteile:
DSPs können den Preis-dominierten Kreislauf erfassen und vermeiden, dass sie von den sekundären Kreisläufen getäuscht werden.
Die doppelte EMA-Konstruktion ermöglicht eine effiziente Verfolgung der dominierenden Kreislaufveränderungen.
Die Bahn ist leicht zu befahren und verhindert Übertrieb.
Es ist leicht zu wechseln und kann in verschiedene Marktumgebungen eingesetzt werden.
Die Optimierung der Parameter ist nicht kompliziert, einfach und praktisch.
Die wichtigsten Risiken dieser Strategie sind:
Die DSP-Periode ist falsch eingestellt und könnte den dominierenden Kreislauf übersehen haben.
Die Ober- und Unterbahnbreite muss optimiert werden, sonst könnte es zu viel Handel geben.
Das Design ist in einem festen Zyklus und hat schlechte Anpassungsfähigkeit an stark wechselnde Märkte.
Der DSP-Handel allein ist anfällig für die Überschneidung durch die Schwingung der Marktsituation.
Die Gefahr eines erheblichen Verlustes ist nicht berücksichtigt.
Diese Strategie kann optimiert werden durch:
Optimierung der Parameter und Suche nach der optimalen Kombination der Periodiparameter.
Hinzugefügt wird ein dynamischer Auf- und Abfahrtsschema basierend auf der Fluktuation.
Filter in Kombination mit Trends und Volatilitätsindikatoren, um falsche Signale zu reduzieren.
Erhöhung der mobilen Stop-Loss- oder Tracking-Stop-Loss-Risiko.
Anpassung der Parameter für mehrere Sorten und Bewertung der Allgemeingültigkeit.
Die Zugabe von Machine Learning-Algorithmen, um die Adaptionsoptimierung des DSP-Zyklus zu realisieren.
Die Strategie als Ganzes ist eine sehr einfache und praktische Binär-Equilibrium-Handelsstrategie. Sie basiert auf einer vernünftigen Zyklusanalyse und verfolgt den dominierten Kreislauf effektiv durch DSP. Verbesserungen in den Bereichen Parameteroptimierung, Stop-Loss-Mechanismen, Filterbedingungen usw. können zu einer zuverlässigen quantitativen Handelsstrategie werden.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/03/2017
// Detrended Synthetic Price is a function that is in phase with the
// dominant cycle of real price data. This DSP is computed by subtracting
// a half-cycle exponential moving average (EMA) from the quarter cycle
// exponential moving average.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="D_DSP (Detrended Synthetic Price)", shorttitle="D_DSP")
Length = input(14, minval=1)
SellBand = input(25)
BuyBand = input(-25)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(SellBand, color=red, linestyle=line)
hline(BuyBand, color=green, linestyle=line)
xHL2 = hl2
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
pos = iff(xEMA1_EMA2 > SellBand, 1,
iff(xEMA1_EMA2 < BuyBand, -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(xEMA1_EMA2, color=blue, title="D_DSP")