Binomiale gleitende Durchschnittstrendstrategie


Erstellungsdatum: 2023-12-08 14:55:19 zuletzt geändert: 2023-12-08 14:55:19
Kopie: 0 Klicks: 704
1
konzentrieren Sie sich auf
1621
Anhänger

Binomiale gleitende Durchschnittstrendstrategie

Überblick

Der Binomial Moving Average (BMA) ist ein neuartiger Moving Average-Indikator. Er verwendet die Hälfte des Binomial-Faktors, um den Durchschnittspreis zu berechnen, und hat die Vorteile, dass er einzigartig, glatt und praktisch ist.

Diese Strategie kombiniert schnelle BMA und langsame BMA, um ein Handelssignal zu erzeugen, das dem MACD ähnelt. Sie ist eine Trend-Folge-Strategie. Sie kann für mehrere Zyklen verwendet werden und ist für mittlere und lange Linien geeignet.

Strategie im Detail

Bezeichnung der Strategie

Binomial Moving Average Trend Strategien

Strategieprinzip

  1. Berechnen Sie einen binären Moving Average (BMA). Es berechnet den binären Koeffizienten nach der vom Benutzer eingestellten Periodengröße und nimmt dann die Hälfte als gewogenen Durchschnittspreis. Zum Beispiel berechnet man mit einer Periodengröße von 5 9 mal den binären Koeffizienten und nimmt die Hälfte als gewogenes Durchschnitt.

  2. Setzen Sie schnelle BMA-Zyklen und langsame BMA-Zyklen ein. Schnelle BMA sind empfindlicher auf Preisänderungen und langsame BMA sind stabiler. Ihre Kreuzung erzeugt Handelssignale.

  3. Wenn der schnelle BMA über den langsamen BMA geht, macht er mehr; wenn der schnelle BMA unter dem langsamen BMA geht, macht er frei. Nachdem er in den Platz gekommen ist, hält er die Position, bis ein Umkehrsignal erscheint.

Analyse der Stärken

Der größte Vorteil dieser Strategie liegt in der Neuerung der Berechnungsmethode der BMA-Indikatoren, die die Vorzüge des Moving Averages verbessert und die Glattheit und Zweckmäßigkeit erhöht. Im Vergleich zu EMA und SMA hat die BMA ein größeres Gewicht auf die jüngsten K-Linien und behält gleichzeitig mehr historische Informationen. Dies ermöglicht es, Trends besser zu erfassen und weniger falsche Signale zu erzeugen.

Darüber hinaus nutzt die Kombination aus schnellen und langsamen BMAs die Vorteile eines gleitenden Durchschnitts voll aus, indem sie viel Lärm filtert und nur an Trendwendepunkten Handelssignale erzeugt. Die Strategie selbst ist einfach in der Logik, leicht zu verstehen und umzusetzen und eignet sich für mittlere und lange Zeilen.

Risikoanalyse

Die Hauptrisiken dieser Strategie sind:

  1. Wie bei allen Trend-Tracking-Strategien kann es zu Verlusten kommen, wenn sich der Trend umkehrt. Die Lösung besteht darin, einen Stop-Loss zu setzen oder die Parameter zu optimieren, um die BMA empfindlicher zu machen.

  2. Die falsche Einstellung der BMA-Parameter beeinflusst auch die Strategie. Wenn ein schneller BMA zu empfindlich ist, erhöht sich das Falschsignal. Wenn ein langsamer BMA zu spät ist, kann eine Trendchance verpasst werden.

  3. Diese Strategie bietet eine Standard-Vollpositionshandel und kann die Positionsverwaltung entsprechend den Risikopräferenzen einstellen, um Einzelschäden zu reduzieren.

Optimierungsrichtung

Die wichtigsten Optimierungsrichtungen der Strategie sind die BMA selbst und die Tests der Kombinationsparameter.

  1. Zyklus-Einstellungen: Versuche verschiedene schnelle und langsame BMA-Zyklen, um die optimale Kombination zu finden. In der Regel sind schnelle Zyklen zwischen 10-30 und langsame Zyklen zwischen 20-60.

  2. BMA-Gewichte: Verschiedene Gewichtsverteilungsarten können getestet werden, wobei die Hälfte der binären Koeffizienten vollständig berechnet wird oder die letzten K-Linien bevorzugt werden. Dies kann die Glattheit von BMA weiter verbessern.

  3. Filterbedingungen: Sie können Filterbedingungen wie Preisbruch, Erhöhung des Handelsvolumens einstellen, um unzumutbare Signale zu vermeiden.

  4. Stopps und Positionsmanagement können auch als Tests zur Risikokontrolle eingesetzt werden.

Zusammenfassen

Die Strategie bietet zum ersten Mal einen einzigartigen Indikator für den binären Moving Average, der die Berechnung von Moving Averages erweitert und die allgemeine Funktionalität und Stabilität der Strategie verbessert. Die Kreuzung von schnellen und langsamen BMAs erzeugt einfache und effektive Handelssignale. Die Strategie bietet Raum für weitere Optimierungen der Gleitparameter und der Risikokontrolle und ist eine sehr vielversprechende Trend-Tracking-Strategie.

Strategiequellcode
/*backtest
start: 2022-12-07 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © HosseinDaftary

//@version=4
strategy("Binomial Moving Average","BMA", overlay=true, margin_long=100, margin_short=100 ,max_bars_back=96)
//Binomial Moving Average:This type of moving average that is made by myself and i did not see anywhere before uses the half of binomial cofficients for
//averaging the prices for example if the period be 5 then we use the 9 degree binomial cofficients(that yields 10 cofficients) and use half of them.
//we use 126/256 for last bar,84/256,36/256,9/256 and finally use 1/256 for 5th bar. Seemingly this MA works better than EMA.
fa_ma=input(title='Fast MA',defval=10)
sl_ma=input(title='Slow MA',defval=30)

fac(n)=>
    fact=1
    for i= 1 to n
        fact:=fact*i
    fact
cof= array.new_float(sl_ma) 

hn_ma(price,length)=>
    sum=1.0
    sum1=0.0
    array.set(cof,length-1,1)
    for i=2 to length
        array.set(cof,length-i,fac(2*length-1)/(fac(i-1)*fac(2*length-i)))
        sum:=sum+array.get(cof,length-i)
    for i=0 to length-1
        array.set(cof,i,array.get(cof,i)/sum)
        sum1:=sum1+array.get(cof,i)*price[i]
    sum1
hn1=plot(hn_ma(close,sl_ma) , color=#00ff00)
hn2=plot(hn_ma(close,fa_ma) ,color=#ff0000)
fill(hn1,hn2,color=hn_ma(close,fa_ma)>hn_ma(close,sl_ma)?color.green:color.red)


longCondition = crossover(hn_ma(close, fa_ma), hn_ma(close, sl_ma))
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(hn_ma(close, fa_ma), hn_ma(close, sl_ma))
if (shortCondition)
    strategy.entry("Short", strategy.short)