Chiến lược này là một chiến lược chuyên gia tư vấn chuyên gia về vị trí ngắn đối với chỉ số USD (ES) với khoảng thời gian 3 phút. Nó tạo ra tín hiệu giao dịch bằng cách tính toán một loạt các chỉ số chuyển động trung bình, kết hợp với các điều kiện hình thức cụ thể.
Chỉ số cốt lõi của chiến lược này là T3 trung bình. T3 trung bình đầu tiên tính toán một tập hợp các chỉ số di chuyển trung bình x1 ~ x6, các tham số T3 được thiết lập cho người dùng trong khoảng thời gian. Sau đó, tính toán các trung bình trọng số của các chỉ số di chuyển trung bình này thông qua một tập hợp các hệ số trọng số cụ thể, làm trung bình T3 cuối cùng.
Một tín hiệu mua được tạo ra khi giá đóng cửa thấp hơn trung bình T3; một tín hiệu bán được tạo ra khi giá đóng cửa cao hơn trung bình T3. Ngoài ra, chiến lược cũng đánh giá một hình dạng K-line cụ thể là điều kiện phụ trợ cho tín hiệu mua vào. Chỉ khi điều kiện hình dạng và tín hiệu trung bình T3 xuất hiện cùng lúc, lệnh giao dịch sẽ được đưa ra.
Lợi thế lớn nhất của chiến lược này là lọc nhiều và tối ưu hóa tham số. Một mặt, lọc nhiều kết hợp với chỉ số giá và chỉ số đồ họa có thể làm giảm nhiều giao dịch ồn ào. Mặt khác, tham số quan trọng T3 và quy tắc phán đoán hình dạng có thể được tối ưu hóa để điều chỉnh độ chính xác nhập cảnh cho các thị trường khác nhau.
Ngoài ra, so với các chỉ số như trung bình di chuyển đơn giản, sự mịn màng của chỉ số T3 có thể lọc hiệu quả tiếng ồn thị trường và xác định điểm chuyển hướng. Trong khi chu kỳ ba phút thích hợp cho giao dịch trong ngày, có thể nhanh chóng nắm bắt cơ hội ngắn hạn.
Rủi ro chính của chiến lược này là không tối ưu hóa các tham số và giữ vị trí quá lâu. Nếu tham số T3 được đặt quá lớn, thì các chỉ số của chiến lược sẽ bị chậm lại; Nếu thiết lập quá nhỏ, nó sẽ làm tăng khả năng giao dịch ồn ào. Ngoài ra, hoạt động chu kỳ ba phút có nguy cơ thua lỗ nếu không dừng lại kịp thời.
Để kiểm soát rủi ro, trước tiên cần thử nghiệm lặp lại đối với các giống khác nhau, xác định phạm vi tối ưu của các tham số. Thứ hai, cần thực hiện nghiêm ngặt chiến lược dừng lỗ, dừng lỗ rút ra kịp thời, kiểm soát tổn thất đơn lẻ trong một tỷ lệ nhất định.
Chiến lược này bao gồm một số hướng tối ưu hóa:
Tối ưu hóa tham số T3 để tìm ra phạm vi tối ưu cho các tham số của các loại giao dịch khác nhau
Tối ưu hóa logic phán đoán đồ họa, tăng độ chính xác nhận dạng hình dạng
Phương pháp tối ưu hóa lỗ hổng như tăng lỗ hổng sau, theo dõi lỗ hổng
Thêm mô-đun quản lý tiền dựa trên tỷ lệ lợi nhuận hoặc thu hồi tối đa
Các mô-đun hỗ trợ cho các mô hình học máy để tăng sự phán đoán
Bằng cách tối ưu hóa một số hướng trên, bạn có thể dần dần nâng cao tính ổn định và khả năng sinh lợi của chiến lược.
Chiến lược này là một chiến lược giao dịch trong ngày ngắn hạn, có các lợi thế như không gian tối ưu hóa chỉ số lớn, lọc nhiều và nhanh chóng. Thông qua một loạt các phương tiện tối ưu hóa như tối ưu hóa tham số, tối ưu hóa dừng lỗ và quản lý tiền, nó có thể được điều chỉnh thành một chiến lược hiệu quả thích ứng với giao dịch tần số cao.
/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-23 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ES 3m Short Only (Triple RED)", overlay=true)
// Alert Message '{{strategy.order.alert_message}}'
//3min
T3 = input(150)//to 600
xPrice3 = close
xe1 = ta.ema(xPrice3, T3)
xe2 = ta.ema(xe1, T3)
xe3 = ta.ema(xe2, T3)
xe4 = ta.ema(xe3, T3)
xe5 = ta.ema(xe4, T3)
xe6 = ta.ema(xe5, T3)
b3 = 0.7
c1 = -b3*b3*b3
c2 = 3*b3*b3+3*b3*b3*b3
c3 = -6*b3*b3-3*b3-3*b3*b3*b3
c4 = 1+3*b3+b3*b3*b3+3*b3*b3
nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
// Buy Signal - Price is below T3 Average
buySignal3 = xPrice3 < nT3Average
sellSignal3 = xPrice3 > nT3Average
//NinjaTrader Settings.
acct = "Sim101"
ticker = "ES 12-23"
qty = 1
takeProfitTicks = 4
stopLossTicks = 16
tickSize = 0.25
takeProfitShort = close - takeProfitTicks * tickSize
stopLossShort = close + stopLossTicks * tickSize
OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' + str.tostring(stopLossShort) + '", "tif": "DAY" }'
CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '" }'
IsUp = close > open
IsDown = close < open
PatternPlot = IsDown[2] and IsDown[1] and IsDown and close[1] <= high[0] and close[1] > close[0] and low[1] > low[0] and high[2] > high[1] and low[2] <= low[1]
if (PatternPlot and sellSignal3)
strategy.entry('Short', strategy.short, alert_message=OCOMarketShort)
strategy.exit('Close Short', 'Short', profit=takeProfitTicks, loss=stopLossTicks, alert_message=CloseAll)
//plotshape(PatternPlot, title="Custom Pattern", style=shape.circle, location=location.abovebar, color=color.red, size=size.small)