Diese Strategie basiert auf einer Moving Average-basierten Multiple-Streaming-Strategie. Sie verwendet drei verschiedene Moving Averages, um Handelssignale zu erzeugen. Wenn der Preis den Moving Average hochgeht, wird er überschritten, und wenn er untergeht, wird er unterbrochen.
Die Strategie verwendet die SMA-Funktion, um einen gleitenden Durchschnitt mit der Länge len, ma, zu berechnen. Anschließend wird ein gleitender Durchschnitt mit einem bestimmten Prozentsatz von drei Gleitungen, longline1, longline2 und longline3 berechnet, wobei longline1 -4%, longline2 -5% und longline3 -6% gleitet.
Wenn ein Kaufsignal erzeugt wird, eröffnet der Käufer, wenn er keine Position hat, eine Position, wenn der Preis die Longline 1 durchläuft. Wenn er eine Position hat, eröffnet er eine Hand, wenn der Preis die Longline 2 durchläuft. Wenn er eine Position hat, eröffnet er eine Hand, wenn der Preis die Longline 3 durchläuft.
Wenn ein Verkaufssignal erzeugt wird, wird ein Überlagerung der aktuellen Position und ein Leerlagerung der Ma-Position erzeugt, wenn der Preis nach unten geht.
Die Strategie kann mehr tun, indem sie die Trends auf einer Reihe von Stufen aufteilt.
Die Risiken können auf folgende Weise gelöst werden:
Diese Strategie kann in folgenden Bereichen optimiert werden:
Hinzufügen von anderen Indikatoren, um die Richtung der Tendenz zu bestimmen, z. B. die Einbeziehung der MACD, um die Trendstärke zu bestimmen
Optimierung der Moving Average-Parameter, um die optimale Kombination von Parametern zu finden
Die Anzahl und das Verhältnis der Überschneidungen in den Gruppen werden angepasst, um eine Nachholung zu verhindern.
Erweiterte mobile Stop-Mechanismen, die Stop-Loss-Positionen auf Basis der ATR einstellen können
Die Positionsanzahl kann je nach Schwankungen der Marktrate angepasst werden und bei starken Schwankungen abgebaut werden.
Testen Sie die Wirkung der verschiedenen Sortenparameter, um die Sorten zu finden, die am besten zu der Strategie passen
Entwicklung eines Exit-Moduls, das den Ausgang von Stopps bei bestimmten Formen berücksichtigt
Insgesamt kann die Strategie mit einem Moving Average handeln, um die Richtung des Trends zu bestimmen, und die Trends können durch die Einheit der Größenordnung der Größenordnung verfolgt werden. Es besteht jedoch ein gewisser Rückstand und ein erhöhtes Risiko.
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")
//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult
//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)
//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
lots := round(size / lot)
strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
lots := round(size / lot)
strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
lots := round(size / lot)
strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
strategy.entry("TP", strategy.short, 0, limit = ma)