
Die Strategie nutzt ein Gleichgewichtsmodell, um die Richtung des Markttrends zu bestimmen, und legt regelmäßig Positionen bei bullishen Trends fest, um die Aufwärtstrends des Marktes zu verfolgen.
Die Strategie basiert auf folgenden technischen Prinzipien:
Verwenden Sie die EMA-Durchschnittslinie, um die Richtung des Markttrends zu bestimmen. Wenn Sie die schnelle EMA-Linie über die langsame EMA-Linie durchqueren, beurteilen Sie den bullish Trend und bereiten Sie sich auf eine mehrseitige Eintrittsbereitschaft vor.
Wenn der MACD-Indikator durch eine positive Negativwende beginnt, zeigt dies, dass der Kaufmarkt zu schwächen beginnt und eine mehrseitige Eintritt erfolgt.
Einschränkung der Eintrittszahlen auf monatliche Eintrittszahlen. Die Anzahl der Eintrittszahlen kann festgesetzt werden.
Sie können ein Start- und ein Enddatum festlegen, um die Rücklaufzeit zu begrenzen. Wenn die Rücklaufzeit endet, wird die Strategie alle Positionen ausgleichen.
Konkret berechnet die Strategie zunächst die schnelle EMA-Linie und die langsame EMA-Linie und erkennt die Goldfork-Beziehung zwischen beiden, um den Markttrend zu beurteilen. Gleichzeitig wird der MACD-Indikator berechnet, um den spezifischen Einstiegspunkt zu beurteilen.
Dies ist eine einfache und direkte Trend-Tracking-Strategie mit folgenden Vorteilen:
Die Verwendung der EMA-Gewinnlinie zur Bestimmung der Richtung der großen Trends ist einfach und praktisch. Die EMA-Gewinnlinie hat eine bestimmte Glatterung der Preisänderungen und kann effektiv den Lärm der Marktschwankungen filtern.
Der MACD-Indikator kann den Zeitpunkt der Schwäche der Kauf- und Verkaufskonstruktion genauer bestimmen, so dass das Einstiegsrisiko geringer ist.
Eine Einschränkung auf ein Mal im Monat kann dazu beitragen, dass man sich nicht in einem bullishen Markt auf den Kopf stellt.
Die Eintrittsmenge kann für jeden Monat angepasst werden, und die Position kann flexibel nach der eigenen Strategie angepasst werden.
Die Wirksamkeit der Strategie kann anhand von Start- und Enddaten überprüft werden.
Wenn die Rückmessung beendet wird, wird die Position platziert, um die Peinlichkeit zu vermeiden, eine Position zu halten, wenn der Simulationshandel aus dem Markt geht.
Die Strategie birgt auch einige potenzielle Risiken, darunter:
Methoden, die sich auf eine durchschnittliche Linie verlassen, um Trends zu beurteilen, können Gelegenheiten für kurzfristige Anpassungen verpassen oder bei einer Trendwende nicht schnell genug reagieren. Die Durchschnittlichkeitsperiode kann entsprechend verkürzt oder andere Urteilskennzahlen hinzugefügt werden, um zu optimieren.
Wenn Sie nur einmal im Monat nachholen, können Sie die besten Einstiegszeiten verpassen. Sie können die Eintrittsfrequenz erweitern oder beim Durchbruch eines neuen Höchststandes ein weiteres Mal nachholen.
Es besteht ein gewisses Risiko für die Rückmeldung der Anpassung. Der Spielraum für die Anpassung der Parameter sollte erhöht werden und Stabilitätstests über die Märkte und die Zeiträume hinweg durchgeführt werden.
Es besteht die Gefahr, dass die Einzahlung zu niedrig und die Einzahlung zu hoch ist. Die monatliche Einzahlung sollte angemessen kontrolliert werden, um zu große Positionen zu vermeiden.
Diese Strategie kann auch in folgenden Bereichen erweitert und optimiert werden:
Erhöhung der Stop-Loss-Exit-Logik, die den Stop-Loss aktiviert, wenn ein deutlicher Bärenkopf auftritt.
Ein weiterer Kauf wurde bei der Einführung der MACD-Smile-Regel vorgenommen, um eine umfassendere Bewegungsbelichtung zu erhalten.
Die Einführung von Multi-Airway-Bewertungen, die die neuen Höchststände des Monats im Vergleich zu den neuen Höchstständen des Vormonats vergleichen, um zu beurteilen, ob die Tendenz weiterhin stark ist.
Die Logik der Positionskontrolle wird erweitert. Die monatliche Einzahlung kann proportional kontrolliert werden, anstatt festgesetzt zu werden.
Beurteilung der Auswirkungen verschiedener Gleichgewichtskombinationen und MACD-Parameter auf die Effektivität der Strategie. Suche nach der optimalen Kombination von Parametern.
Hinzufügen eines Trailing Stops Tracking Stop. Beginnen Sie mit einem Trailing Stop, wenn der Preis ein neues Hoch erreicht hat, damit die Gewinne weiterlaufen können.
Die Strategie als Ganzes ist eine einfache Trendverfolgungsstrategie, deren Kernidee klar ist und leicht zu implementieren ist. Sie ist geeignet, die Wirksamkeit von linearer Trendverfolgung und Investitionsbindung zu testen. Sie kann als eine der Strategien für den Einstieg in den quantitativen Handel gelernt werden.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © runescapeyttanic
//@version=4
// strategy("Buy and Hold entry finder Strategy",pyramiding=10000, overlay=true,initial_capital=0,default_qty_type=strategy.cash,default_qty_value=1000,currency = currency.EUR,commission_type=strategy.commission.cash_per_order,commission_value=0)
//INPUTS##################################################################################################################
maxEmaDistance = input(title="Maximum EMA Distance", type=input.float, step=0.01, defval=50000)
emalength = input(title="EMA Length", type=input.integer,defval=200)
// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
defval=2020, minval=1800, maxval=2100)
endDate = input(title="End Date", type=input.integer,
defval=12, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
defval=02, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
defval=2021, minval=1800, maxval=2100)
endDate1=endDate-1
//starttag
//startmonat
//MACD########################################################################################################################
fast_length=12
slow_length=26
src=close
col_macd=#0094ff
fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma
//EMA Distance CALC########################################################################################################
ma1 =ema(close,emalength)
distFromMean = close - ma1
inDateRange = true
longCondition = (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0 and inDateRange)
longnow=false
if(longCondition and strategy.position_size == 0)
strategy.entry("My Long Entry Id", strategy.long)
longnow:=true
if(longCondition and strategy.position_size > 0)
longnow:=true
if(longCondition and strategy.position_size > 0 and month>valuewhen(longnow, month ,1) or longCondition and strategy.position_size > 0 and year>valuewhen(longnow, year ,1) and inDateRange)
strategy.entry("My Long Entry Id", strategy.long)
plotchar(minute, "Minuten", "", location = location.top)
plotchar(hour, "Stunden", "", location = location.top)
plotchar(dayofmonth, "Tage", "", location = location.top)
plotchar(month, "Monat", "", location = location.top)
plotchar(year, "Jahr", "", location = location.top)
plotchar(strategy.position_size, "Positionen", "", location = location.top)
plotchar(longCondition, "Long Condition", "", location = location.top)
if true
strategy.close_all()
//#########################################################################################################################
plotArrow = if (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0)
1
else
0
plotarrow(series=plotArrow)