
Tổng quan
Chiến lược này dựa trên chỉ số di chuyển trung bình ((EMA) và chỉ số tăng trung bình ((AO) để đánh giá xu hướng thị trường và sử dụng hình dạng đường K để xác nhận tín hiệu mua. Chiến lược sẽ tạo ra một tín hiệu mua khi EMA chỉ thị thị trường đang trong xu hướng tăng, chỉ số AO là tích cực và hình dạng nuốt chửng của nhà đầu cơ xuất hiện. Chiến lược này chỉ làm nhiều, không làm trống.
Nguyên tắc chiến lược
Nguyên tắc cốt lõi của chiến lược này là sử dụng chỉ số EMA và AO để đánh giá xu hướng thị trường và sử dụng hình dạng đường K để xác nhận tín hiệu mua. Cụ thể:
- Tính EMA cho một chu kỳ được chỉ định, thị trường được coi là đang trong xu hướng tăng khi giá thị trường cao hơn EMA.
- Tính toán chỉ số AO, khi chỉ số AO là tích cực, thị trường được coi là xu hướng đi lên.
- Xác định liệu có hình thức đợt bồi đắp có thể xảy ra hay không, tức là giá đóng cửa K hiện tại cao hơn giá mở cửa, giá đóng cửa K trước thấp hơn giá mở cửa, giá mở cửa K hiện tại thấp hơn giá đóng cửa K trước và giá đóng cửa K hiện tại cao hơn giá cao nhất K trước.
- Một tín hiệu mua sẽ được tạo ra khi ba điều kiện trên được đáp ứng.
- Thiết lập điểm dừng lỗ khi giá thị trường thấp hơn điểm dừng lỗ.
Lợi thế chiến lược
- Sử dụng cả hai chỉ số EMA và AO để đánh giá xu hướng, có thể lọc hiệu quả các tín hiệu giả và cải thiện độ chính xác của chiến lược.
- Sử dụng hình dạng đường K để xác nhận tín hiệu mua, bạn có thể nắm bắt thời gian nhập cảnh tốt hơn trong khi xác nhận xu hướng.
- Thiết lập điểm dừng lỗ, có thể kiểm soát rủi ro chiến lược hiệu quả, tránh sự rút lui lớn.
- Chiến lược này có logic rõ ràng, dễ hiểu và dễ thực hiện.
Rủi ro chiến lược
- Chiến lược này chỉ áp dụng cho các thị trường đang có xu hướng, và các tín hiệu giả có thể xuất hiện nhiều hơn trong thị trường biến động.
- Lựa chọn tham số của chiến lược có ảnh hưởng lớn đến hiệu suất của chiến lược, và các tham số khác nhau có thể dẫn đến kết quả khác nhau.
- Thiết lập điểm dừng lỗ có thể dẫn đến chiến lược giảm giá quá sớm, bỏ lỡ sự gia tăng tiếp theo.
- Chiến lược này chỉ làm nhiều hơn, không làm rỗng, và có thể có chi phí cơ hội lớn hơn trong một thị trường giảm.
Hướng tối ưu hóa chiến lược
- Bạn có thể xem xét thêm các chỉ số kỹ thuật như RSI, MACD để xác nhận xu hướng và tín hiệu hơn nữa.
- Các chiến lược dừng lỗ có thể được tối ưu hóa, chẳng hạn như sử dụng dừng lỗ di động, theo dõi dừng lỗ để kiểm soát rủi ro tốt hơn.
- Bạn có thể tham gia vào chiến lược quản lý vị trí, điều chỉnh kích thước vị trí tùy theo xu hướng thị trường mạnh hoặc yếu và chất lượng tín hiệu.
- Có thể xem xét tham gia vào các cơ chế giảm giá để thích ứng với các tình huống thị trường khác nhau.
Tóm tắt
Chiến lược này được đánh giá xu hướng và tạo ra tín hiệu giao dịch thông qua hình thức đường EMA, AO và K, có tính năng rõ ràng về logic, dễ thực hiện. Đồng thời, chiến lược thiết lập điểm dừng để kiểm soát rủi ro. Tuy nhiên, chiến lược này cũng có một số hạn chế, chẳng hạn như chỉ áp dụng cho thị trường xu hướng, nhạy cảm với lựa chọn tham số, v.v.
Mã nguồn chiến lược
/*backtest
start: 2023-05-23 00:00:00
end: 2024-05-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA & K-Pattern Trend Trading (Long Only)", overlay=true)
// 输入参数
emaLength = input.int(50, title="EMA长度")
aoShortLength = input.int(5, title="AO短期长度")
aoLongLength = input.int(34, title="AO长期长度")
stopLossPct = input.float(2, title="止损百分比") / 100 // 止损百分比
// 计算EMA和AO指标
ema = ta.ema(close, emaLength)
ao = ta.sma(high, aoShortLength) - ta.sma(low, aoLongLength)
// 定义趋势方向
isBullish = close > ema
// 定义K线形态
bullishK = close > open and close[1] < open[1] and open < close[1] and close > high[1] // 看涨吞没形态
// 定义买入信号
longCondition = bullishK and isBullish and ao > 0
// 绘制EMA
plot(ema, title="EMA", color=color.blue)
// 计算止损点
stopLossLevelLong = close * (1 - stopLossPct)
// 策略执行并标注信号
if (longCondition)
strategy.entry("做多", strategy.long)
label.new(bar_index, high, text="买入", style=label.style_label_up, color=color.green, textcolor=color.white)
strategy.exit("止损", from_entry="做多", stop=stopLossLevelLong)