Chiến lược theo dõi động lượng giá


Ngày tạo: 2024-01-03 17:32:14 sửa đổi lần cuối: 2024-01-03 17:32:14
sao chép: 0 Số nhấp chuột: 586
1
tập trung vào
1619
Người theo dõi

Chiến lược theo dõi động lượng giá

Tổng quan

Chiến lược này sử dụng chỉ số động lực giá để đánh giá hướng giao dịch. Cụ thể, tính toán đường trung bình và giá trung bình, tạo ra tín hiệu mua khi giá vượt qua đường trung bình và giá trung bình. Để lọc tín hiệu giả, yêu cầu không có tín hiệu tương tự trước đó.

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

Chiến lược này chủ yếu dựa trên chỉ số động lực giá để đánh giá xu hướng. Đầu tiên, tính toán đường trung bình và giá trung bình của giá:

swmaClose = swma(close)  
vwapClose = vwap(close)

Trong đó,swmaTrung bình vận động:vwapGiá trung bình có trọng số giao dịch. Cả hai đều phản ánh mức giá trung bình.

Sau đó, so sánh giá với giá trung bình để xác định xem giá trung bình và giá trung bình có nằm trên đường trung bình hay không, để xác định xem đó có phải là tín hiệu lạc quan hay không:

swmaLong = close > swmaClose
vwapLong = close > vwapClose 

Để lọc các tín hiệu giả, yêu cầu hai chỉ số này không được đưa ra trước đó:

triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]

Sau đó, hãy lưu lại thông báo của bạn:

saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]

Cuối cùng, một tín hiệu mở cửa được tạo ra khi tín hiệu thăng giá được giữ lại và giá lại đi qua đường trung bình:

startLong = saveLong and swmaLong

Điều này có thể lọc ra một số tín hiệu giả và làm cho tín hiệu đáng tin cậy hơn.

Chiến lược cũng bao gồm thiết lập dừng lỗ. Khoảng cách dừng lỗ có thể được cấu hình, thiết lập dừng lỗ là một số nhân.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Sử dụng chỉ số động lực giá để đánh giá xu hướng
  2. Kết hợp với chỉ số kép và phán đoán nhiều bước, có thể lọc các tín hiệu giả, làm cho chiến lược đáng tin cậy hơn
  3. Cài đặt Stop Loss là hợp lý để kiểm soát rủi ro giao dịch đơn lẻ
  4. Các tham số chiến lược có thể được cấu hình để thích ứng với các môi trường thị trường khác nhau
  5. Chiến lược logic đơn giản, trực tiếp và dễ hiểu

Phân tích rủi ro

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

  1. Chỉ số đường trung bình bị tụt hậu, có thể bỏ lỡ một số biến động giá
  2. Hiệu quả phụ thuộc vào cài đặt tham số, hiệu quả của các kết hợp tham số khác nhau khác nhau
  3. Có ít tín hiệu mua, có nguy cơ mất phiếu
  4. Các nhà phân tích cho rằng việc phân tích nhiều bước có thể ảnh hưởng đến lợi nhuận.

Phản ứng:

  1. Có thể thử nghiệm các tham số đường trung bình khác nhau, tối ưu hóa các thiết lập tham số
  2. Đơn giản hóa hợp lý phán đoán, tăng tín hiệu mua
  3. Điều chỉnh tỷ lệ dừng lỗ, kiểm soát tổn thất đơn lẻ

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

Chiến lược này cũng có thể được tối ưu hóa theo các hướng sau:

  1. Kiểm tra thêm các chỉ số động lực giá như MACD, DMI, v.v.
  2. Tăng khả năng phân tích tín hiệu bán và giao dịch hai chiều
  3. Kết hợp với chỉ số khối lượng giao dịch để tránh đột phá giả tiềm năng
  4. Cài đặt tham số tối ưu hóa dựa trên kết quả phản hồi
  5. Xem xét các tham số điều chỉnh tự động theo môi trường thị trường
  6. Thêm các thuật toán học máy để tối ưu hóa tham số thích ứng

Những cải tiến này có thể cải thiện tính linh hoạt, ổn định và lợi nhuận của chiến lược.

Tóm tắt

Chiến lược này sử dụng đường trung bình và giá trung bình để xác định xu hướng chuyển động giá, và thiết kế cơ chế xác minh nhiều bước để cải thiện chất lượng tín hiệu. Chiến lược cũng bao gồm thiết lập dừng lỗ hợp lý. Về mặt mã, logic của chiến lược rất đơn giản, chỉ cần hơn 20 dòng kịch bản pin để thực hiện. Nói chung, chiến lược này là một trường hợp học rất tốt, người mới bắt đầu có thể hiểu chiến lược giao dịch định lượng.

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

//@version=4
strategy(title = "Simple Price Momentum", shorttitle = "SPM", overlay = true, initial_capital = 20000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025)

// How To Create A Simple Trading Strategy With TradingView
// https://docs.google.com/document/d/1fXxCtPuGgTXb-RuBJNbwlfgkeiLTK5060LfTrzRlr5k/view

swmaClose = swma(close)
vwapClose = vwap(close)

swmaLong = close > swmaClose
vwapLong = close > vwapClose

triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]

startLong = saveLong and swmaLong
startLong := input(false, "Consecutive Orders") ? startLong : startLong and not startLong[1]

stopLoss = input(250, "Stop Loss", step = 50)
takeProfit = input(10, "Reward/Risk") * stopLoss

strategy.entry("Open Long", strategy.long, when = startLong)
strategy.exit("Exit Long", "Open Long", profit = stopLoss, loss = takeProfit)

// bgcolor(swmaLong ? color.blue : na)
// bgcolor(vwapLong ? color.orange : na)
// bgcolor(triggerLong ? color.purple : na)
// bgcolor(saveLong ? color.yellow : na)
bgcolor(startLong[1] ? color.green : na)