
Chiến lược này được gọi là chiến lược giao dịch đa thời gian dựa trên sự gia tăng trung bình của quỹ đạo. Ý tưởng chính của nó là xây dựng tín hiệu giao dịch dựa trên sự gia tăng trung bình giữa các hạt và giá bằng cách đưa ra một hạt phù hợp với quỹ đạo giá.
Chiến lược này bắt đầu bằng việc xác định một hạt phù hợp với quỹ đạo giá. Nó bị ảnh hưởng bởi lực hấp dẫn và quán tính, và quỹ đạo chuyển động của nó sẽ dao động xung quanh giá. Sau đó, tính toán khoảng cách lệch trung bình giữa hạt và giá và xây dựng một quỹ đạo lên xuống.
Cụ thể, công thức vị trí hạt được định nghĩa trong chiến lược là:
pos:=if pos<close
nz(pos[1])+grav+traj
else
nz(pos[1])-(grav)+traj
Ở đây.gravCác điểm hấp dẫn sẽ đưa các hạt đến gần giá.trajĐại diện cho các phần tử quán tính, để các hạt duy trì xu hướng chuyển động. Hai kết hợp này cho phép các hạt dao động xung quanh giá cả.
Và sau đó tính toán khoảng cách trung bình giữa giá và các hạt.avgdistVà để xây dựng một đường ray trên và dưới:
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)
Cuối cùng, khi giá lớn hơn đường lên, hãy làm nhiều hơn, và khi giá nhỏ hơn đường xuống, hãy làm trống.
So với các chiến lược trung bình di chuyển truyền thống, chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Các biện pháp quản lý rủi ro tương ứng bao gồm: tối ưu hóa các tham số để giảm tín hiệu giả, xác định rõ ràng các quy tắc khi chọn khung thời gian, thiết lập vị trí dừng lỗ thích hợp, v.v.
Chính sách này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này cải tiến chiến lược trung bình di chuyển bằng cách giới thiệu sự phù hợp của đường hướng giá, có các đặc điểm như tự điều chỉnh tham số, nhiều khung thời gian, tối ưu hóa dừng lỗ. Điều quan trọng là tìm ra phương trình chuyển động hạt phù hợp để mô phỏng giá. Mặc dù vẫn cần thử nghiệm và tối ưu hóa hơn nữa, nhưng ý tưởng cơ bản là khả thi và đáng để nghiên cứu thêm.
/*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)