Trend nach einer Strategie zur Maximierung des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2023-10-17
Tags:

img

Übersicht

Diese Strategie verwendet die Überquerung von zwei gleitenden Durchschnitten mit unterschiedlichen Perioden, um Handelssignale zu generieren.

Strategie Logik

Die Strategie verwendet einen 9-Perioden-Kurzzeit-MA (SMA) und einen 50-Perioden-Langzeit-MA (LMA). Wenn der SMA über den LMA überschreitet, wird ein Kaufsignal generiert. Wenn der SMA unter den LMA überschreitet, wird ein Verkaufssignal generiert.

Die Strategie beinhaltet auch den RSI-Indikator, um die Stärke des Trends zu messen. Handelssignale werden nur generiert, wenn der RSI über einem Schwellenwert liegt (Standard 55). Dies vermeidet falsche Signale, wenn der RSI in Überkaufzonen liegt.

Die Strategie handelt jedes Mal mit 30% des Gesamtkapitals, wobei jeweils nur eine Position geöffnet ist.

Analyse der Vorteile

  • Erfasst Trendchancen effektiv unter Verwendung von MA-Kreuztrendsignalen.
  • Die Einbeziehung des RSI verhindert falsche Signale bei Trendstallungen.
  • Die Standardparameter werden optimiert und erzielen auf verschiedenen Märkten eine stetige Rendite.
  • Ein vernünftiges Kapitalmanagement vermeidet eine übergroße Positionsgröße.

Risikoanalyse

  • Anfällig für Whipsaws und falsche Signale während von Trendlosen Märkten ohne Trendbereich.
  • Keine Gewinne ohne einen signifikanten Trend als Trendfolgestrategie.
  • Übermäßiger Handel und Provisionen, wenn die Parameter nicht richtig eingestellt sind.
  • Das Fehlen eines Stop-Loss setzt die Strategie einem Ereignisrisiko aus.

Die Risiken können durch Parameteroptimierung, Verwendung anderer Indikatoren, strenges Kapitalmanagement und Stop-Loss reduziert werden.

Möglichkeiten zur Verbesserung

  • Versuche verschiedene MA-Kombinationen, um optimale Parameter zu finden.
  • Einbeziehen Sie andere Indikatoren wie MACD, um den Trend zu bestätigen.
  • Implementieren dynamischer Stop Loss zur Kontrolle von Verlusten pro Handel.
  • Anpassung der Positionsgröße an die verschiedenen Märkte.
  • Verwenden Sie Volumenindikatoren, um die Trendstärke zu messen.

Schlussfolgerung

Die Strategie erfasst Trendchancen mit einem einfachen MA-Crossover-System. Standardparameter werden mit stetigen Renditen optimiert, geeignet für den algorithmischen Handel. Weitere Verbesserungen können durch Hinzufügen anderer Indikatoren, Optimierung von Parametern und Implementierung von Stop Loss erzielt werden. Insgesamt ist es eine effektive Trend-Folge-Strategie für Trendmärkte mit Crossover-Signalen.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 2h
basePeriod: 15m
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/
// © relevantLeader16058

//@version=4
strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
inlong=input(50, title='MA long period')
inshort=input(9, title='MA short period')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = (14)

RSI = rsi(close, lengthRSI)
RSI_Signal = input(55, title = 'RSI Trigger', minval=1)

//Entry and Exit
bullish = crossover(MAshort, MAlong)
bearish = crossunder(MAshort, MAlong)

strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window())
strategy.close(id="long", when = bearish and window())

 
plot(MAshort, color=color.purple, linewidth=2)
plot(MAlong, color=color.red, linewidth=2)

Mehr