Chiến lược theo dõi đà tăng giá

Tác giả:ChaoZhang, Ngày: 2024-01-03 17:32:14
Tags:

img

Tổng quan

Chiến lược này sử dụng các chỉ số động lực giá để xác định hướng giao dịch. Cụ thể, nó tính toán giá trung bình động và giá trung bình tương ứng. Khi giá vượt trên giá trung bình động và giá trung bình, một tín hiệu mua được tạo ra. Để lọc các tín hiệu sai, nó không yêu cầu các tín hiệu trước đó tương tự. Sau đó nó lưu tình trạng tín hiệu và tạo ra tín hiệu vị trí mở cuối cùng kết hợp với trung bình động. Chiến lược cũng chứa các thiết lập dừng lỗ và lấy lợi nhuận.

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

Chiến lược chủ yếu dựa trên các chỉ số động lực giá để đánh giá hướng xu hướng.

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

Ở đâu?swmalà đường trung bình di chuyển trơn, vàvwaplà giá trung bình theo khối lượng. cả hai có thể phản ánh mức giá trung bình.

Sau đó so sánh giá với mức trung bình để xem liệu giá có vượt quá mức trung bình động và giá trung bình, để đánh giá xem đó có phải là tín hiệu tăng hay không:

swmaLong = close > swmaClose 
vwapLong = close > vwapClose

Để lọc các tín hiệu sai, nó không yêu cầu các tín hiệu trước đây từ hai chỉ số sau:

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

Tiếp theo, lưu tín hiệu tăng:

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

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

startLong = saveLong and swmaLong

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

Chiến lược này cũng chứa các thiết lập dừng lỗ và lấy lợi nhuận. Khoảng cách dừng lỗ có thể cấu hình và lấy lợi nhuận được thiết lập với một số lần số dừng lỗ nhất định.

Phân tích lợi thế

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

  1. Sử dụng các chỉ số động lực giá có thể đánh giá tốt hơn hướng xu hướng
  2. Sự kết hợp của hai chỉ số và xác minh nhiều bước có thể lọc các tín hiệu sai và làm cho chiến lược đáng tin cậy hơn
  3. Các thiết lập dừng lỗ và lấy lợi nhuận là hợp lý để kiểm soát rủi ro giao dịch duy nhất
  4. Các thông số chiến lược có thể được cấu hình để thích nghi với các môi trường thị trường khác nhau
  5. Chiến lược logic là đơn giản và thẳng thắn, dễ hiểu và thực hiện

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ố trung bình động có sự chậm trễ và có thể bỏ qua một số biến động giá
  2. Hiệu ứng phụ thuộc vào cài đặt tham số, và các kết hợp tham số khác nhau có thể làm cho sự khác biệt lớn
  3. Có tương đối ít tín hiệu mua, với một số rủi ro thương mại bị bỏ lỡ
  4. Xác minh nhiều bước sẽ lọc một số cơ hội có thể ảnh hưởng đến mức độ lợi nhuận

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

  1. Kiểm tra các tham số trung bình động khác nhau để tối ưu hóa tham số
  2. Dễ dàng đơn giản hóa một chút phán đoán logic để tăng tín hiệu mua
  3. Điều chỉnh tỷ lệ dừng lỗ và lấy lợi nhuận để 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 theo các hướng sau:

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

Những tối ưu hóa này có thể cải thiện tính linh hoạt, vững chắc và lợi nhuận của chiến lược.

Tóm lại

Nhìn chung, chiến lược theo dõi đà tăng giá này là một chiến lược theo dõi xu hướng đơn giản, đơn giản và hợp lý. Chiến lược sử dụng giá trung bình và giá trung bình để xác định hướng đà tăng giá, và thiết kế một 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 chứa các thiết lập dừng lỗ và lấy lợi nhuận hợp lý. Về mã, logic chiến lược rất ngắn gọn, chỉ yêu cầu 20 + dòng kịch bản Pine để thực hiện. Tóm lại, chiến lược này là một ví dụ học tập rất tốt, người mới bắt đầu có thể sử dụng nó như một điểm khởi đầu rất tốt để hiểu các chiến lược giao dịch định lượng. Tất nhiên, chính chiến lược cũng có giá trị giao dịch thực tế. Thông qua tối ưu hóa tham số và mở rộng chức năng, nó có thể trở thành một hệ thống theo dõi giao dịch thực tế để tránh tiếng ồn và xu hướng.


/*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)


Thêm nữa