Chiến lược giao dịch đảo chiều dựa trên các khoảng trống chồng chéo


Ngày tạo: 2023-12-15 15:47:23 sửa đổi lần cuối: 2023-12-15 15:47:23
sao chép: 0 Số nhấp chuột: 586
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch đảo chiều dựa trên các khoảng trống chồng chéo

Tổng quan

Ý tưởng chính của chiến lược này là sử dụng chênh lệch chồng lên nhau của giá để đánh giá xu hướng thị trường. Khi chênh lệch đảo ngược từ âm sang dương, làm nhiều và làm rỗng khi đảo ngược từ dương sang âm, thuộc chiến lược giao dịch đảo ngược.

Nguyên tắc

Chiến lược này đầu tiên tính toán chênh lệch chồng chéo của giá (Close-Close[[1]), tức là giá đóng cửa ngày hôm nay trừ giá đóng cửa ngày hôm qua, sau đó tính tổng số chênh lệch trong 30 ngày gần đây. Khi tổng số quay ngược từ số âm sang số dương, sẽ tạo ra tín hiệu nhiều, và khi tổng số quay ngược từ số dương sang số âm, sẽ tạo ra tín hiệu thiếu hụt. Đây là một chiến lược giao dịch quay ngược điển hình.

Cụ thể, chiến lược duy trì ba chỉ số:

  1. ff: Tổng số chênh lệch trong 30 ngày gần nhất
  2. dd1: trung bình động 15 ngày của ff
  3. dd2: trung bình chuyển động 30 ngày của ff

Khi ff xoay từ âm sang dương, tức là nhỏ hơn 0 lớn hơn 0, và dd1 cũng xoay từ âm sang dương, tạo ra tín hiệu đa.

Khi ff từ tích cực trở thành âm, tức là lớn hơn 0 trở nên nhỏ hơn 0, và dd1 cũng từ tích cực trở thành âm, sẽ tạo ra tín hiệu trống.

Nếu bạn thực hiện nhiều thời gian ngắn hơn, bạn sẽ thiết lập một đường dừng lỗ.

Ưu điểm

Chiến lược này có những ưu điểm sau:

  1. Ý tưởng của tôi rất rõ ràng, dễ hiểu và dễ thực hiện.
  2. Sử dụng tính năng đảo ngược giá để có cơ hội thâm nhập tốt hơn tại các điểm biến động của thị trường.
  3. Kết hợp với cơ chế xác nhận kép, có thể lọc các đột phá giả.
  4. Các tham số có thể tùy chỉnh để thích ứng với các môi trường thị trường khác nhau.

Rủi ro

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

  1. Tỷ lệ thất bại trong đảo ngược cao hơn, dễ bị mất trong thị trường chấn động.
  2. Thiết lập tham số không đúng cách có thể dẫn đến giao dịch thường xuyên và tăng chi phí giao dịch.
  3. Cần kết hợp các chỉ số khác để có thể lọc được, và tránh các kết quả cao và thấp.

Các giải pháp tương ứng là:

  1. Thiết lập tỷ lệ dừng lỗ hợp lý, kiểm soát tổn thất đơn lẻ.
  2. Tối ưu hóa các tham số, tìm ra sự kết hợp tham số tốt nhất.
  3. Thêm các điều kiện lọc để tránh nhập cảnh không cần thiết.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa bằng cách:

  1. Tăng bộ lọc lượng giao dịch, ví dụ như tăng lượng giao dịch khi đột phá.
  2. Kết hợp với bộ lọc chỉ số xu hướng, tránh hoạt động ngược.
  3. Điều chỉnh động các tham số, cho phép tham số thay đổi theo tình trạng thị trường.
  4. Tối ưu hóa các cơ chế dừng lỗ, chẳng hạn như dừng lỗ khi giá di chuyển

Tóm tắt

Chiến lược này đánh giá điểm biến đổi của thị trường bằng cách tính toán chênh lệch giá và là một chiến lược giao dịch đảo ngược điển hình. Ý tưởng của chiến lược là rõ ràng, dễ thực hiện và có giá trị thực tế. Nhưng cũng có một số rủi ro cần được tối ưu hóa hơn nữa để thích ứng với sự thay đổi của thị trường. Nói chung, chiến lược này cung cấp một khuôn khổ cơ bản cho giao dịch định lượng và có thể mở rộng trên cơ sở này.

Mã nguồn chiến lược
/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Fst",currency="USD",initial_capital=100000)

//Length0 = input(30, title="fastperiod", minval=1)
Length = input(30, title="SUMM")
Length1 = input(15, title="Signalperiod", minval=1)
Length2= input(30, title="Info", minval=1)
profit=input(95, title="profit", minval=1)
loss=input(95, title="loss", minval=1)
//f=iff(close>open,close-open,iff(close>open[1],close[1]-open[1],0))
f=0.0
dd1=0.0
dd2=0.0
ff=0.0
ff0=0.0
f:=close-close[1]
ff:=sum(f,Length)
//ff0:=sum(f,Length0)
dd1:=wma(ff,Length1)
dd2:=wma(ff,Length2)

bull=ff<0 and dd1<0 and ff[1]<dd1 and ff>dd1 and abs(ff)>20
bear=ff>0 and dd1>0 and ff[1]>dd1 and ff<dd1 and abs(ff)>20
if(bull)
    
    strategy.entry("long", strategy.long)
strategy.exit("exit", "long", profit = close*profit/1000, loss=close*loss/1000) 

strategy.close("long", when = bear)




plotchar(bull,size=size.small,location=location.bottom)
plot(ff,color=black,linewidth=2)
plot(ff0,color=green,linewidth=2)
plot(wma(ff,Length1),color=red,linewidth=2)
plot(wma(ff,Length2),color=blue,linewidth=2)
plot(wma(ff,Length1)-wma(ff,Length2),color=green,style=columns)

plot(0,linewidth=1,color=black)
plot(500,linewidth=1,color=red)
plot(-500,linewidth=1,color=red)