Paraboloszillator auf der Suche nach Höhen- und Tiefenstrategie

Schriftsteller:ChaoZhang, Datum: 2024-02-20 16:01:12
Tags:

img

Übersicht

Diese Strategie ermittelt Preishochs und -Tiefs, indem sie gleitende Durchschnitte und Varianzen über verschiedene Zeiträume berechnet, um Trend und Volatilität zu bestimmen.

Strategie Logik

Die Kernlogik dieser Strategie besteht darin, gleitende Durchschnitte und Varianzen in den letzten verschiedenen Zeiträumen zu berechnen. Insbesondere berechnet sie 5-tägige, 4-tägige und 3-tägige gleitende Durchschnitte (ma, mb, mc) und Varianzen (da, db, dc). Sie vergleicht dann die Größen und wählt den Zeitraum mit der höchsten Varianz aus, um den aktuellen Trend darzustellen. Schließlich multipliziert sie die Quadratvarianz der repräsentativen Periode mit ihrem gleitenden Durchschnitt, um die endgültige Kurve wg auszugeben.

Wenn also der Preis nach oben oder unten bricht, verändern sich der repräsentative Zeitraum und seine Varianz erheblich, wodurch sich auch wg deutlich verändert und Höchst- und Tiefstwerte ermittelt werden.

Analyse der Vorteile

Diese Idee, Trendänderungen anhand verschiedener Zeiträume zu beurteilen, ist wirksam und kann Preisschwankungspunkte eindeutig identifizieren.

Die Berechnung von gleitendem Durchschnitt und Varianz ist ebenfalls einfach und effizient.

Risikoanalyse

Die in dieser Strategie verwendeten Zeiträume sind kurz. Für mittelfristige bis langfristige Zwecke ist das Urteil möglicherweise nicht genau und umfassend genug. Kurzfristige Preisschwankungen können zu Fehlern führen.

Auch die Gewichtung von gleitenden Durchschnitten und Varianzen beeinflusst die Urteilsergebnisse.

Optimierungsrichtlinien

Es könnten weitere Zeiträume mit unterschiedlicher Länge hinzugefügt werden, um eine Kombination zu bilden, um das Urteil umfassender zu machen, z. B. 10 Tage, 20 Tage für mittelfristige und langfristige Zwecke.

Es könnten auch verschiedene Gewichtungssysteme getestet werden, um die Einstellung der Gewichtung flexibler zu gestalten.

Darüber hinaus könnten andere Indikatoren, wie beispielsweise ein ungewöhnliches Handelsvolumen, berücksichtigt werden, um nicht durch Arbitragehandel irregeführt zu werden.

Schlussfolgerung

Die allgemeine Logik dieser Strategie ist klar und leicht zu verstehen, indem sie gleitende Durchschnitte und Varianzen verwendet, um den Preistrend und die Volatilität zu beurteilen, und sie dann kombiniert, um eine Kurve zu erzeugen, die Höhen und Tiefen eindeutig identifizieren kann. Ein solches mehrjähriges kombiniertes Urteil kann sowohl kurz- als auch langfristige Marktmerkmale effektiv erfassen und die Genauigkeit der Inflexsionspunkterkennung 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)

Mehr