
Die MACD-Gleichgewichts-Bull-Bär-Konvertierungsstrategie berechnet die DIFF- und DEA-Gleichgewichte des MACD-Indikators, um zu beurteilen, ob ein Markttrend eine Umkehrung erfolgt, wodurch ein Handelssignal erzeugt wird. Wenn die DIFF über die DEA geht, machen Sie mehr; wenn die DIFF unter die DEA geht, machen Sie leer. Die Strategie kombiniert gleichzeitig die Preis-EMA-Gleichgewichtsfilter, um falsche Durchbrüche zu vermeiden.
Die Strategie basiert hauptsächlich auf den DIFF- und DEA-Gehältern des MACD-Indikators. Die MACD-Gehälter stellen die Differenz zwischen den Index-Mogulanten Durchschnittswerten dar und bestehen aus DIFF-, DEA- und MACD-Gehältern. Die DIFF-Gehälter stellen die Differenz zwischen den kurzfristigen EMA-Gehältern und den langfristigen EMA-Gehältern dar.
Wenn die DIFF nach oben über die DEA geht, bedeutet dies, dass die kurzfristige Durchschnittslinie stärker wird, und der Markt geht nach unten. Wenn die DIFF nach unten über die DEA geht, bedeutet dies, dass die kurzfristige Durchschnittslinie schwächer wird, und der Markt geht nach unten.
Die Strategie kombiniert auch die EMA-Gehaltslinie mit dem Preis, um falsche Durchbrüche zu filtern. Nur wenn der DIFF nach oben über die DEA geht und der Preis niedriger ist als der vorherige Preisübergang, wird der Übergang vorgenommen. Nur wenn der DIFF nach unten über die DEA geht und der Preis höher ist als der vorherige Preisübergang, wird der Übergang vorgenommen.
Die MACD-Gleichgewichts-Bull-Bär-Konvertierungsstrategie kombiniert den MACD-Indikator mit der Preis-EMA-Gleichgewicht und vermeidet die Falschsignale, die nur durch den MACD-Indikator erzeugt werden, um die Handelswirksamkeit zu verbessern. Die Strategie beurteilt, dass die Markttrends schnell umgestellt werden und ist für den Kurzstrecken-Betrieb geeignet.
Die Vorteile bestehen vor allem aus:
Die MACD-Lineal-Bull-Bär-Umstellung ist mit Risiken behaftet, die sich in folgenden Punkten widerspiegeln:
Diese Risiken können vor allem in folgenden Bereichen optimiert werden:
Die MACD-Linear-Bull-Bear-Transformation hat auch Optimierungsmöglichkeiten, die sich aus folgenden Dimensionen optimieren lassen:
Die MACD-Gleichgewichts-Bull-Bär-Konvertierungsstrategie beurteilt durch die DIFF-DEA-Kreuzung die Zeit des Markteintritts in die Mehrköpfe und die Leerköpfe und arbeitet mit dem Preis EMA-Gleichgewichts-Filter-Falschsignal zusammen, um den Effekt der schnellen Beurteilung der Markttrend-Umstellung zu erzielen. Die Strategie verwendet eine einfache und klare Handelslogik, beurteilt den Umschaltpunkt schnell und eignet sich für die kurze und mittlere Linie. Der nächste Schritt der Operation kann optimiert werden, indem die Parameter angepasst, Filter verstärkt, die Handelsfrequenz kontrolliert werden.
/*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"}]
*/
//@version=3
strategy("macd_strategy",
shorttitle="macd",
overlay=true,
pyramiding=1,
max_bars_back=5000,
calc_on_order_fills = false,
calc_on_every_tick=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
commission_type =strategy.commission.percent,
commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]
cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
cross_over_price := price[1]
cross_over_signal := diff
if (crossunder(diff,dea))
cross_under_price := price[1]
cross_under_signal := diff
if dea > 0
cross_over_price = na
cross_over_signal = na
else
cross_under_price = na
cross_under_signal = na
if diff > 0
if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
strategy.entry("S", strategy.short, comment="S")
else
if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
strategy.entry("B", strategy.long, comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))