Momentum-Ausbruch der 200-Tage-Gleitende-Durchschnitts-Strategie am Monatsende


Erstellungsdatum: 2023-12-08 16:02:08 zuletzt geändert: 2023-12-08 16:02:08
Kopie: 1 Klicks: 795
1
konzentrieren Sie sich auf
1621
Anhänger

Momentum-Ausbruch der 200-Tage-Gleitende-Durchschnitts-Strategie am Monatsende

Überblick

Die Strategie basiert auf der Zeit am Ende des Monats, um zu beurteilen, ob der Aktienpreis den 200-Tage-Moving-Average überschreitet, um die Trendrichtung des Aktienpreises zu erfassen.

Strategieprinzip

  1. Der 200-Tage-Simple Moving Average (dma200) als Indikator für die Preisentwicklung
  2. Beurteilen Sie, ob der Schlusskurs am letzten Handelstag des Monats über dem Wert von dma200 liegt
  3. Wenn der Schlusskurs die 200-Tage-Mittellinie überschreitet, wird eine Vollposition am nächsten Handelstag eröffnet.
  4. Wenn der Schlusskurs unter dem 200-Tage-Durchschnittswert fällt, wird am nächsten Handelstag eine Liquidation eröffnet
  5. Dies ermöglicht es, Trends zu verfolgen und Positionen zu erstellen, wenn die Aktienkurse in eine steigende Tendenz eintreten, um eine fallende Tendenz zu vermeiden.

Analyse der Stärken

  1. Die Strategie hat den Vorteil, dass sie einfach und effektiv ist und leicht zu verstehen und umzusetzen ist.
  2. Die Nutzung von End-of-the-Month-Punkten kann die Häufigkeit der Transaktionen verringern, die Transaktionskosten senken und die Auswirkungen von Slippings verringern.
  3. Die 200-Tage-Durchschnittslinie ist ein sehr gebräuchlicher mittelfristiger Trendbeurteilungsindikator, der für die meisten Aktien wirksam ist
  4. Strategische Rückgänge und maximale Rückgänge sind gering, die Risiken sind kontrollierbar

Risikoanalyse

  1. Die 200-Tage-Grenze ist für einige Aktien möglicherweise nicht so empfindlich, dass sie die Kursbewegungen nicht rechtzeitig erfassen kann.
  2. Es gibt nur einen Handelsplatz am Ende des Monats, der die Chance auf einen mittleren Fall verpasst hat.
  3. Die Strategie kann nicht richtig sein, wenn die Gesamttrends der großen Börsen unsicher sind.
  4. Diese Risiken sollten mit anderen Indikatoren kombiniert werden.

Optimierungsrichtung

  1. Erwägen Sie, die Häufigkeit der Strategie zu erhöhen, indem Sie zu Beginn des Monats oder in der Mitte des Monats weitere Standorte aufbauen.
  2. Die Zunahme von Indikatoren wie Bollinger Bands, um Preisschwankungen zu beurteilen und Fehlhandlungen zu vermeiden
    1. Beurteilung der Anpassung von verschiedenen Parametern der Gleichgewichtung an verschiedene Aktien, um die optimale Kombination von Parametern zu finden
  3. Es kann eine dynamische Positionsverwaltung eingerichtet werden, die den Verlust bei einem zu hohen Rückzug aktiviert.

Zusammenfassen

Die Strategie ist insgesamt relativ einfach und praktisch, um die langfristigen Preisentwicklungen der Aktien mit dem Durchbruch der 200-Tage-Durchschnittslinie am Ende des Monats effektiv zu erfassen. Durch die Kombination von mehr Kennzahlen und dynamischer Optimierung können die Strategie-Stabilität und die Ertragsrate weiter erhöht werden.

Strategiequellcode
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 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/
// © muscleriot
//200 dma
//2000-2016 backtested 
//1 signal per month only at end of month
//If > 200DMA enter long
//If < 200DMA goto cash
//results: 318% drawdown 17% vs 125% with 55% drawdown for buy and hold
//@version=5
strategy("200DMA last DOM - ajh", overlay =true,default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Use 100% of  equity always

dma200 = ta.sma(close, 200)
plot(dma200, color=color.red, linewidth = 2)
//e =dayofmonth(time)
// backtesting date range
from_day = input.int(defval=1, title="From Day", minval=1, maxval=31)
from_month = input.int(defval=1, title="From Month", minval=1, maxval=12)
from_year = input.int(defval=2018, title="From Year", minval=1900)

to_day = input.int(defval=1, title="To Day", minval=1, maxval=31)
to_month = input.int(defval=1, title="To Month", minval=1, maxval=12)
to_year = input.int(defval=9999, title="To Year", minval=1900)

time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and 
   time < timestamp(to_year, to_month, to_day, 23, 59)



xLong = dayofmonth(time) == 30 and (close > dma200) ? true : na
xSell = dayofmonth(time) == 30 and (close < dma200) ? true : na
plotchar(xLong, "long","L", color=color.green)    
plotchar(xSell, "Sell","S", color=color.red)    
if (xLong == true) and time_cond
    strategy.entry("long", strategy.long)
if (xSell == true) and time_cond
    strategy.close("long")