Chiến lược giao dịch IGKEIT nhiều lần dựa trên biên độ trung bình quỹ đạo


Ngày tạo: 2023-11-24 17:29:39 sửa đổi lần cuối: 2023-11-24 17:29:39
sao chép: 2 Số nhấp chuột: 586
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch IGKEIT nhiều lần dựa trên biên độ trung bình quỹ đạo

Tổng quan

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á.

Nguyên tắc chiến lược

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.

Lợi thế chiến lược

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:

  1. Dùng quỹ đạo của hạt để mô phỏng tốt hơn sự biến động của giá cả;
  2. Đường di chuyển trên và dưới có thể tự điều chỉnh dựa trên cường độ trung bình lịch sử, có lợi cho việc nắm bắt đột phá;
  3. Thiết kế nhiều khung thời gian, có thể chuyển đổi giữa các khung thời gian cao và thấp, để nắm bắt nhiều cơ hội giao dịch hơn.

Rủi ro chiến lược

Chiến lược này cũng có một số rủi ro:

  1. Các tham số chuyển động hạt được thiết lập không đúng có thể dẫn đến tín hiệu giả hoặc tín hiệu bị mất;
  2. Có thể xảy ra xung đột tín hiệu khi chuyển đổi giữa nhiều khung thời gian;
  3. Việc phá vỡ tín hiệu quỹ đạo lên xuống có thể làm tăng nguy cơ dừng.

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.

Hướng tối ưu hóa chiến lược

Chính sách này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa các tham số liên quan đến chuyển động của hạt, phù hợp với quỹ đạo giá;
  2. Tăng số lớp của khung thời gian để xác nhận tín hiệu trong khung thời gian cao hơn;
  3. Tham gia đánh giá chỉ số biến động, tránh phát ra tín hiệu khi thị trường biến động mạnh;
  4. Tối ưu hóa chiến lược dừng lỗ, giảm lỗ hổng đơn.

Tóm tắt

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.

Mã nguồn chiến lược
/*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)