
Die Strategie beurteilt die Tendenz und Volatilität der Preise durch Berechnung von Durchschnitts- und Differentialkursen für verschiedene Perioden und ermöglicht die Identifizierung von Höhen und Tiefen.
Die Kernlogik dieser Strategie ist die Berechnung von Mittelwerten und Differenzen für verschiedene Perioden in jüngster Zeit. Konkret werden die Mittelwerten ((ma, mb, mc) und Differenzen ((da, dB, dc) für die letzten 5, 4 und 3 Tage berechnet. Dann werden die größeren Perioden ausgewählt, wobei die größte Differenz den aktuellen Trend darstellt.
Auf diese Weise wird die Periode und die Differenz, die den Trend darstellen, stark verändert, wenn der Preis einen Aufwärts- oder Abwärtsbruch aufweist. Dadurch verändert sich auch der endgültige Ausgang der WG, wodurch Hoch- und Tiefpunkte erkannt werden können.
Diese Methode, bei der Trends in verschiedenen Zeitabschnitten beurteilt werden, ist so effektiv, dass die Wendepunkte der Preise klar identifiziert werden können. Diese Kombination von mehreren Zeitabschnitten verbessert die Genauigkeit und Aktualität der Beurteilung im Vergleich zu einer Einzeitabschätzung.
Die Berechnung von Durchschnitts- und Quadratdifferenzen ist sehr einfach und effektiv, mit wenig Code und sehr empfindlich auf plötzliche Preisänderungen, so dass Durchbrüche schnell entdeckt werden können.
Die in dieser Strategie verwendeten Perioden sind kurz, und die Beurteilung kann für die mittleren und langen Linien nicht genau und umfassend genug sein. Kurzfristige Preisschwankungen können zu Fehleinschätzungen führen.
Darüber hinaus beeinflussen die Gewichte der Mittellinie und der Quadratdifferenz auch die Urteilswirkung. Wenn die Gewichte nicht richtig eingestellt sind, kann das Signal falsch sein.
Man kann versuchen, mehr Berechnungen von verschiedenen Perioden hinzuzufügen, um eine Kombination von Zyklen zu bilden, um die Beurteilung umfassender zu machen. Zum Beispiel kann man mittel- und langfristige Zyklen wie 10 und 20 Tage hinzufügen.
Es ist auch möglich, verschiedene Gewichtssätze zu testen, um die Flexibilität der Gewichtssätze zu erhöhen. Die Parameteroptimierung wurde hinzugefügt, so dass die Gewichte automatisch an die Marktumgebung angepasst werden können, um die Wahrscheinlichkeit von Fehlentscheidungen zu verringern.
Darüber hinaus können andere Indikatoren, wie die Abweichungen in der Transaktionsmenge, kombiniert werden, um zu verhindern, dass arbitrage-Geschäfte fehlerhaft beurteilt werden.
Die Gesamtkonzeption der Strategie ist klar und verständlich, und verwendet die Mittel- und Differentialkurve, um die Preisentwicklung und -fluktuation zu ermitteln, und die Kombinationsausgabe kann die Kurve zwischen den Höhen und Tiefen eindeutig erkennen. Diese Methode, die auf mehreren Perioden basiert, kann die langfristigen Merkmale des Marktes effektiv erfassen und die Genauigkeit der Beurteilung der Wendepunkte verbessern.
/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 12h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("x²", overlay=false)
a1=(close[2]-close[3])/1
a2=(close[1]-close[3])/4
a3=(close[0]-close[3])/9
b1=(close[3]-close[4])/1
b2=(close[2]-close[4])/4
b3=(close[1]-close[4])/9
b4=(close[0]-close[4])/16
c1=(close[4]-close[5])/1
c2=(close[3]-close[5])/4
c3=(close[2]-close[5])/9
c4=(close[1]-close[5])/16
c5=(close[0]-close[5])/25
ma=(a1+a2+a3)/3
da=(a1-ma)*(a1-ma)
da:=da+(a2-ma)*(a2-ma)
da:=da+(a3-ma)*(a3-ma)
da:=sqrt(da)
da:=min(2, da)
da:=1-da/2
da:=max(0.001, da)
mb=(b1+b2+b3+b4)/4
db=(b1-mb)*(b1-mb)
db:=db+(b2-mb)*(b2-mb)
db:=db+(b3-mb)*(b3-mb)
db:=db+(b4-mb)*(b4-mb)
db:=sqrt(db)
db:=min(2, db)
db:=1-db/2
db:=max(0.001, db)
mc=(c1+c2+c3+c4+c5)/5
dc=(c1-mc)*(c1-mc)
dc:=dc+(c2-mc)*(c2-mc)
dc:=dc+(c3-mc)*(c3-mc)
dc:=dc+(c4-mc)*(c4-mc)
dc:=dc+(c5-mc)*(c5-mc)
dc:=sqrt(dc)
dc:=min(2, dc)
dc:=1-dc/2
dc:=max(0.001, dc)
g=close
if(da>db and da>dc)
g:=da*da*ma
else
if(db > da and db > dc)
g:=db*db*mb
else
g:=dc*dc*mc
wg=wma(g, 2)
plot(wg)
plot(0, color=black)
longCondition = true //crossover(sma(close, 14), sma(close, 28))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = true //crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)