Chiến lược xu hướng khối lượng giá mở rộng

Tác giả:ChaoZhang, Ngày: 2024-01-18 16:32:28
Tags:

img

Tổng quan

Chiến lược xu hướng khối lượng giá mở rộng (EPVT) là một chiến lược kết hợp các chỉ số kỹ thuật. Nó kết hợp chỉ số tăng tốc động lực với các chỉ số phụ trợ khác để xác định các điểm đảo ngược xu hướng tiềm năng và thay đổi động lực.

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

Chỉ số cốt lõi của chiến lược này là xu hướng khối lượng giá mở rộng (EPVT). Phương pháp tính toán của nó là: khối lượng giao dịch tích lũy * tỷ lệ thay đổi giá. Sau đó tính giá trị tối đa và tối thiểu của EPVT trong một khoảng thời gian nhất định để có được phạm vi chuẩn.

Khi đường cong chỉ số EPVT vượt qua trục không, nó cho thấy áp lực mua đang tăng và một tín hiệu dài xuất hiện.

Để cải thiện chất lượng tín hiệu, chiến lược cũng sử dụng một đường trung bình động đơn giản để xác nhận độ tin cậy của những thay đổi xu hướng.

Phân tích lợi thế

Chiến lược này kết hợp các chỉ số từ ba chiều: xu hướng, động lực và khối lượng giao dịch, có thể đánh giá toàn diện hơn về tinh thần và cường độ thị trường.

Thiết lập ba mức lợi nhuận để thoát ra có thể chọn tỷ lệ lợi nhuận khác nhau theo sở thích rủi ro của riêng bạn.

Phân tích rủi ro

Chiến lược này tương đối phụ thuộc vào hình thái của đường cong chỉ số và sẽ phát ra tín hiệu sai khi xu hướng không điển hình.

Các tham số có thể được điều chỉnh thích hợp hoặc các chỉ số lọc khác có thể được thêm vào để tối ưu hóa.

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

  1. Tối ưu hóa tham số, chẳng hạn như điều chỉnh tham số chu kỳ của EPVT để tìm kết hợp tham số tối ưu.

  2. Thêm các điều kiện lọc xu hướng, chẳng hạn như đánh giá hướng của kênh giá hoặc đường trung bình động dựa trên tín hiệu EPVT.

  3. Tối ưu hóa các chiến lược dừng lỗ, chẳng hạn như đặt dừng giá trị cố định hoặc dừng ATR.

Tóm lại

Chiến lược xu hướng khối lượng giá mở rộng tăng tốc nắm bắt sự thay đổi tâm lý thị trường thông qua chỉ số EPVT, tận dụng các điểm chuyển hướng tiềm năng. Thiết lập ba mức lợi nhuận của các tỷ lệ khác nhau cho phép đáp ứng các ham muốn rủi ro khác nhau của các nhà đầu tư. Chiến lược này đáng được thử nghiệm và tối ưu hóa hơn nữa để trở thành một công cụ hiệu quả để xác định những thay đổi xu hướng ngắn hạn trên thị trường.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Extended Price Volume Trend", overlay=true )//@version=5
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
    runtime.error("No volume is provided by the data vendor.")
src = close
lenght = input(200,"Trend Lenght")   
vt = ta.cum(ta.change(src)/src[1]*volume)
upx = ta.highest(vt,lenght)
downx = ta.lowest(vt,lenght)
basex = (upx +downx)/2
VTX = vt - basex
VTY = ta.valuewhen(ta.cross(VTX,0),close,0)
plot(VTY, color=color.black, title="Extended-PVT")

/////////////////////// STRATEGY ////////////////
/////////////////////// TAKE PROFIT SECTION ////////////////
longConditionx = ta.crossover(close,VTY)
ShortConditionx = ta.crossunder(close,VTY)
tp1 = input.int(10, minval=1,title = "TP-1")
tp2 = input.int(20, minval=1,title = "TP-2")
tp3 = input.int(30, minval=1,title = "TP-3")

ematp = ta.ema(close,2)
TPTAKA1S = VTY*(1-tp1/100)
plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1)
TPTAKA2S = VTY*(1-tp2/100)
plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1)
TPTAKA3S = VTY*(1-tp3/100)
plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1)

TPTAKA1B = VTY*(1+tp1/100)
plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1)
TPTAKA2B = VTY*(1+tp2/100)
plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1)
TPTAKA3B = VTY*(1+tp3/100)
plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1)

BUYTP = ta.crossunder(close,VTY) or ta.crossunder(ematp,TPTAKA1B) or ta.crossunder(ematp,TPTAKA2B) or ta.crossunder(ematp,TPTAKA3B) 
SELLTP = ta.crossover(close,VTY) or ta.crossover(ematp,TPTAKA1S) or ta.crossover(ematp,TPTAKA2S) or ta.crossover(ematp,TPTAKA3S)
/////////////////////// STRATEGY ////////////////
// Check for Long Entry
longCondition = longConditionx==true
if longCondition
    strategy.entry('Long', strategy.long, comment = "ENTER-LONG")

buyclose = ShortConditionx==true or BUYTP==true 
// Exit condition 
strategy.close('Long', when=buyclose or BUYTP==true, comment = "EXIT-LONG")

// Check for Short Entry
ShortCondition = ShortConditionx==true
if ShortCondition
    strategy.entry('Short', strategy.short, comment = "ENTER-SHORT")

sellclose = longConditionx==true or SELLTP ==true
// Exit condition 
strategy.close('Short', when=sellclose or SELLTP==true, comment = "EXIT-SHORT")
///// END OF STRATEGY ///////////


Thêm nữa