Golden Cross Bullish Trendfolgestrategie


Erstellungsdatum: 2024-01-03 11:46:44 zuletzt geändert: 2024-01-03 11:46:44
Kopie: 1 Klicks: 567
1
konzentrieren Sie sich auf
1621
Anhänger

Golden Cross Bullish Trendfolgestrategie

Überblick

Die Strategie basiert auf dem goldenen Kreuzprinzip der Moving Averages. Konkret verwendet sie zwei einfache Moving Averages mit unterschiedlichen Perioden, nämlich die 50-Periodenlinie und die 200-Periodenlinie. Wenn die 50-Periodenlinie von unten die 200-Periodenlinie durchbricht, erzeugt sie ein Kaufsignal; wenn die 50-Periodenlinie von oben die 200-Periodenlinie durchbricht, erzeugt sie ein Verkaufsignal.

Strategieprinzip

Die Strategie wurde in der Pine Script-Sprache geschrieben, und die Hauptlogik lautet wie folgt:

  1. Berechnen Sie zwei SMAs: 50-Zyklus SMA und 200-Zyklus SMA
  2. Urteilen von Gold-Cross: Wenn Sie einen 200-Zyklus-SMA auf einem 50-Zyklus-SMA tragen, machen Sie mehr
  3. Beurteilen Sie die Todeskreuzung: Platten Sie, wenn der 50-Zyklus-SMA unter dem 200-Zyklus-SMA liegt

Die Bedeutung des SMA-Indikators besteht darin, dass er die Lärm von Marktdaten effektiv ausfiltert und den langfristigen Trend erfasst. Die schnelle SMA-Linie durchquert die langsame SMA-Linie, um zu zeigen, dass die kurzfristige Aufwärtsdynamik den langfristigen Abwärtstrend besiegt und ein Kaufsignal erzeugt.

Strategische Vorteile

Die Strategie hat folgende Vorteile:

  1. Die Grundsätze sind einfach zu verstehen und leicht umzusetzen.
  2. PARAMETERS ist ein vernünftiges Setup und bietet die Möglichkeit, zwei SMA-Zyklen für verschiedene Märkte anzupassen.
  3. Das Programm wurde in der stabilen Version der Sprache Pine geschrieben und läuft effizient.
  4. Die visuellen Einstellungen sind informativ und einfach zu bedienen.

Risiken und Lösungen

Die Strategie birgt auch einige Risiken:

  1. Es kann ein falscher Durchbruch auftreten, der die Strategie zu einem falschen Signal führt. Die beiden SMA-Parameter können entsprechend angepasst werden, um die Wahrscheinlichkeit eines falschen Durchbruchs zu verringern.

  2. Die Kurzzeit-SMA-Phasen sind für langfristige Anleger geeignet. Sie können entsprechend verkürzt werden.

  3. Der Rückzug kann größer sein. Sie können einen Stop-Loss-Punkt festlegen oder die Positionsverwaltung entsprechend anpassen.

Optimierung

Die Strategie kann in folgenden Dimensionen weiter optimiert werden:

  1. Filter für weitere Kennzahlen, Kombination mehrerer Kauf-/Verkaufskonditionen, Verringerung der Wahrscheinlichkeit von Falschsignalen.

  2. Erhöhung der Stop-Loss-Mechanismen. Erzwungene Stop-Loss-Mechanismen, wenn der Preis unter einem bestimmten Niveau fällt.

  3. Optimierung des Positionsmanagements. Zum Beispiel, wenn Sie mit dem Trend aufsteigen, Verluste verfolgen, etc. Zurückziehen kontrollieren und höhere Erträge anstreben.

  4. Optimierung der Parameter. Beurteilung der Auswirkungen der verschiedenen Parameter auf das Risiko-Rendite-Verhältnis.

Zusammenfassen

Die Strategie ist im Großen und Ganzen eine typische Trendverfolgungsstrategie. Sie nutzt die Vorteile der SMA, um einfache und effiziente Capture Longline-Trends. Sie kann den Raum für die Anpassung an den eigenen Stil und die Parameter anpassen.

Strategiequellcode
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// www.tradingview.com/u/TradeFab/
// www.tradefab.com
// ___  __        __   __  __       __
//  |  |__)  /\  |  \ |__ |__  /\  |__)
//  |  |  \ /~~\ |__/ |__ |   /~~\ |__)
//
// DISCLAIMER: Futures, stocks and options trading involves substantial risk of loss 
// and is not suitable for every investor. You are responsible for all the risks and 
// financial resources you use and for the chosen trading system.
// Past performance is not indicative for future results. In making an investment decision,
// traders must rely on their own examination of the entity making the trading decisions!
//
// TradeFab's Golden Cross Strategy.
// The strategy goes long when the faster SMA 50 (the simple moving average of the last 50 bars) crosses
// above the SMA 200. Orders are closed when the SMA 50 crosses below SMA 200. The strategy does not short.
//
VERSION = "1.2"
// 1.2 FB 2020-02-09 converted to Pine version 4
// 1.1 FB 2017-01-15 added short trading
// 1.0 FB 2017-01-13 basic version using SMAs
//
strategy(
   title        = "TFs Golden Cross " + VERSION, 
   shorttitle   = "TFs Golden Cross " + VERSION, 
   overlay      = true
   )


///////////////////////////////////////////////////////////
// === INPUTS ===
///////////////////////////////////////////////////////////
inFastSmaPeriod     = input(title="Fast SMA Period", type=input.integer, defval=50, minval=1)
inSlowSmaPeriod     = input(title="Slow SMA Period", type=input.integer, defval=200, minval=1)

// backtest period
testStartYear       = input(title="Backtest Start Year",    type=input.integer, defval=2019, minval=2000)
testStartMonth      = input(title="Backtest Start Month",   type=input.integer, defval=1, minval=1, maxval=12)
testStartDay        = input(title="Backtest Start Day",     type=input.integer, defval=1, minval=1, maxval=31)
testStopYear        = input(title="Backtest Stop Year",     type=input.integer, defval=2099, minval=2000)
testStopMonth       = input(title="Backtest Stop Month",    type=input.integer, defval=12, minval=1, maxval=12)
testStopDay         = input(title="Backtest Stop Day",      type=input.integer, defval=31, minval=1, maxval=31)


///////////////////////////////////////////////////////////
// === LOGIC ===
///////////////////////////////////////////////////////////
smaFast = sma(close, inFastSmaPeriod)
smaSlow = sma(close, inSlowSmaPeriod)

bullishCross = crossover (smaFast, smaSlow)
bearishCross = crossunder(smaFast, smaSlow)

// detect valid backtest period
isTestPeriod() => true


///////////////////////////////////////////////////////////
// === POSITION EXECUTION ===
///////////////////////////////////////////////////////////
strategy.entry("long",  strategy.long,  when=bullishCross)
strategy.entry("short", strategy.short, when=bearishCross)


///////////////////////////////////////////////////////////
// === PLOTTING ===
///////////////////////////////////////////////////////////
// background color
nopColor = color.new(color.gray, 50)
bgcolor(not isTestPeriod() ? nopColor : na)

bartrendcolor = 
   close > smaFast and 
   close > smaSlow and 
   change(smaSlow) > 0 
       ? color.green 
       : close < smaFast and 
         close < smaSlow and 
         change(smaSlow) < 0 
             ? color.red 
             : color.blue
barcolor(bartrendcolor)
plot(smaFast, color=change(smaFast) > 0 ? color.green : color.red, linewidth=2)
plot(smaSlow, color=change(smaSlow) > 0 ? color.green : color.red, linewidth=2)

// label
posColor = color.new(color.green, 75)
negColor = color.new(color.red, 75)
dftColor = color.new(color.blue, 75)
posProfit= (strategy.position_size != 0) ? (close * 100 / strategy.position_avg_price - 100) : 0.0
posDir   = (strategy.position_size  > 0) ? "long" : strategy.position_size < 0 ? "short" : "flat"
posCol   = (posProfit > 0) ? posColor : (posProfit < 0) ? negColor : dftColor

var label lb = na
label.delete(lb)
lb := label.new(bar_index, max(high, highest(5)[1]),
   color=posCol,
   text="Pos: "+ posDir +
      "\nPnL: "+tostring(posProfit, "#.##")+"%" +
      "\nClose: "+tostring(close, "#.##"))