Chiến lược theo dõi xu hướng dựa trên sai lệch

Tác giả:ChaoZhang, Ngày: 2024-01-22 11:51:28
Tags:

img

Tổng quan

Chiến lược này xác định và theo dõi xu hướng dựa trên các chỉ số chênh lệch giá kết hợp với các khu vực khôi phục Fibonacci.

Chiến lược logic

Chiến lược này sử dụng VWAP như đường trung điểm của giá. Sau đó, các dải trên và dưới của 1.618 và 2.618 độ lệch chuẩn của biến động giá được tính toán. Một tín hiệu dài được tạo ra khi giá vượt qua dải dưới lên. Một tín hiệu ngắn được tạo ra khi giá vượt qua dải trên xuống.

Các tín hiệu dừng lỗ EXIT sau khi mở các vị trí dài hoặc ngắn là: đường dừng lỗ cho các vị trí dài là dải dưới và cho các vị trí ngắn là dải trên.

Cụ thể, nó bao gồm các bước sau:

  1. Tính toán VWAP như đường trung điểm của giá

  2. Tính toán độ lệch chuẩn sd của giá như một chỉ số biến động giá

  3. Tính toán các dải trên và dưới dựa trên sd. Dải trên là VWAP + 1.618sd và VWAP + 2.618Các dải dưới là VWAP - 1.618sd và VWAP - 2.618sd.

  4. Một tín hiệu dài được tạo ra khi giá vượt qua dải dưới 1.618 lên. Một tín hiệu ngắn được tạo ra khi giá vượt qua dải trên 1.618 xuống.

  5. EXIT dừng lỗ dài: giá vượt qua dải dưới 2.618; EXIT dừng lỗ ngắn: giá vượt qua dải trên 2.618

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Các chỉ số lệch giá có thể xác định hiệu quả xu hướng giá và theo dõi xu hướng

  2. Các khu vực khôi phục Fibonacci làm cho bước vào và dừng lỗ rõ ràng hơn

  3. VWAP là đường trung điểm của giá cũng tăng giá trị tham chiếu của chỉ số

  4. Các thông số có thể được điều chỉnh để phù hợp với các sản phẩm và khung thời gian khác nhau

Phân tích rủi ro

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

  1. Nó có thể chịu tổn thất lớn hơn trong thời gian đảo ngược xu hướng

  2. Cài đặt tham số không chính xác cũng có thể ảnh hưởng đến hiệu suất chiến lược

  3. Có một rủi ro dừng lỗ cao hơn trong thời gian biến động giá mạnh mẽ

Các biện pháp đối phó:

  1. Giảm thời gian nắm giữ và ngăn chặn lỗ kịp thời

  2. Tối ưu hóa các tham số để tìm kết hợp tham số tốt nhất

  3. Tăng quản lý kích thước vị trí để kiểm soát lỗ đơn

Hướng dẫn tối ưu hóa

Chiến lược cũng có thể được tối ưu hóa trong các lĩnh vực sau:

  1. Bao gồm các chỉ số xu hướng để tránh giao dịch ngược xu hướng

  2. Thêm cơ chế quản lý kích thước vị trí

  3. Tối ưu hóa cài đặt tham số

  4. Kiểm tra lại và tối ưu hóa trong nhiều khung thời gian

Tóm lại

Chiến lược này xác định và theo dõi xu hướng dựa trên khái niệm lệch giá kết hợp với các dải lệch chuẩn VWAP và Fibonacci. So với việc sử dụng các chỉ số duy nhất như đường trung bình động, chiến lược này có phán đoán và kiểm soát rủi ro rõ ràng hơn. Thông qua điều chỉnh và tối ưu hóa tham số, chiến lược có thể được điều chỉnh cho các sản phẩm và khung thời gian khác nhau để đạt được hiệu suất tốt hơn.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mysteriown

//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)

// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------

fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)


// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------

t = time(reso)
debut = na(t[1]) or t > t[1]

addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol

sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)

Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd


// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------

plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)

fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)


// -------------------------------------
// ------------ Positions --------------
// -------------------------------------

bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev

//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------

strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))

strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))

Thêm nữa