
Эта стратегия называется многовременная стратегия торговли криптовалютами на основе средней амплитуды траектории. Основная идея заключается в том, чтобы создать торговый сигнал на основе средней амплитуды между частицами и ценами путем введения частиц, соответствующих траектории цены.
Эта стратегия сначала определяет частицу, соответствующую ценовой траектории. Эта частица подвержена гравитационным и инерционным воздействиям, и ее движущаяся траектория колеблется вокруг цены. Затем вычисляется среднее расстояние отклонения между частицей и ценой, и таким образом создается восходящая или нисходящая орбита.
В частности, формулы позиционирования частиц, определенные в стратегии:
pos:=if pos<close
nz(pos[1])+grav+traj
else
nz(pos[1])-(grav)+traj
Здесь.gravЭто гравитационная точка, которая приближает частицу к цене.trajИнерционные элементы, которые поддерживают тенденцию движения частиц. Эти два сочетания позволяют частицам колебаться вокруг цены.
Затем вычислить среднее расстояние отклонения между ценой и частицыavgdistВ результате строится траектория:
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)
Наконец, когда цена выше, чем вверх, делайте больше, а когда она ниже, делайте меньше.
По сравнению с традиционными стратегиями скользящих средних, у этой стратегии есть следующие преимущества:
Однако есть и другие риски:
Соответствующие меры управления рисками включают в себя: оптимизацию параметров для уменьшения ложных сигналов, определение четких правил выбора временных рамок, установление соответствующих стоп-позиций и т. д.
Эта стратегия может быть оптимизирована в следующих аспектах:
Эта стратегия улучшает стратегию движущихся средних путем введения ценовой траектории, которая имеет такие характеристики, как адаптация параметров, многовременные рамки и оптимизация стоп-убытков. Ключевое значение заключается в поиске подходящих уравнений движения частиц для моделирования цен. Хотя еще требуется дальнейшее тестирование и оптимизация, основные идеи являются жизнеспособными и заслуживают дальнейшего изучения.
/*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)