
Chiến lược này kết hợp các chỉ số xoắn ốc và đường trung bình di chuyển để xác định hướng và cường độ của xu hướng giá để tạo ra các tín hiệu mua bán và bán tháo tiềm năng. Địa điểm giao thoa này sẽ được đánh dấu trên biểu đồ khi đường chỉ số xoắn ốc tích cực phá vỡ đường chỉ số xoắn ốc âm và tạo ra tín hiệu mua bán nếu giá đóng cửa cao hơn đường trung bình di chuyển; và khi đường chỉ số xoắn ốc âm phá vỡ đường chỉ số xoắn ốc tích cực, nếu giá đóng cửa thấp hơn đường trung bình di chuyển sẽ tạo ra tín hiệu bán tháo.
Chỉ số xoắn ốc: bao gồm đường chỉ số tích cực xoắn ốc ((VI +) và đường chỉ số tiêu cực xoắn ốc ((VI-)). Nó được sử dụng để xác định hướng và cường độ của xu hướng giá.
Đường trung bình di chuyển: Sử dụng phương pháp trung bình di chuyển của lựa chọn (SMA, EMA, SMMA, WMA hoặc VWMA) để làm mượt dữ liệu giá, đường mượt được gọi là đường mượt.
Xác định tín hiệu mua và bán: Đánh dấu điểm giao điểm khi đường VI+ đi qua đường VI, tạo tín hiệu mua nhiều nếu giá đóng cửa cao hơn đường phẳng; khi đường VI đi qua đường VI+, tạo tín hiệu bán nếu giá đóng cửa thấp hơn đường phẳng.
Kết hợp các ưu điểm của nhận dạng xu hướng và bộ lọc trượt, nó có thể bắt được xu hướng trong thị trường xu hướng và tránh phát sinh tín hiệu sai trong thị trường chấn động.
Chỉ số xoắn ốc có thể xác định hiệu quả chiều hướng và cường độ của xu hướng. Đường trung bình di chuyển có thể lọc ra một số tiếng ồn.
Lập luận chiến lược đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.
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.
Trong một thị trường có xu hướng không rõ ràng, có thể có tín hiệu sai và dừng chân SERIAL.
Thiết lập tham số không đúng cách cũng ảnh hưởng đến hiệu suất của chiến lược. Ví dụ, thiết lập chiều dài trung bình di chuyển quá ngắn sẽ có tác dụng lọc kém, quá dài sẽ nhận ra sự thay đổi xu hướng chậm trễ.
Không có khả năng phòng ngừa các sự kiện bất ngờ, chẳng hạn như sự thay đổi mạnh mẽ của tình hình sau một sự kiện tài chính lớn.
Các chỉ số khác có thể được đưa vào để sử dụng, chẳng hạn như chỉ số khối lượng giao dịch để xác định mức độ tin cậy của xu hướng.
Thiết lập tham số tối ưu hóa, cân bằng theo dõi xu hướng và lọc tiếng ồn của đường trung bình di chuyển.
Thêm các chiến lược ngăn chặn để kiểm soát tổn thất.
Sử dụng các phương pháp như học máy để tự động tối ưu hóa các tham số.
Điều chỉnh vị trí kết hợp với mô-đun quản lý rủi ro.
Chiến lược này đạt được hiệu quả tốt trong việc nắm bắt xu hướng bằng cách kết hợp các chỉ số xoắn ốc và trung bình di chuyển một cách đơn giản và hiệu quả. Trong khi nhận ra hướng của xu hướng, chiến lược này có khả năng lọc tiếng ồn, có thể làm giảm tín hiệu sai. Nhìn chung, chiến lược có logic đơn giản, sử dụng linh hoạt, hoạt động tốt trong thị trường xu hướng.
/*backtest
start: 2023-02-01 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © DraftVenture
//@version=5
strategy("Vortex + Moving Average Strategy", overlay=true)
//Vortex settings
period_ = input.int(14, title="Vortex Length", minval=2)
VMP = math.sum( math.abs( high - low[1]), period_ )
VMM = math.sum( math.abs( low - high[1]), period_ )
STR = math.sum( ta.atr(1), period_ )
VIP = VMP / STR
VIM = VMM / STR
plot(VIP, title="VI +", color=color.white)
plot(VIM, title="VI -", color=color.white)
len = input.int(9, minval=1, title="MA Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.sma(src, len)
plot(out, color=color.blue, title="MA", offset=offset)
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")
smoothingLine = ma(out, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, offset=offset, display=display.none)
// Determine long and short conditions
longCondition = ta.crossover(VIP, VIM) and close > smoothingLine
shortCondition = ta.crossunder(VIP, VIM) and close < smoothingLine
crossCondition = ta.crossunder(VIP, VIM) or ta.crossunder(VIM, VIP)
// Strategy entry and exit logic
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
bgcolor(crossCondition ? color.new(color.white, 80) : na)
// Strategy by KP