
Die Strategie beurteilt, wann es Zeit ist, zu kaufen und zu verkaufen, indem sie die doppelte Gleichgewichtskreuzung des MACD-Indikators berechnet. Sie zeichnet einen Pfeil auf der Grafik, um ein Handelssignal zu erhalten.
Die Strategie berechnet zunächst die Schnelllinie (EMA 12), die Schnelllinie (EMA 26) und die MACD-Differenz. Dann werden die Kauf- und Verkaufszeiten basierend auf den Gold- und Goldforken der Schnelllinie und der Schnelllinie sowie den Positiv-Negativ-Deferenzen der MACD-Differenz berechnet:
Um falsche Signale zu filtern, beurteilt der Code auch die Signalverhältnisse der vorherigen K-Linie. Das aktuelle Signal wird nur ausgelöst, wenn die aktuelle K-Linie ein umgekehrtes Signal ist (Kauf in Verkauf oder Verkauf in Kauf).
Darüber hinaus ist ein Pfeil im Code gezeichnet, der den Zeitpunkt des Kaufs und Verkaufs auf der K-Linie anzeigt.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Die Strategie kann in folgenden Richtungen optimiert werden:
Die Doppel-Even-Linien-Kreuz-Pfeil-Strategie ist insgesamt relativ einfach und praktisch. Durch die Doppel-Even-Linien-Kreuz-Urteil und MACD-Differenz-Filterung können Kauf- und Verkaufspunkte in den mittleren und langen Trends identifiziert werden, um verpasste Preiswechsel zu vermeiden. Die Pfeil-Hinweise machen die Bedienung auch klarer und klarer.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//Daniels stolen code
strategy(shorttitle="Daniels Stolen Code", title="Daniels Stolen Code", overlay=true, calc_on_order_fills=true, pyramiding=0)
//Define MACD Variables
fast = 12, slow = 26
fastMACD = ema(hlc3, fast)
slowMACD = ema(hlc3, slow)
macd = fastMACD - slowMACD
signal = sma(macd, 9)
hist = macd - signal
currMacd = hist[0]
prevMacd = hist[1]
currPrice = hl2[0]
prevPrice = hl2[1]
buy = currPrice > prevPrice and currMacd > prevMacd
sell = currPrice < prevPrice and currMacd < prevMacd
neutral = (currPrice < prevPrice and currMacd > prevMacd) or (currPrice > prevPrice and currMacd < prevMacd)
//Plot Arrows
timetobuy = buy==1 and (sell[1]==1 or (neutral[1]==1 and sell[2]==1) or (neutral[1]==1 and neutral[2]==1 and sell[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and sell[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and sell[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and sell[6]==1))
timetosell = sell==1 and (buy[1]==1 or (neutral[1]==1 and buy[2]==1) or (neutral[1]==1 and neutral[2]==1 and buy[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and buy[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and buy[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and buy[6]==1))
plotshape(timetobuy, color=blue, location=location.belowbar, style=shape.arrowup)
plotshape(timetosell, color=red, location=location.abovebar, style=shape.arrowdown)
//plotshape(neutral, color=black, location=location.belowbar, style=shape.circle)
//Test Strategy
// strategy.entry("long", true, 1, when = timetobuy and time > timestamp(2017, 01, 01, 01, 01)) // buy by market if current open great then previous high
// strategy.close("long", when = timetosell and time > timestamp(2017, 01, 01, 01, 01))
strategy.order("buy", true, 1, when=timetobuy==1 and time > timestamp(2019, 01, 01, 01, 01))
strategy.order("sell", false, 1, when=timetosell==1 and time > timestamp(2019, 01, 01, 01, 01))
// strategy.entry(id = "Short", long = false, when = enterShort())
// strategy.close(id = "Short", when = exitShort())
//strategy.entry("long", true, 1, when = open > high[1]) // enter long by market if current open great then previous high
// strategy.exit("exit", "long", profit = 10, loss = 5) // ge