
Chiến lược giao dịch đường ngắn có nhiều bộ lọc là một phương pháp giao dịch định lượng được thiết kế tinh tế, được thiết kế dành riêng cho các nhà giao dịch muốn nắm bắt biến động giá ngắn hạn trong thị trường thay đổi nhanh chóng. Chiến lược này được sử dụng để xác định các cơ hội mua và bán chính xác bằng cách kết hợp phân tích xu hướng, chỉ số động lực, khối lượng giao dịch, biến động và hình dạng đồ thị.
Chiến lược này sử dụng cơ chế lọc nhiều lần, chỉ tạo ra tín hiệu giao dịch khi tất cả các chỉ số kỹ thuật đáp ứng các điều kiện cùng một lúc, để đảm bảo cơ hội giao dịch có xác suất cao. Cụ thể, chiến lược sử dụng năm thành phần quan trọng sau:
Xu hướng:50 chu kỳ trung bình di chuyển đơn giản ((SMA) làm bộ lọc xu hướng. Nếu giá trên đường này, biểu thị thị giá, phù hợp để mua; Nếu dưới đường, biểu thị thị giá, phù hợp để bán.
Chỉ số động lựcChỉ số tương đối mạnh yếu 14 chu kỳ (RSI) được sử dụng để đo tốc độ biến động giá. Nó đảm bảo thị trường không mua quá mức khi mua (RSI < 70) và không bán quá mức khi bán (RSI > 30).
Phân tích số lượng giao dịchChiến lược: So sánh khối lượng giao dịch hiện tại với khối lượng giao dịch trung bình 20 chu kỳ để xác nhận sự tham gia mạnh mẽ của thị trường, chỉ có sự di chuyển trên khối lượng giao dịch trung bình sẽ kích hoạt tín hiệu.
Sự biến động: 14 chu kỳ trung bình phạm vi thực sự ((ATR) kiểm tra xem biến động giá có đủ lớn ((thấp hơn giá trị tối thiểu của người dùng, mặc định là 2.0) để chứng minh tính hợp lý của giao dịch.
Hình ảnh: Nhận dạng hình thức đơn giản và hiệu quả (ví dụ: dự báo giá đóng cửa cao hơn giá đóng cửa ngày trước sau khi mở cửa thấp hơn giá đóng cửa ngày trước) thêm xác nhận vào tín hiệu
Các tín hiệu mua hoặc bán chỉ được kích hoạt khi tất cả các điều kiện này phù hợp, đảm bảo giao dịch có xác suất cao. Một khi tín hiệu được kích hoạt, chiến lược sẽ tự động đặt hàng và thiết lập các mức dừng lỗ tùy chỉnh (ví dụ, bên dưới điểm nhập 1%) và dừng (ví dụ, trên điểm nhập 2%).
Các chiến lược giao dịch ngắn hạn với nhiều bộ lọc có nhiều lợi thế rõ ràng:
Giảm tín hiệu saiVì chiến lược yêu cầu tất cả năm chỉ số kỹ thuật được xác nhận cùng một lúc, khả năng tín hiệu giả mạo được giảm đáng kể và tỷ lệ giao dịch thành công được tăng lên.
Phân tích thị trường toàn diệnChiến lược cung cấp một phân tích toàn diện về tình trạng thị trường bằng cách xem xét xu hướng, động lực, khối lượng giao dịch, biến động và hình dạng giá cả cùng một lúc, thay vì chỉ dựa vào một chỉ số đơn lẻ.
Khả năng thích nghi caoCác tham số của chiến lược có thể được điều chỉnh cho các môi trường thị trường khác nhau, cho phép nó phù hợp với nhiều loại giao dịch và khung thời gian, cho dù thị trường có biến động thấp hay biến động cao.
Kiểm soát rủi roCài đặt tự động dừng lỗ và dừng chân đảm bảo rằng rủi ro của mỗi giao dịch được kiểm soát, giúp các nhà giao dịch giữ kỷ luật và tránh đưa ra quyết định cảm xúc.
Bảng xếp hạng xác nhận kỹ thuậtChiến lược cung cấp nhiều cấp độ xác nhận kỹ thuật, từ xu hướng dài hạn (SMA) đến hành vi giá ngắn hạn (chartform), cho phép các nhà giao dịch tin tưởng hơn vào độ tin cậy của tín hiệu.
Tiềm năng tự động hóaCác quy tắc và điều kiện rõ ràng của chiến lược làm cho nó dễ lập trình và tự động hóa, giảm nhu cầu can thiệp của con người, phù hợp với các nhà giao dịch bận rộn hoặc những người muốn giảm ảnh hưởng cảm xúc.
Mặc dù các chiến lược thu gom đa bộ lọc được thiết kế tốt, nhưng vẫn có một số rủi ro và hạn chế tiềm ẩn:
Mất cơ hội giao dịchVì chiến lược yêu cầu tất cả các bộ lọc phải xác nhận cùng một lúc, bạn có thể bỏ lỡ một số cơ hội giao dịch chỉ đáp ứng một phần các điều kiện nhưng vẫn có lợi nhuận, đặc biệt là trong thị trường thay đổi nhanh chóng.
Yêu cầu tối ưu hóa tham sốHiệu quả của chiến lược phụ thuộc rất nhiều vào việc lựa chọn các tham số phù hợp cho các loại giao dịch và điều kiện thị trường cụ thể. Thiết lập tham số không phù hợp có thể dẫn đến tối ưu hóa quá mức hoặc hoạt động kém.
Hạn chế tỷ lệ dừng cố định: Sử dụng tỷ lệ dừng cố định có thể không phù hợp với tất cả các môi trường thị trường, đặc biệt là trong thời gian biến động đột ngột.
Số lượng giao dịch: Trong thị trường ít lưu động hoặc trong một số khoảng thời gian, yêu cầu khối lượng giao dịch cao có thể làm giảm tần số tín hiệu và giảm cơ hội giao dịch.
Chỉ số kỹ thuật chậm phát triểnTất cả các chỉ số kỹ thuật đều có một mức độ chậm trễ, có thể dẫn đến phản ứng chậm trong điều kiện thị trường cực đoan.
Hạn chế hình thức của thị trường xu hướng mạnhTrong một thị trường xu hướng mạnh mẽ, có thể khó khăn để đáp ứng các yêu cầu hình dạng biểu đồ cụ thể, dẫn đến việc bỏ lỡ cơ hội theo dõi xu hướng tiềm năng.
Để giảm thiểu những rủi ro này, các nhà giao dịch nên xem xét thực hiện đầy đủ các phản hồi trước khi giao dịch trực tiếp và điều chỉnh các tham số theo khả năng chịu rủi ro của mình.
Dựa trên phân tích các nguyên tắc chiến lược và rủi ro tiềm ẩn, đây là một số hướng tối ưu hóa có thể:
Các tham số thích ứng: Thay đổi các tham số cố định (như chiều dài đường trung bình di chuyển, RSI) thành các tham số động được điều chỉnh tự động dựa trên điều kiện thị trường. Ví dụ: trong các môi trường biến động khác nhau, ATR tối thiểu có thể được điều chỉnh tự động dựa trên biến động lịch sử.
Phân tích nhiều khung thời gian: Kết hợp các tín hiệu xác nhận từ nhiều khung thời gian, ví dụ như sử dụng khung thời gian lớn hơn để xác định hướng xu hướng chính, sau đó tìm kiếm điểm vào cụ thể trên khung thời gian nhỏ hơn.
Cải thiện chiến lược dừng lỗ: Thay vì dừng dựa trên ATR, hãy dừng phần trăm cố định để thích ứng tốt hơn với tính năng biến động của các loại giao dịch khác nhau. Ví dụ, dừng có thể được đặt làm điểm nhập trừ 1,5 lần giá trị ATR hiện tại.
Tham gia bộ lọc trạng thái thị trường: Thêm tính năng nhận dạng trạng thái thị trường (như biến động hoặc xu hướng trong khoảng thời gian) vào thuật toán và áp dụng các quy tắc giao dịch khác nhau cho các trạng thái thị trường khác nhau.
Tăng cường tín hiệu: Không phải là tín hiệu nhị phân đơn giản ((mua / bán), mà là tín hiệu được phân loại dựa trên cường độ đáp ứng các điều kiện, cho phép điều chỉnh kích thước vị trí tùy theo cường độ tín hiệu.
Tích hợp học máy: Sử dụng thuật toán học máy để tối ưu hóa các tham số hoặc dự đoán các tín hiệu nào có khả năng thành công hơn, đặc biệt là trong việc nhận ra các mô hình trong môi trường thị trường cụ thể.
Các tối ưu hóa này có thể được thực hiện riêng lẻ hoặc có thể được sử dụng kết hợp để cải thiện hiệu suất và khả năng thích ứng tổng thể của chiến lược. Trước khi thực hiện bất kỳ tối ưu hóa nào, khuyến cáo nên kiểm tra lại kỹ lưỡng trong các điều kiện thị trường khác nhau.
Chiến lược giao dịch ngắn hạn đa bộ lọc kết hợp cung cấp cho các nhà giao dịch ngắn hạn một hệ thống giao dịch toàn diện và mạnh mẽ bằng cách tích hợp nhiều phương pháp phân tích kỹ thuật. Điểm mạnh cốt lõi của nó là kết hợp nhiều chỉ số kỹ thuật độc lập, chỉ tạo ra tín hiệu giao dịch khi tất cả các chỉ số đều hướng về cùng một hướng, làm tăng đáng kể độ tin cậy của tín hiệu.
Tính linh hoạt của chiến lược này giúp nó phù hợp với nhiều môi trường thị trường và các loại giao dịch, trong khi các tính năng quản lý rủi ro được xây dựng sẵn giúp bảo vệ vốn và duy trì khả năng sinh lợi trong thời gian dài. Mặc dù có một số hạn chế và rủi ro vốn có, những vấn đề này có thể được giảm thiểu hiệu quả bằng cách tối ưu hóa các tham số liên tục và cải tiến chiến lược theo khuyến nghị trên.
Đối với các nhà giao dịch muốn áp dụng các phương pháp có hệ thống và kỷ luật trong giao dịch ngắn hạn, chiến lược chiết xuất nhiều bộ lọc cung cấp một khuôn khổ vững chắc, xem xét cả khía cạnh kỹ thuật của thị trường và tập trung vào kiểm soát rủi ro, là một phương pháp toàn diện và cân bằng trong lĩnh vực giao dịch định lượng.
/*backtest
start: 2024-04-03 00:00:00
end: 2025-04-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Malama's Scalping", overlay=true)
// ──────────────────────────────
// SETTINGS YOU CAN CHANGE
// ──────────────────────────────
// Trend Length: How many candles (price bars) to check for the trend
trendLength = input.int(50, title="Trend Length")
// RSI Length: How many candles to measure price speed
rsiLength = input.int(14, title="RSI Length")
// Stop Loss: How much you’re willing to lose (in %)
stopLossPerc = input.float(1.0, title="Stop Loss (%)")
// Take Profit: How much profit you want to take (in %)
takeProfitPerc = input.float(2.0, title="Take Profit (%)")
// Volume Length: How many candles to average volume over
volumeLength = input.int(20, title="Volume Length")
// Volatility (ATR) Length: How many candles to measure price movement
atrLength = input.int(14, title="Volatility Length")
// Minimum Volatility: Price needs to move this much to trade (adjust for TSLA)
minVolatility = input.float(2.0, title="Minimum Volatility (ATR)")
// ──────────────────────────────
// CALCULATIONS
// ──────────────────────────────
// Trend: The average price over the trend length (a blue line on the chart)
trendMA = ta.sma(close, trendLength)
// Is the price above the trend line? (Good for buying)
isBullish = close > trendMA
// Is the price below the trend line? (Good for selling)
isBearish = close < trendMA
// RSI: Checks how fast the price is moving (0-100 scale)
rsiValue = ta.rsi(close, rsiLength)
// Is RSI not too high for buying? (Below 70 means it’s okay)
isRSIOKForBuy = rsiValue < 70
// Is RSI not too low for selling? (Above 30 means it’s okay)
isRSIOKForSell = rsiValue > 30
// Volume: Is today’s trading activity higher than the average?
volumeAvg = ta.sma(volume, volumeLength)
isHighVolume = volume > volumeAvg
// Volatility (ATR): Measures how much the price is moving on average
atrValue = ta.atr(atrLength)
// Is the market moving enough to trade? (ATR must be above the minimum)
isVolatileEnough = atrValue > minVolatility
// Candlestick Pattern: A simple check for a strong buy signal
// (Price opens lower than yesterday’s close but closes higher)
bullishPattern = open < close[1] and close > open[1]
// Candlestick Pattern: A simple check for a strong sell signal
// (Price opens higher than yesterday’s close but closes lower)
bearishPattern = open > close[1] and close < open[1]
// ──────────────────────────────
// SIGNALS
// ──────────────────────────────
// Buy Signal: Price is above trend, RSI is okay, volume is high, pattern fits, and market is moving enough
buySignal = isBullish and isRSIOKForBuy and isHighVolume and bullishPattern and isVolatileEnough
// Sell Signal: Price is below trend, RSI is okay, volume is high, pattern fits, and market is moving enough
sellSignal = isBearish and isRSIOKForSell and isHighVolume and bearishPattern and isVolatileEnough
// ──────────────────────────────
// VISUALS ON THE CHART
// ──────────────────────────────
// Show the trend line in blue
plot(trendMA, color=color.blue, title="Trend Line")
// Show a green "Buy" label below the bar when it’s time to buy
plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy", text="Buy")
// Show a red "Sell" label above the bar when it’s time to sell
plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell", text="Sell")
// ──────────────────────────────
// AUTOMATIC TRADING
// ──────────────────────────────
// If there’s a buy signal, enter a buy trade and set stop loss/take profit
if (buySignal)
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", stop=close * (1 - stopLossPerc / 100), limit=close * (1 + takeProfitPerc / 100))
// If there’s a sell signal, enter a sell trade and set stop loss/take profit
if (sellSignal)
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", stop=close * (1 + stopLossPerc / 100), limit=close * (1 - takeProfitPerc / 100))