Ursprüngliche Trendfolgestrategie basierend auf gleitenden Durchschnitten


Erstellungsdatum: 2023-11-23 15:54:37 zuletzt geändert: 2023-11-23 15:54:37
Kopie: 0 Klicks: 581
1
konzentrieren Sie sich auf
1617
Anhänger

Ursprüngliche Trendfolgestrategie basierend auf gleitenden Durchschnitten

Überblick

Diese Strategie basiert auf dem wesentlichen Teil der Candle, kombiniert mit den EMA-Indikatoren, um die Richtung der Markttrends zu bestimmen, um die Wirkung von ORIGINAL PRIMITIVE TREND TRACKING zu erzielen. Wenn ein großer Sonnenschein auftritt, machen Sie mehr und wenn ein großer Sonnenschein auftritt, machen Sie leer, um den Markttrend zu verfolgen.

Strategieprinzip

  1. Berechnen Sie die durchschnittliche Länge der Candle-Einheiten der letzten 30 K-Linien
  2. Wenn die neueste K-Linie die Y-Linie ist und die Entität länger als sbody/2 ist, mehr
  3. Wenn die neueste K-Linie eine negative Linie ist, die Entität länger als sbody/2 ist und die aktuelle Position in der Gewinnlage ist, wird die Position ausgewogen.
  4. Wenn die neueste K-Linie eine negative ist und die Länge der Einheit größer als sbody / 2 ist, machen Sie eine Lücke
  5. Wenn der letzte K-Streck der Y-Streck ist, die Länge der Einheit größer als sbody/2 ist und die Position im Gewinnzustand ist, ist die Position leer, wenn die Position leer ist.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Einfach, leicht zu verstehen und umzusetzen
  2. Auf der Grundlage der Candle-Struktur hat das eine gewisse Auswirkung auf die Durchbruch-Trading-Breakouts.
  3. Trends zu verfolgen, um größere Ereignisse zu erfassen
  4. Schnelle Verluste nach Gewinnpositionen, günstige Gewinnauslösung

Risikoanalyse

Die Strategie birgt auch Risiken:

  1. Unmöglichkeit, falsche Durchbrüche effektiv zu filtern, was zu unnötigen Verlusten führen kann
  2. Verletzbarkeit für Schlupfpunkte und Nachtfliegen nur aufgrund von Kerzen
  3. Nicht Berücksichtigung der übermäßigen Häufigkeit von Transaktionen

Das Risiko kann durch folgende Maßnahmen verringert werden:

  1. Filtersignale in Kombination mit anderen Indikatoren
  2. Setzen Sie eine Stop-Loss-Strategie
  3. Optimierung der Parameter und Kontrolle der Häufigkeit der Transaktionen

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Erhöhung der Durchbruchswerte, Filterung von Falsch-Durchbruch
  2. Erhöhung der Stop-Loss-Strategie und Verringerung der Einzelschäden
  3. In Kombination mit einem Trendindikator wird die Richtung des Trends untersucht.
  4. Parameteroptimierung, um die optimale Kombination von Parametern zu finden

Zusammenfassen

Diese Strategie gehört zu den ursprünglich einfachen Trend-Tracking-Strategien. Durch die Candle-Struktur kann die Richtung des Trends effektiv verfolgt werden. Gleichzeitig kann ein schneller Stop-Loss-Mechanismus eingerichtet werden, um die Gewinne zu sperren.

Strategiequellcode
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
useus = input(true, defval = true, title = "Use UUP")
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(01, defval = 01, 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")

//Logic
body = abs(close - open)
sbody = ema(body, 30) / 2
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == -1 and (body > sbody or usebody == false) and (close < strategy.position_avg_price or strategy.position_size <= 0 or useus == false)
dn = bar == 1 and (body > sbody or usebody == false) and (close > strategy.position_avg_price or strategy.position_size >= 0 or useus == false)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00)
    strategy.close_all()