Ende des Monats Ausbruch auf 200-Tage-Durchschnittsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-08 16:02:08
Tags:

img

Übersicht

Diese Strategie basiert auf dem Preisbruch des 200-tägigen gleitenden Durchschnitts am Monatsende, um die Trendrichtung der Aktienkurse zu erfassen.

Strategieprinzip

  1. Verwenden Sie den einfachen gleitenden 200-Tage-Durchschnitt dma200 als Indikator, um die Kursentwicklung zu beurteilen
  2. Beurteilen Sie am letzten Handelstag eines jeden Monats, ob der Schlusskurs höher als dma200 ist
  3. Wenn der Schlusskurs den 200-Tage-MA überschreitet, wird eine vollständige Long-Position am Beginn des nächsten Handelstages eingerichtet.
  4. Wenn der Schlusskurs unter den 200-Tage-MA fällt, werden alle Positionen am Eröffnungstag des nächsten Handelstages geklärt.
  5. Dies kann den Effekt des Trendfolgens erreichen, indem Positionen eingerichtet werden, wenn die Aktienkurse einen Aufwärtstrend erreichen und Abwärtstrends vermieden werden.

Analyse der Vorteile

  1. Der Vorteil der Strategie besteht darin, dass sie einfach und effektiv ist, leicht zu verstehen und umzusetzen ist
  2. Die Annahme von Positionen am Monatsende kann die Handelshäufigkeit reduzieren und die Handelskosten und die Auswirkungen von Schlupfungen minimieren
  3. Der 200-Tage-MA ist ein sehr häufig verwendete mittelfristige und langfristige Trendbeurteilung Indikator, wirksam für die meisten Bestände
  4. Die Strategie hat eine relativ geringe Auslastung und einen maximalen Rückgang, wobei die Risiken kontrollierbar sind.

Risikoanalyse

  1. Der 200-Tage-MA ist möglicherweise nicht empfindlich genug, damit einige Bestände Preisumkehrungen rechtzeitig erfassen können.
  2. Es gibt nur 1 Handelsplatz pro Monat, an dem Positionen aufgenommen werden können, was zu Auf-/Abwärtschancen führen kann
  3. Die Strategie kann nicht richtig beurteilen, wenn die allgemeine Marktentwicklung unsicher ist
  4. Zur Verringerung dieser Risiken sollten andere Indikatoren kombiniert werden

Optimierungsrichtlinien

  1. Erwägen Sie die Erhöhung der Handelspunkte zu Beginn oder Mitte des Monats, um die Strategiehäufigkeit zu verbessern
  2. Hinzufügen von Indikatoren wie Bollinger Bands, um Preisschwankungen zu beurteilen und falsche Trades zu vermeiden
  3. Bewertung der passenden Auswirkungen verschiedener MA-Parameter auf verschiedene Bestände, um optimale Parameterkombinationen zu finden
  4. Einrichtung dynamischer Positionsgrößenmechanismen, um Verluste aktiv zu stoppen, wenn der Drawdown zu hoch wird

Zusammenfassung

Die Strategie ist relativ einfach und insgesamt praktisch und erfasst mittelfristige und langfristige Kurstrends der Aktien durch den Monatsendbruch der 200-Tage-MA mit relativ geringen Drawdowns und Risiken.


/*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")

Mehr