
Chiến lược này là một chiến lược giao dịch định lượng dựa trên 52 tuần cao thấp, khối lượng giao dịch trung bình và giá phá vỡ. Nó chủ yếu tập trung vào giá cổ phiếu gần 52 tuần cao, khối lượng giao dịch tăng đáng kể và mức độ biến động giá trong ngày ở mức trung bình.
Các nguyên tắc cốt lõi của chiến lược bao gồm:
Theo dõi 52 tuần cao và thấp: Chiến lược liên tục theo dõi và cập nhật 52 tuần cao nhất và thấp nhất của cổ phiếu, những mức giá này thường được coi là mức hỗ trợ và kháng cự quan trọng.
Giá gần mức cao 52 tuần: Chiến lược tìm kiếm cổ phiếu cách mức cao 52 tuần không quá 10% (có thể điều chỉnh) cho thấy cổ phiếu có thể nằm trong vùng mạnh.
Bước đột phá: Chiến lược tính toán khối lượng giao dịch trung bình trong 50 ngày và tìm kiếm khối lượng giao dịch trong ngày cao hơn đáng kể so với mức trung bình (bằng cách mặc định là 1,5 lần), điều này có thể cho thấy sự quan tâm của thị trường đối với cổ phiếu.
Hạn chế biến động giá: Chiến lược đặt ra giới hạn tối đa cho biến động giá hàng ngày (hàng ngày là 3%, tuần hoặc tháng là 10%) để tránh nhập cảnh trong trường hợp biến động quá mức.
Tín hiệu mua: Chiến lược sẽ phát ra tín hiệu mua khi cổ phiếu đồng thời đáp ứng ba điều kiện gần mức cao 52 tuần, phá vỡ khối lượng giao dịch và biến động giá trung bình.
Phân tích đa chiều: kết hợp nhiều chiều như giá cả, khối lượng giao dịch và dữ liệu lịch sử để tăng độ tin cậy của tín hiệu.
Điều chỉnh động lực: 52 tuần cao thấp sẽ được cập nhật động theo thời gian, cho phép chiến lược thích ứng với môi trường thị trường khác nhau.
Kiểm soát rủi ro: Giảm rủi ro khi tham gia vào thời điểm biến động mạnh bằng cách hạn chế biến động giá trong ngày.
Hỗ trợ hình ảnh: Chiến lược đánh dấu 52 tuần cao thấp và tín hiệu vào trên biểu đồ, giúp các nhà giao dịch hiểu trực quan tình trạng thị trường.
Tính linh hoạt về tham số: Nhiều tham số quan trọng có thể được điều chỉnh theo thị trường khác nhau và sở thích cá nhân, tăng khả năng thích ứng của chiến lược.
Rủi ro phá vỡ giả: Chỉ dựa vào giá gần mức cao nhất và khối lượng giao dịch tăng có thể dẫn đến sai lầm trong việc đánh giá phá vỡ giả là phá vỡ thực sự.
Sự chậm trễ: Sử dụng dữ liệu 52 tuần có thể khiến chiến lược phản ứng chậm với sự thay đổi của thị trường.
Quá giao dịch: Trong thị trường biến động mạnh, có thể kích hoạt các tín hiệu đầu vào thường xuyên, làm tăng chi phí giao dịch.
Hành động một chiều: Chiến lược chỉ tập trung vào việc thực hiện nhiều cơ hội, có thể gặp rủi ro lớn hơn trong thị trường giảm.
Bỏ qua các nguyên tắc cơ bản: Chiến lược chỉ dựa trên các chỉ số kỹ thuật mà không xem xét các nguyên tắc cơ bản của công ty và các yếu tố kinh tế vĩ mô.
Thêm các chỉ số xác nhận xu hướng: Bạn có thể thêm các chỉ số xác nhận xu hướng như đường trung bình di chuyển để giảm nguy cơ phá vỡ giả.
Tối ưu hóa phân tích khối lượng giao dịch: Xem xét sử dụng các phương pháp phân tích khối lượng giao dịch phức tạp hơn, chẳng hạn như chỉ số khối lượng giao dịch tương đối (RVI), để cải thiện độ chính xác của phán đoán khối lượng giao dịch vượt qua.
Tăng cơ chế dừng lỗ và ngăn chặn: thiết lập mức dừng lỗ và ngăn chặn hợp lý để kiểm soát rủi ro và khóa lợi nhuận
Tham gia vào chiến lược giảm giá: Xem xét thêm các hoạt động giảm giá khi giá gần mức thấp 52 tuần và đáp ứng các điều kiện khác để làm cho chiến lược toàn diện hơn.
Tiếp theo là việc đưa ra các tiêu chí cơ bản: kết hợp các chỉ số cơ bản như tỷ lệ P/E, giá trị thị trường, và các tiêu chí đầu tiên được chọn lọc.
Chiến lược này dựa trên 52 tuần cao thấp, khối lượng giao dịch trung bình và giá phá vỡ cung cấp cho các nhà giao dịch một khung phân tích đa chiều. Chiến lược này cố gắng nắm bắt các cơ hội tăng tiềm năng bằng cách xem xét toàn diện vị trí giá, thay đổi khối lượng giao dịch và động lực giá. Tuy nhiên, các nhà giao dịch cần chú ý đến rủi ro phá vỡ giả khi sử dụng chiến lược này và cân nhắc kết hợp với các công cụ phân tích kỹ thuật và cơ bản khác để tăng cường độ tin cậy của quyết định. Với sự tối ưu hóa liên tục và điều chỉnh cá nhân, chiến lược này có tiềm năng trở thành một công cụ giao dịch hiệu quả.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Custom Stock Trading Strategy with 50-Day Average Volume", overlay=true)
// Define input parameters
percentFromHigh = input.int(10, title="Percentage from 52-Week High for Entry")
volumeMultiplier = input.float(1.5, title="Volume Multiplier for Exponential Rise") // Multiplier to define significant increase in volume
// Define period for average volume
averageVolumePeriod = 50 // 50-day average volume
// Calculate 52-week high and low
weeks = 52 // Number of weeks in a year
daysPerWeek = 5 // Assuming 5 trading days per week
length = weeks * daysPerWeek
// 52-week high and low calculations
highestHigh = ta.highest(close, length)
lowestLow = ta.lowest(close, length)
// // Plot horizontal lines for 52-week high and low
// var line highLine = na
// var line lowLine = na
// if (bar_index == ta.highest(bar_index, length)) // Update lines when the highest index is detected
// line.delete(highLine)
// line.delete(lowLine)
// highLine := line.new(x1=bar_index[0], y1=highestHigh, x2=bar_index + 1, y2=highestHigh, color=color.green, width=2, style=line.style_solid, extend=extend.right)
// lowLine := line.new(x1=bar_index[0], y1=lowestLow, x2=bar_index + 1, y2=lowestLow, color=color.red, width=2, style=line.style_solid, extend=extend.right)
// // Plot labels for 52-week high and low
// if (bar_index % 100 == 0) // To avoid cluttering, update labels periodically
// label.new(x=bar_index, y=highestHigh, text="52-Week High", color=color.green, textcolor=color.white, style=label.style_label_left, size=size.small)
// label.new(x=bar_index, y=lowestLow, text="52-Week Low", color=color.red, textcolor=color.white, style=label.style_label_left, size=size.small)
// Calculate percentage from 52-week high
percentFromHighValue = 100 * (highestHigh - close) / highestHigh
// Calculate 50-day average volume
avgVolume = ta.sma(volume, averageVolumePeriod)
// Exponential rise in volume condition
volumeRise = volume > avgVolume * volumeMultiplier
// Calculate the percentage change in price for the current period
dailyPriceChange = 100 * (close - open) / open
// Determine the percentage change limit based on the timeframe
priceChangeLimit = if (timeframe.isweekly or timeframe.ismonthly)
10 // 10% limit for weekly or monthly timeframes
else
3 // 3% limit for daily timeframe
// Entry condition: stock within 10% of 52-week high, exponential rise in volume, and price change <= limit
entryCondition = percentFromHighValue <= percentFromHigh and volumeRise and dailyPriceChange <= priceChangeLimit
// Strategy logic
if (entryCondition)
strategy.entry("Buy", strategy.long)
// Plot tiny triangle labels below the candle
// if (entryCondition)
// label.new(bar_index, low, style=label.style_triangleup, color=color.blue, size=size.tiny)