Chiến lược giao dịch theo xu hướng dựa trên CCI và EMA


Ngày tạo: 2023-11-02 15:17:22 sửa đổi lần cuối: 2023-11-02 15:17:22
sao chép: 0 Số nhấp chuột: 963
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch theo xu hướng dựa trên CCI và EMA

Tổng quan

Ý tưởng cốt lõi của chiến lược này là sử dụng chỉ số CCI để xác định xu hướng thị trường và sử dụng chỉ số EMA để xử lý CCI một cách trơn tru, để thực hiện giao dịch theo xu hướng. Khi CCI vượt qua điểm mua, hãy làm nhiều hơn khi CCI vượt qua điểm bán, để đạt được mục đích theo xu hướng thị trường.

Nguyên tắc chiến lược

  1. Tính toán chỉ số CCI. Chỉ số CCI được sử dụng để xác định xem giá cổ phiếu hiện tại đã bị mua quá mức hay bán quá mức bằng mức độ lệch của giá đóng cửa vào ngày hôm đó so với đường trung bình trong 20 ngày qua. Công thức là: ((typical price - 20 ngày SMA) / (0.015 * 20 ngày chênh lệch tiêu chuẩn giá điển hình).

  2. Các chỉ số CCI được xử lý trơn tru EMA, có được đường cong CCI-EMA, để giảm sự dao động của chỉ số CCI, làm cho tín hiệu rõ ràng hơn.

  3. Thiết lập điểm mua và bán của CCI. Khi CCI-EMA vượt qua điểm mua, làm nhiều; Khi CCI-EMA vượt qua điểm bán, làm trống.

  4. Giữ vị trí cho đến khi CCI-EMA chạm vào điểm mua hoặc bán một lần nữa.

Phân tích lợi thế chiến lược

  1. Sử dụng CCI để xác định xu hướng thị trường, kết hợp với các tín hiệu lọc giả của EMA, có thể theo dõi xu hướng thị trường hiệu quả.

  2. Chỉ số CCI rất nhạy cảm với giá cả, có thể nhanh chóng nắm bắt sự biến đổi của xu hướng. Chỉ số EMA có thể làm giảm tỷ lệ báo cáo sai. Sử dụng cả hai cùng nhau, bạn có thể nắm bắt cơ hội ngay khi xu hướng bắt đầu.

  3. Sử dụng chiến lược theo xu hướng để giảm tối đa số lần giao dịch, giảm chi phí giao dịch và mất điểm trượt.

  4. Chiến lược này có hiệu quả tốt hơn và có khả năng hoạt động trong thực tế.

Phân tích rủi ro chiến lược

  1. Chỉ số CCI có vấn đề về sự nhạy cảm quá mức với đường cong, EMA không thể loại bỏ hoàn toàn tất cả các tín hiệu giả, vẫn còn một số rủi ro báo cáo sai.

  2. Xu hướng thuần túy theo chiến lược, dễ bị mất khi xu hướng dao động hoặc đảo ngược. Sử dụng các chỉ số đánh giá xu hướng phù hợp.

  3. Chiến lược giao dịch hoàn toàn máy móc, không thể điều chỉnh các tham số một cách linh hoạt theo tình hình thị trường, có nguy cơ quá tối ưu.

  4. Dữ liệu phản hồi không đầy đủ, không thể phản ánh hoàn toàn hiệu suất của ổ đĩa thực.

Hướng tối ưu hóa chiến lược

  1. Tối ưu hóa các tham số của CCI, kiểm tra hiệu quả của các tham số với các chu kỳ khác nhau.

  2. Tối ưu hóa các tham số EMA để tìm ra độ dài chu kỳ EMA tối ưu.

  3. Thử nghiệm các kết hợp các tham số điểm mua bán khác nhau để tìm ra tham số tối ưu.

  4. Kết hợp với các chỉ số khác để đánh giá xu hướng đảo ngược, đặt điểm dừng để tránh tổn thất mở rộng.

  5. Thêm chức năng tối ưu hóa tham số tự động, tự động tìm kiếm các tham số tốt nhất cho các giống khác nhau.

Tóm tắt

Chiến lược này nói chung là một chiến lược giao dịch theo xu hướng đơn giản hơn. Nó sử dụng CCI để đánh giá xu hướng và nhạy cảm với sự thay đổi giá, phối hợp với EMA để tạo ra tín hiệu giao dịch. Chiến lược có một số lợi thế, nhưng cũng có một số rủi ro cần lưu ý.

Mã nguồn chiến lược
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CCI with EMA Strategy", overlay=false, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.07)

length = input(20, minval=1)
src = input(close, title="Source")
cciSellPoint = input(0, title = 'CCI Sell Point', type = input.integer) 
cciBuyPoint = input(0, title = 'CCI Buy Buy Point', type = input.integer) 
lengthcci = input(12,"length cci ema", minval=1)

ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
cciema=ema(cci,lengthcci)
plot(cci, "CCI", color=#996A15)
plot(cciSellPoint, title = 'CCI  Sell Point', color = color.red, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciBuyPoint, title = 'CCI Buy Point', color = color.green, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciema, title = 'CCI EMA', color = color.green, linewidth = 1, transp = 35)
band1 = hline(100, "Upper Band", color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(-100, "Lower Band", color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=#9C6E1B, title="Background")

startLongTrade=  cciema >cciBuyPoint 
startShortTrade= cciema <cciSellPoint

//exitLong = cciema <cciSellPoint
//exitShort = cciema >cciBuyPoint 

strategy.entry("long",strategy.long, when = startLongTrade )
//strategy.close( "long", when=exitLong)
strategy.entry("short",strategy.short,when=startShortTrade )
//strategy.close("short", when=exitShort)