Chiến lược giao dịch Backtest Center of Gravity


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

Chiến lược giao dịch Backtest Center of Gravity

Tổng quan

Chiến lược giao dịch đo đạc trọng tâm là một chiến lược giao dịch dựa trên đường trung bình di chuyển. Nó tính toán đường trung tâm của giá, tức là vị trí trọng tâm, và xây dựng một kênh giá, làm hành lang cho giá cả tài sản. Chiến lược này có thể được thay đổi thành đường trống trong cài đặt đầu vào.

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

Chiến lược này tính toán vị trí trọng tâm thông qua hàm hồi quy tuyến tính. Cụ thể, nó tính toán giá hồi quy tuyến tính của giá đóng cửa trong chu kỳ Length, tức là điểm trung tâm của giá. Sau đó, trên cơ sở đó, di chuyển lên và xuống% để xây dựng kênh giá. Biên giới dưới trên kênh giá hoạt động như tín hiệu tăng và giảm, tương ứng.

Phân tích lợi thế

Đây là một chiến lược đột phá rất đơn giản, với những lợi thế chính là:

  1. Những người dân ở đây không hề có ý kiến gì về vấn đề này.
  2. Kết quả phản hồi là tốt, có khả năng chiến đấu.
  3. Cài đặt tham số linh hoạt, có thể điều chỉnh tham số để thích ứng với môi trường thị trường khác nhau.
  4. Có thể cấu hình cách đảo ngược, phù hợp với hoạt động hai chiều.

Phân tích rủi ro

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

  1. Có thể có nguy cơ quá phù hợp trong quá trình phản hồi. Các tham số trong ổ cứng cần được tối ưu lại.
  2. Thâm nhập thất bại có thể dẫn đến tổn thất lớn.
  3. Tần suất giao dịch có thể cao, cần kiểm soát tỷ lệ sử dụng vốn.

Bạn có thể kiểm soát rủi ro bằng cách điều chỉnh các tham số như Bands, Length. Bạn cũng có thể thiết lập dừng lỗ để hạn chế tổn thất tối đa.

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

Chiến lược này có thể được tối ưu hóa hơn nữa:

  1. Kết hợp các chỉ số xu hướng để lọc tín hiệu và tránh giao dịch ngược.
  2. Tăng hệ thống ngăn chặn thiệt hại.
  3. Tối ưu hóa thiết lập tham số, tăng tỷ lệ lợi nhuận.
  4. Tăng khả năng kiểm soát vị trí và giảm rủi ro.

Tóm tắt

Chiến lược giao dịch phản hồi trọng tâm là một chiến lược đột phá đơn giản. Nó có suy nghĩ rõ ràng, khả năng thực tế mạnh mẽ, thiết lập tham số linh hoạt. Đồng thời, có một số rủi ro, cần kiểm soát tối ưu hóa thích hợp. Chiến lược này phù hợp với chiến lược cơ bản để thực hiện và tối ưu hóa, cũng rất phù hợp cho người mới học.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/03/2018
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Center Of Gravity Backtest", shorttitle="CFO", overlay = true)
Length = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
xLG = linreg(close, Length, m)
xLG1r = xLG + ((close * Percent) / 100)
xLG1s = xLG - ((close * Percent) / 100)
xLG2r = xLG + ((close * Percent) / 100) * 2
xLG2s = xLG - ((close * Percent) / 100) * 2
xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
pos = iff(close > xSignalR, 1,
       iff(close < xSignalS, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xLG, color=blue, title="CFO")
plot(xLG1r, color=green, title="LG1r")
plot(xLG2r, color=green, title="LG2r")
plot(xLG1s, color=red, title="LG1s")
plot(xLG2s, color=red, title="LG2s")