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 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:
Tính toán VWAP như đường trung điểm của giá
Tính toán độ lệch chuẩn sd của giá như một chỉ số biến động giá
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.
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.
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
Chiến lược có những lợi thế sau:
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
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
VWAP là đường trung điểm của giá cũng tăng giá trị tham chiếu của chỉ số
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
Chiến lược này cũng có một số rủi ro:
Nó có thể chịu tổn thất lớn hơn trong thời gian đảo ngược xu hướng
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
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ó:
Giảm thời gian nắm giữ và ngăn chặn lỗ kịp thời
Tối ưu hóa các tham số để tìm kết hợp tham số tốt nhất
Tăng quản lý kích thước vị trí để kiểm soát lỗ đơn
Chiến lược cũng có thể được tối ưu hóa trong các lĩnh vực sau:
Bao gồm các chỉ số xu hướng để tránh giao dịch ngược xu hướng
Thêm cơ chế quản lý kích thước vị trí
Tối ưu hóa cài đặt tham số
Kiểm tra lại và tối ưu hóa trong nhiều khung thời gian
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))