
Die Strategie heißt “Multi-Time-Trading-Strategie” und basiert auf dem Kursdurchschnittsamplitude. Die Hauptidee besteht darin, ein Handelssignal zu erstellen, das auf dem Durchschnittsamplitude zwischen dem Partikel und dem Preis basiert, indem ein Partikel eingeführt wird, das dem Kurs entspricht.
Die Strategie definiert zunächst ein Partikel, das dem Preis entgegenkommt. Das Partikel wird von der Schwerkraft und der Inertie beeinflusst, und seine Bewegungsbahn bewegt sich um die Preisschwankungen. Dann wird die durchschnittliche Abweichungsdistanz zwischen dem Partikel und dem Preis berechnet, um eine Auf- und Abwärtsbahn zu erstellen.
Die Partikelpositionsformel, die in der Strategie definiert ist, lautet:
pos:=if pos<close
nz(pos[1])+grav+traj
else
nz(pos[1])-(grav)+traj
Hier drüben.gravDie Partikel werden durch die Schwerkraft angezogen, die die Partikel in Richtung des Preises bewegt.trajDiese beiden Kombinationen lassen die Partikel um die Preise schwanken.
Dann berechnen wir die durchschnittliche Abweichung zwischen dem Preis und den Partikeln.avgdistDas ist eine Art “Straße nach oben und nach unten”.
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)
Letztendlich, wenn der Preis höher ist als auf der Oberbahn, dann mehr und wenn er niedriger ist als auf der Unterbahn, dann weniger.
Im Vergleich zu herkömmlichen Moving Average Strategien hat diese Strategie folgende Vorteile:
Die Strategie birgt auch Risiken:
Entsprechende Risikomanagement-Maßnahmen umfassen: Optimierung der Parameter zur Verringerung der Falschsignale, Definition eines klaren Zeitrahmen-Zeitrahmen-Regels, Einstellung einer angemessenen Stop-Loss-Position usw.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Diese Strategie verbessert die Moving Average Strategie durch die Einführung von Preis-Trajectory-Anpassung und bietet Eigenschaften wie Parameter-Adaption, mehrere Zeiträume und Stop-Loss-Optimierung. Die Schlüssel ist, die richtige Partikel-Bewegungs-Gleichung zu finden, um die Preise zu simulieren. Obwohl weitere Tests und Optimierungen erforderlich sind, sind die grundlegenden Ideen praktikabel und lohnen sich weiter.
/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//2 revert
strategy("Jomy's Gyroscopic Bands",precision=8,commission_value=.03,overlay=true,initial_capital =10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)//,calc_on_order_fills= true, calc_on_every_tick=false)
leverage=input(1,"leverage")
a=0
a:= if volume > -1
nz(a[1])+1
else
nz(a)
vara=input(4.0,"variable a (10 to the power of __ ",step=.5)
vara:=pow(10,vara)
varb=input(12,"variable b")
pos=0.0
pos:=if a<=5
close
else
nz(pos[1])
grav=1/sqrt((close*close))*vara
traj=0.0
traj:=(nz(close[1])-nz(close[2])+nz(traj[1])*varb)/(varb+1)
pos:=if pos<close
nz(pos[1])+grav+traj
else
nz(pos[1])-(grav)+traj
plot(pos,color=color.white)
plot(close)
avgdist=abs(close-pos)
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)
plbbh=plot(bbh,color=color.red)
plbbl=plot(bbl,color=color.red)
long = close>pos
short = close<pos
fill(plbbh,plbbl,color=long?color.lime:color.red)
//bgcolor(close>bbh?color.lime:close<bbl?color.red:na,transp=90)
strategy.entry("Long1",strategy.long,when=long,qty=(strategy.equity*leverage/open))
strategy.close("Long1",when=not long)
strategy.entry("Short1",strategy.short,when=short,qty=(strategy.equity*leverage/open))
strategy.close("Short1",when=not short)
//plot(strategy.equity,color=color.lime,linewidth=4)