Duale gleitende Durchschnittspreis-Ausbruchsstrategie


Erstellungsdatum: 2023-11-21 15:33:52 zuletzt geändert: 2023-11-21 15:33:52
Kopie: 1 Klicks: 601
1
konzentrieren Sie sich auf
1617
Anhänger

Duale gleitende Durchschnittspreis-Ausbruchsstrategie

Überblick

Diese Strategie verwendet zwei bewegliche Mittel, um die Entwicklung und den Durchbruch des Preises zu bestimmen. Wenn der Preis nach oben geht, machen Sie eine Lücke, wenn der Preis nach unten geht, tun Sie mehr, und setzen Sie einen Stop-Loss-Exit, um das Risiko zu kontrollieren.

Strategieprinzip

  1. Die Funktion sma() berechnet zwei bewegliche Mittelwerte für die kurz- und langfristige Laufzeit, die jeweils als Auf- und Abgleise für die Handelsstrategie dienen.
  2. Berechnen Sie den Kauf- und Verkaufspreis: Kaufpreis multipliziert mit einem Faktor kleiner als 1 für die untere Bahn, Verkaufspreis multipliziert mit einem Faktor größer als 1 für die obere Bahn.
  3. Wenn die Preise auf die Bahn gehen, ist es nur der Marktpreis, wenn die Preise unter die Bahn gehen, ist es nur der Limitpreis.
  4. Setzen Sie die Jahres-, Monats- und Datumsbereiche, um die Handelszyklen Ihrer Strategie zu steuern.
  5. Alle Positionen werden ausgeglichen, wenn die Rückmeldung abgeschlossen ist oder über den Datumsbereich hinausgeht.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Mit einem Dual-Track-System kann Marktlärm gefiltert und Trends erkannt werden.
  2. Der Einsatz von Preis-Breakouts zur Ermittlung des Einstiegszeitpunkts kann dazu beitragen, falsche Signale zu reduzieren.
  3. Mit der Einschränkung der Preise reduzieren Sie die Kosten für die Marktschocks.
  4. Es ist möglich, die Handelszyklen einfach anzupassen und die Risiken der Strategie zu kontrollieren.

Risikoanalyse

Die Strategie birgt auch Risiken:

  1. Bei einem Durchbruch der Doppelbahn besteht die Gefahr von fortlaufenden Verlusten. Ein Stop-Loss-Exit kann eingesetzt werden, um die Verluste zu kontrollieren.
  2. Bei der Einführung von Handelszeichen in die Bilanzierung besteht die Gefahr, dass zu viele Geschäfte eingehen. Der Abstand zwischen den Auf- und Abfahrten kann entsprechend gelockert werden.
  3. Eine begrenzte Preisliste kann dazu führen, dass einige Kaufmöglichkeiten verpasst werden. Sie können in Betracht ziehen, die Marktpreisliste zu verwenden.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Versuchen Sie, eine Kombination von Moving Averages unterschiedlicher Länge zu testen, um die optimale Parameter zu finden.
  2. Die Veröffentlichung des Berichts wurde von der Agentur für die Recherche und die Veröffentlichung des Berichts veröffentlicht.
  3. Erhöhung der Anpassungsfähigkeit der Stop-Loss-Mechanismen und Anpassung der Stop-Loss-Preise in Echtzeit.
  4. Die Entwicklung von Trends wird durch die Einführung von Modellen der maschinellen Lerntechnik bestimmt.

Zusammenfassen

Die Gesamtkonzeption der Strategie ist klar und verständlich. Durch ein zweigleisiges System zur Identifizierung von Trends und zum Beurteilen von Einstiegsmomenten kann der Preis einen Bruch erzielen. Es gibt Raum für einige Verbesserungen und Optimierungen.

Strategiequellcode
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Shift MA Strategy v1.0", shorttitle = "Shift MA str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, defval = 1, minval = 1, maxval = 1000, title = "Length")
src = input(ohlc4, title = "Source")
buylevel = input(-5.0, defval = -5.0, minval = -100, maxval = 0, title = "Buy line (lime)")
selllevel = input(0.0, defval = 0.0, minval = -100, maxval = 100, title = "Sell line (red)")
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")

//SMAs
sma = sma(src, per) 
buy = sma * ((100 + buylevel) / 100)
sell = sma * ((100 + selllevel) / 100)
plot(buy, linewidth = 2, color = lime, title = "Buy line")
plot(sell, linewidth = 2, color = red, title = "Sell line")

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[per])) and size == 0
    strategy.entry("L", strategy.long, lot, limit = buy)
    
if (not na(close[per]))    
    strategy.entry("Close", strategy.short, 0, limit = sell)

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()