Chiến lược này kết hợp các tư tưởng về lọc hai đường đồng nhất và phán đoán hình dạng giá, tạo thành một cơ chế nhập cảnh toàn diện hơn, nhằm cải thiện chất lượng tín hiệu. Chiến lược này cũng thêm vào kiểm soát lợi nhuận và hạn chế tối đa giữ vị trí hàng tuần, để thực hiện một cơ chế quản lý rủi ro tốt hơn.
Chiến lược này bao gồm các chỉ số và quy tắc giao dịch sau:
3 đường SMA trung bình: Xác định xu hướng trên cấp độ lớn.
2 EMA: Đánh giá chi tiết
Chỉ số SAR: Trải nghiệm và xu hướng.
Hình dạng đường K: Xác định hình dạng đường K cụ thể như một trong những tín hiệu nhập cảnh.
Tỷ lệ lợi nhuận tối đa: giới hạn số lần lợi nhuận tối đa của vị trí duy nhất, lợi nhuận cố định.
Chu kỳ giữ tối đa: tránh sự gia tăng lỗ và kiểm soát tổn thất đơn lẻ.
Chiến lược này kết hợp nhiều chỉ số kỹ thuật để đưa ra phán đoán tổng hợp, tạo ra một tín hiệu nhập cảnh và cơ chế thoát mạnh mẽ hơn, kiểm soát rủi ro và giao dịch ổn định trong khi tăng lợi nhuận.
So với chiến lược chỉ số đơn, chiến lược này có những lợi thế sau:
Sự kết hợp của nhiều chỉ số giúp tăng độ chính xác tín hiệu.
Nhận dạng hình dạng K-line giúp tăng thời gian nhập cảnh.
Kiểm soát số lần cân bằng lợi nhuận để xác định lợi nhuận.
Thời hạn giữ hàng tuần để tránh tổn thất đơn lẻ.
Đường SMA trung bình đánh giá xu hướng lớn và có hiệu ứng theo xu hướng.
EMA đang chuẩn bị chi tiết và tăng cường sự nhạy cảm.
Chỉ số SAR giúp đánh giá độ tin cậy của đột phá.
Nhìn chung, rủi ro và lợi nhuận cân bằng tốt, khó hơn so với sự phù hợp.
Có thể điều chỉnh theo các tham số của thị trường để có được lợi nhuận vượt trội ổn định.
Mặc dù chiến lược này có nhiều ưu điểm, nhưng cần lưu ý những rủi ro sau:
Giao diện đa chỉ số tăng sự phức tạp và khó thực hiện hơn.
Các tham số được tối ưu hóa có phạm vi rộng, có rủi ro tối ưu hóa.
Có thể có tín hiệu sai.
Sau khi thu hẹp vị thế, rất dễ để bỏ lỡ cơ hội tấn công.
Một số nhà đầu tư cho rằng hạn ngưng giữ cổ phiếu hàng tuần đã khiến giới hạn lợi nhuận bị coi thường.
Sự ổn định và tối ưu hóa lợi nhuận có một số xung đột.
Khả năng thích ứng của nhiều giống với môi trường thị trường cần được xem xét.
Cần quan tâm đến sức khỏe của chiến lược.
Dựa trên những phân tích trên, chiến lược này có thể được tối ưu hóa như sau:
Điều chỉnh các tham số để cải thiện sự ổn định thu nhập.
Thời gian để giới thiệu và tối ưu hóa công nghệ học máy.
Tối ưu hóa và động điều chỉnh chiến lược dừng lỗ.
Đánh giá ảnh hưởng của các chu kỳ nắm giữ khác nhau đến đường cong lợi nhuận.
Chiến lược kiểm tra sự phù hợp trong thị trường của các giống khác nhau.
Thêm kiểm tra sức mạnh tham số để ngăn chặn quá tối ưu hóa.
Phát triển hệ thống quản lý rủi ro định lượng.
Tiếp tục xác minh hiệu quả của chiến lược để ngăn chặn sự lỗi thời và không hiệu quả.
Nhìn chung, chiến lược này tạo ra một hệ thống giao dịch tương đối ổn định với sự hỗ trợ của nhiều chỉ số. Tuy nhiên, bất kỳ chiến lược nào cũng cần phải được tối ưu hóa và xác minh liên tục, chú ý đến vấn đề sức khỏe tham số, để chiến lược có thể thích ứng với các môi trường thị trường khác nhau.
//@version=3
strategy("Free Strategy #08 (Combo of #01 and #02) (ES / SPY)", overlay=true)
// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
EmaPeriod02 = input(3, minval=1, title="EMA Period 02")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")
// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
Ema02 = ema(close, EmaPeriod02)
OHLC = (open + high + low + close) / 4.0
// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
Entry01 = Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05
Cond06 = close < Ema02
Cond07 = open > OHLC
Cond08 = volume <= volume[1]
Cond09 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
Entry02 = Cond00 and Cond06 and Cond07 and Cond08 and Cond09
// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])
// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Entry01 or Entry02))
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))