
Die Strategie erzeugt ein Handelssignal durch die Berechnung des letzten Stopp- und des letzten Aufschwungspreises in Kombination mit der Beurteilung des aktuellen Preises, ob der Preis in eine bestimmte Zone eingetreten ist. Wenn der Preis einen bestimmten Prozentsatz des vorherigen Stopp-Preises überschreitet, wird ein Plus getätigt, wenn der Preis einen bestimmten Prozentsatz des vorherigen Aufschwungs-Preises unterliegt, wird ein Minus getätigt.
Die Strategie berechnet zunächst den letzten Stopp lastbull und den letzten Stopp lastbear. Dann berechnet man den Anteil der Veränderung des aktuellen Preises close gegenüber lastbull, dddl, und den Anteil der Veränderung des Preises close gegenüber lastbear, dds.
Wenn ddl unter dem konfigurierten Mehrsignal-Threshold signallong ist, erzeugt das Mehrsignal up, wenn dds über dem konfigurierten Hohlsignal-Threshold signalshort ist, erzeugt das Hohlsignal dn。
Wenn Sie mehrere Parameter benötigen, müssen Sie mehrere Positionen eröffnen. Wenn Sie mehrere Parameter benötigen, müssen Sie mehrere Positionen eröffnen.
Die Bedingungen für die Ausgleichsposition sind, dass ein Anstieg des Preises nach dem Eröffnen einer Überposition eine Ausgleichsposition bedeutet, und ein Rückgang des Preises nach dem Eröffnen einer Leerposition eine Leerposition.
Die Strategie kombiniert Trend- und Bandbrechungsurteile und kann sowohl Trends erfassen als auch Bandbrechungen nutzen, um Handelssignale zu erzeugen. Sie bietet mehr Flexibilität beim Short-Switching. Im Vergleich zu einer einfachen Trend-Tracking-Strategie kann die neue Trendrichtung schnell nach einem Bandbrecher erfasst werden.
Die Parameter sind räumlich konfigurierbar und können flexibel angepasst werden, um die Parameter für die Mehrfach-Laufzeit an die verschiedenen Sorten anzupassen. Die Lageröffnungszeiten können konfiguriert werden, um wichtige Zeitpunkte zu vermeiden.
Die Strategie hat keine Stop-Loss-Mechanismen und kann keine Einzelschäden wirksam kontrollieren. Wenn die Handelsspanne der Sorten stark schwankt, ist die Positionsberechnung von Preise beeinflusst.
Ein Stop-Loss kann eingestellt werden, um den Einzelschaden zu begrenzen. Die Positionsalgorithmen können nach verschiedenen Varianten eingestellt werden, um die Positionen stabiler zu machen.
Die Strategie integriert Trendbeurteilung und Bündelung, um Handelssignale zu erzeugen. Sie kann sowohl neue Trendrichtungen erfassen als auch Bündelungsschwankungen nutzen. Die Parameter sind flexibel eingestellt und können für verschiedene Sorten angepasst werden. Die Strategie hat viel Optimierungsraum und kann aus mehreren Perspektiven verbessert werden, um sich an kompliziertere Marktumgebungen anzupassen.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Noro's DDL Strategy", shorttitle = "DDL str", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
needlong = input(true, title = "Long")
needshort = input(true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
signalshort = input(3.0, title = "Short, %")
signallong = input(-3.0, title = "Long, %")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Levels
bull = close > close[1] ? 1 : 0
bear = close < close[1] ? 1 : 0
lastbull = 0.0
lastbull := bull ? close : lastbull[1]
lastbear = 0.0
lastbear := bear ? close : lastbear[1]
//Signals
ddl = ((close / lastbull) - 1) * 100
up = ddl < signallong
dds = ((close / lastbear) - 1) * 100
dn = dds > signalshort
//Lines
plot(dds, style = plot.style_area, color = color.red, transp = 0)
plot(ddl, style = plot.style_area, color = color.lime, transp = 0)
plot(0, color = color.black, linewidth = 2, transp = 0)
//Background
col = (up and needlong) or (dn and needshort) ? color.yellow : na
bgcolor(col, transp = 20)
//Orders
lot = 0.0
lot := strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
truetime = true
if up
strategy.entry("Long", strategy.long, lot, when = needlong and truetime)
if dn
strategy.entry("Short", strategy.short, lot, when = needshort and truetime)
if strategy.position_size > 0 and close > open
strategy.entry("Close", strategy.short, 0)
if strategy.position_size < 0 and close < open
strategy.entry("Close", strategy.long, 0)