Handelsstrategie mit doppeltem gleitenden Durchschnitt basierend auf dem MACD-Indikator


Erstellungsdatum: 2023-12-18 12:25:13 zuletzt geändert: 2023-12-18 12:25:13
Kopie: 1 Klicks: 804
1
konzentrieren Sie sich auf
1621
Anhänger

Handelsstrategie mit doppeltem gleitenden Durchschnitt basierend auf dem MACD-Indikator

Überblick

Diese Strategie heißtMACD-Doppel-Gleichgewichts-Tracking-StrategieDer MACD-Index verwendet die doppelte Gleichgewichts-Gold- und Goldfork-Sterbe als Handelssignal, kombiniert mit dem gestrigen Tiefstpreis als Stop-Loss-Punkt und verfolgt die kurze Bewegung des Aktienpreises.

Strategieprinzip

  1. Berechnen Sie die Schnelllinien EMA ((close, 5), EMA ((close, 8) und MACD (SMA, 3)
  2. Definition von Mehrkopfsignal: Mehr auf der schnellen Leitung als auf der langen
  3. Definition von Leerlaufsignal: Leerlauf unterhalb der schnellen Linie oder Leerlauf, wenn der Schlusskurs des Tages unter dem gestrigen Tiefpunkt liegt
  4. Positionsbestand ist der Anfangsbetrag von 2000 USD, geteilt durch den Schlusskurs
  5. Mehrköpfige Stop-Loss-Platzierung mit nullkopfigen Signalen

Analyse der Stärken

  1. Verwenden Sie die MACD-Indikatoren, um überkaufte und überverkaufte Bereiche zu ermitteln, um ein Handelssignal zu bilden, das mit einer doppelten Gleichungslinie verbunden ist, um falsche Durchbrüche zu vermeiden.
  2. Kurzfristige Trends verfolgen und Schäden rechtzeitig stoppen
  3. Dynamische Anpassung der Haltungsmenge, um zu große Einzelschäden zu vermeiden

Risikoanalyse

  1. Der MACD-Indicator ist zurückgeblieben und könnte eine kurze Linie verpassen.
  2. Binäre Equalitätssignale können falsche Signale erzeugen
  3. Die Stopp-Punkte sind zu radikal und es besteht die Möglichkeit zu häufiger Stopps.

Optimierungsrichtung

  1. Optimierung der MACD-Parameterkombination und Verbesserung der Indikatorempfindlichkeit
  2. Es ist wichtig, Trends besser zu beurteilen, um falsche Signale zu vermeiden, die von einem wackligen Markt ausgehen.
  3. In Kombination mit dem Volatility Index wird die Marktfluktuation bewertet und die Stop-Loss-Punkte angepasst.

Zusammenfassen

Diese Strategie verwendet die klassische MACD-Doppel-Gleichgewicht-Kombination, um Überkauf-Überverkauf-Bereich zu bestimmen, Handelssignale zu erzeugen, und führt gleichzeitig die dynamische Haltungsmenge und den Stop-Loss-Design des Mindestpreises des Vortages ein. Die Kurzlinie-Schwankungsmerkmale des Aktienpreises werden erfasst. Die Gesamtstrategie ist klar und verständlich und sollte weiter getestet und optimiert werden.

Strategiequellcode
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-13 02:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// macd/cam v1 strategizing Chris Moody Macd indicator https://www.tradingview.com/script/OQx7vju0-MacD-Custom-Indicator-Multiple-Time-Frame-All-Available-Options/
// macd/cam v2 changing to macd 5,8,3
// macd/cam v2.1 
//      Sell when lower than previous day low. 
//      Initial capital of $2k. Buy/sell quantity of initial capital / close price
//      Quitar short action
//      Note: custom 1-week resolution seems to put AMD at 80% profitable

strategy(title="MACD/CAM 2.1", shorttitle="MACD/CAM 2.1") //
source = close
//get inputs from options
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
venderLowerPrev = input(true,title="Vender cuando closing price < previous day low?")

res = useCurrentRes ? timeframe.period : resCustom

fastLength = input(5, minval=1), slowLength=input(8,minval=1)
signalLength=input(3,minval=1)

// find exponential moving average of price as x and fastLength var as y
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
// simple moving average
signal = sma(macd, signalLength)
hist = macd - signal

outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)

histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0

//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal

plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime

circleYPosition = outSignal
 
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)

circleCondition = sd and cross(outMacD, outSignal)

// Determine long and short conditions
longCondition  = circleCondition and macd_color == lime

redCircle = circleCondition and macd_color == red
redCirclePrevLow = redCircle or low<low[1]
shortCondition = redCircle
if (venderLowerPrev)
    shortCondition = redCirclePrevLow

strategy.initial_capital = 20000
// Set quantity to initial capital / closing price
cantidad = strategy.initial_capital/close

// Submit orders
strategy.entry(id="long", long=true, qty=cantidad, when=longCondition)
strategy.close(id="long", when=shortCondition)
plot(circleCondition ? circleYPosition : na, title="Cross", style=cross, linewidth=10, color=macd_color)
// hline(0, '0 Line', linestyle=solid, linewidth=2, color=white)