
Die Trend-Tracking-Strategie verwendet mehrere Moving Averages in verschiedenen Perioden, um Trendänderungen in den Preisen zu erfassen, unterstützt durch einen Oszillator-Indikator, um überkaufte und überverkaufte Gebiete zu bestimmen und eine Trend-Tracking-Handelsstrategie zu realisieren. Die Strategie ist für mittlere und lange Positionen geeignet, um die deutlicheren Trendbewegungen zu verfolgen.
Die Strategie verwendet mehrere Gruppen von Moving Averages mit 18-, 26- und 36-Perioden, um die Preisentwicklung zu erfassen. Wenn die kurze Durchschnittslinie über die langfristige Durchschnittslinie überschritten wird, gilt sie als aufsteigend; wenn die kurzfristige Durchschnittslinie unter der langfristigen Durchschnittslinie überschritten wird, gilt sie als rückläufig.
Die Strategie verwendet auch Oszillatorindikatoren wie MACD, RSI und EFI, um Überkauf-Überverkaufszonen zu bestimmen. Die MACD-Säulenlinie wird von einer negativen Positionierung positioniert und von einer negativen Positionierung leer gemacht. Der RSI-Hochpunkt wird bei Rückfall leer gemacht und bei einem niedrigen Rückschritt wird mehr gemacht. Der EFI-Indikator ist kleiner als 0 und größer als 0.
Eintrittsregeln:
Multiple: Durchschnittskurve auf der kurzen Mittellinie und MACD> 0 und RSI-Tiefstandsrückgang und EFI < 0
Blank: Kurze Durchschnittslinie unter der langen Durchschnittslinie AND MACD <0 AND RSI Hochrückgang AND EFI> 0
Die Stop-Loss-Regel:
Mehrfache Stop-Loss: EFI-Wert überschreitet den Wertverlust UND der Preis überschreitet den angegebenen Durchschnitt
Blank Stop Loss: EFI-Wert kleiner als der Wertminderung und Preisbruch des angegebenen Mittelwertes
Robustheit und Anti-Fragilität sind wichtige Merkmale, die helfen, Resilienz im Laufe der Zeit zu gewährleisten, um wichtige Trendwechselpunkte zu erfassen.
Die Oscillator-Indikator-Kombination wird verwendet, um überkaufte und überverkaufte Bereiche zu bestimmen, um zu vermeiden, dass die Höhen und Tiefen verfolgt werden.
Die Stop-Loss-Regel berücksichtigt Trends und Kapitalflüsse und kontrolliert Risiken.
Die Strategieparameter wurden durch wiederholte Tests optimiert und können in den meisten Umgebungen eingesetzt werden.
Die Betriebsfrequenz ist moderat, die Handelssignale sind relativ stabil und ermöglichen eine langfristige Trendverfolgung.
Ein plötzlicher Sturz kann zu Stop-Loss-Effekten führen und sollte entsprechend erweitert werden.
Die Frequenz der Transaktionen kann in unsicheren Zeiten zu hoch sein. Die Parameter sollten entsprechend angepasst werden, um die Frequenz der Transaktionen zu senken.
Eine zu lange Haltedauer kann zu einer Vergrößerung der Verluste führen. Die Durchschnittsperiode sollte entsprechend verkürzt und die Verluste rechtzeitig gestoppt werden.
Es besteht ein Risiko für eine Anpassung bei der Rückmeldung, die Wirksamkeit auf der Festplatte muss noch überprüft werden.
Optimierung der Handelsfrequenz und der Erträge, um die optimale Kombination von Parametern zu finden.
Die Entwicklung von Algorithmen für maschinelles Lernen, dynamische Optimierungsparameter und Anpassung an Marktveränderungen.
Erweiterung der Anpassungs-Stop-Mechanismen mit unterschiedlichen Stop-Werten für verschiedene Situationen.
Die Eintrittszeit wird durch mehr Indikatoren bestimmt, um die strategische Stabilität zu erhöhen.
Erhöhung der Geldmanagementstrategie, Kontrolle der Größe der einzelnen Positionen und Verwaltung des Gesamtrisikos.
Die Strategie hat bereits eine gewisse Stabilität durch Parameteroptimierung, muss jedoch die Risikokontrolle und die Anpassungsmechanismen weiter verbessern, um den Rückzug zu reduzieren und die Gewinnrate zu erhöhen. Insgesamt ist die Strategie als ein einfaches praktisches Trendverfolgungsprogramm, die Kernpsychologie hat eine starke Skalierbarkeit, die weitere Forschung wert ist.
/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © murdocksilva
//@version=5
strategy("Daily_Mid Term_Consulting BOLT")
//calculo longuitud
longuitud = input(58, title= "longitud_sma")
px = ta.sma(close, 1)
px2 = ta.sma(low, 1)
Length1 = input.int(18)
Length2 = input.int(18)
Length3 = input.int(26)
Length4 = input.int(36)
Length5 = input.int(78)
Length6 = input.int(1)
Length7 = input.int(1500)
Length8 = input.int(58)
Length9 = input.int(3000)
Length10 = input.int(2)
Length11 = input.int(14)
ma1 = ta.sma(low, Length1)
ma2 = ta.sma(high, Length2)
ma3 = ta.sma(close, Length3)
ma4 = ta.sma(close, Length4)
ma5 = ta.sma(close, Length5)
ma6 = ta.sma(close, Length6)
ma7 = ta.sma(close, Length7)
ma8 = ta.sma(close, Length8)
ma9 = ta.sma(close, Length9)
ma10 = ta.sma(close, Length10)
ma11 = ta.sma(close, Length11)
// calculo EFI
efi = (close[1]-close) * volume / 1000
efi_indicador = (efi[1] + efi) / 2
//Variable RSI - calculo desv estandar
b = (px-ma10)*(px-ma10)
b2 = (px[1]-ma10[1])*(px[1]-ma10[1])
c = b + b2
c2 = c / 2
desv = math.sqrt(c2)/10
//calculo MACD
macd = ma4 - ma5
//calculo RSI
rsi = ta.rsi(close, 9)
// calculo Divergencia
ma = ta.sma(close, longuitud)
dist = close - ma
porcentaje = dist * 100 / close
ma_dista = ta.sma(porcentaje, 333)
//condición de entrada y salida long
long = ma1[1] < ma1 and ma2[1] < ma2 and macd > 0 and px > ma3 and efi_indicador < 9 and px > ma7 and macd[1] < macd
clong = efi_indicador > 22000 and px < ma8
strategy.entry("BUY", strategy.long, when = long)
strategy.close("BUY", when = clong)
//condición de entrada y salida short
short = ma1[1] > ma1 and ma2[1] > ma2 and macd < 0 and px < ma3 and efi_indicador > 9 and macd[1] > macd
cshort = efi_indicador < 14000 and px > ma8 and ma11 > desv
strategy.entry("SELL", strategy.short, when = short)
strategy.close("SELL", when = cshort)
//SL Y TP
//strategy.exit("long exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)
//strategy.exit("shot exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)
// GRAFICA smas
plot(ma1, color=color.new(color.orange, 0))
plot(ma2, color=color.new(color.orange, 0))
plot(ma3, color=color.new(color.orange, 0))
plot(ma4, color=color.new(color.orange, 0))
plot(ma5, color=color.new(color.orange, 0))
plot(ma6, color=color.new(color.green, 0))
plot(ma7, color=color.new(color.orange, 0))
plot(ma8, color=color.new(color.orange, 0))
plot(ma9, color=color.new(color.orange, 0))
//GRAFICA MACD
plot(macd, color=color.new(color.red, 0), style = plot.style_columns)
//GRAFICA DIVERGENCIA
plot(porcentaje, style = plot.style_columns)
//GRAFICA MA DIVERGENCIA
plot(ma_dista, color=color.new(color.white, 0))
//GRAFICA MA DIVERGENCIA
plot(desv, color=color.new(color.blue, 0))
//GRAFICA EFI
plot(efi_indicador, color=color.new(color.yellow, 0))
// GRAFICA RSI
l1 = hline(70, color=color.new(color.green, 0))
l2 = hline(30, color=color.new(color.green, 0))
plot(rsi, color=color.new(color.white, 0))
//prueba 1 stop loss and take profit
//sl = 0.05
//tp = 0.1
//calculo de precio para sl y tp
//longstop=strategy.position_avg_price*(1-sl)
//longprofit=strategy.position_avg_price*(1+tp)
//shortstop=strategy.position_avg_price*(1+sl)
//shortprofit=strategy.position_avg_price*(1-tp)
//if (long)
// strategy.exit("BUY", strategy.long)
//sl and tp long|short
//if strategy.entry("BUY", strategy.long)
//if strategy.position_avg_price > 0
//strategy.exit("BUY", limit = longprofit, stop = longstop)
//if strategy.position_avg_price < 0
//strategy.exit("SELL", limit = shortprofit, stop=shortstop)