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.
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?swma
là đường trung bình di chuyển trơn, vàvwap
là 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.
Chiến lược có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Các biện pháp đối phó:
Chiến lược cũng có thể được tối ưu hóa theo các hướng sau:
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.
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)