Chiến lược đảo ngược CCI 4 giờ


Ngày tạo: 2023-10-13 15:29:05 sửa đổi lần cuối: 2023-10-13 15:29:05
sao chép: 2 Số nhấp chuột: 637
1
tập trung vào
1237
Người theo dõi

Tổng quan

Chiến lược này dựa trên chỉ số CCI để thực hiện giao dịch đảo ngược. Nó sẽ thực hiện giao dịch đảo ngược khi chỉ số CCI xuất hiện khu vực mua quá bán. Nói chung, chiến lược này sử dụng đặc điểm mua quá bán của chỉ số CCI để nắm bắt cơ hội biến đổi giá.

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

Đầu tiên, chiến lược này dựa trên chỉ số CCI. Công thức tính toán của chỉ số CCI là:

CCI = (Typical Price - Simple Moving Average) / (0.015 * chênh lệch trung bình)

Trong đó, Giá điển hình = (giá cao nhất + giá thấp nhất + giá đóng cửa) / 3 Simple Moving Average = Trung bình di chuyển của giá điển hình trong N ngày qua Điểm chênh lệch trung bình = trung bình của số bình phương của chênh lệch giá điển hình trong N ngày qua

Chiến lược này sử dụng chỉ số CCI có chiều dài 11 và đặt 150 là khu vực bán tháo, 150 là khu vực mua tháo.

Khi mỗi dây K đóng lại, chỉ số CCI có chiều dài 11 sẽ được kiểm tra. Nếu CCI vượt quá 150, sẽ phát ra tín hiệu nhiều; Nếu CCI vượt quá 150, sẽ phát ra tín hiệu trống.

Sau khi nhận được tín hiệu, mở một vị trí với giá thị trường. Và thiết lập 1% dừng, 0.5% dừng.

Lợi thế chiến lược

  1. Sử dụng chỉ số CCI để nắm bắt hiệu quả cơ hội đảo ngược giá
  2. Các tham số CCI có thể được điều chỉnh để kiểm tra các tham số tốt hơn
  3. Kiểm soát rủi ro hiệu quả bằng cách sử dụng Stop Loss theo tỷ lệ cố định
  4. Lập luận chiến lược đơn giản, rõ ràng và dễ hiểu

Rủi ro và giải pháp

  1. Chỉ số CCI có thể tạo ra rất nhiều tín hiệu giả, tín hiệu vào thị trường không nhất thiết phải đáng tin cậy
  • Giải pháp: Tối ưu hóa các tham số CCI, kết hợp với các bộ lọc các chỉ số khác
  1. Tỷ lệ dừng dừng cố định, các tham số khác nhau không nhất thiết phải hợp lý
  • Giải pháp: Thêm đợt dừng động
  1. Chiến lược chỉ dựa trên CCI, rủi ro đơn lẻ, dễ thất bại
  • Giải pháp: Kết hợp nhiều chỉ số để tăng sự ổn định
  1. Không tính chi phí giao dịch, hiệu quả của ổ cứng có thể không tốt
  • Giải pháp: Thêm điều khiển điểm trượt để giảm tần suất giao dịch

Hướng tối ưu hóa

  1. Tối ưu hóa các tham số CCI, tìm các tham số tốt hơn
  2. Thêm các chỉ số khác như MACD, KDJ và các chỉ số khác để lọc
  3. Phát triển cơ chế dừng lỗ động, thay vì chỉ đơn giản là tỷ lệ cố định
  4. Chiến lược tối ưu hóa để giảm tần số giao dịch để giảm tác động đến chi phí giao dịch
  5. Đánh giá lại và tối ưu hóa, tìm ra các tham số tối ưu để chuẩn bị cho giao dịch trên đĩa cứng

Tóm tắt

Chiến lược đảo ngược 4 giờ CCI nói chung là một chiến lược đơn giản để sử dụng chỉ số CCI để giao dịch đảo ngược. Nó có logic chiến lược rõ ràng và dễ thực hiện. Nhưng cũng có tín hiệu CCI không ổn định, dừng lỗ không đủ linh hoạt và những nhược điểm khác.

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

//@version=4
strategy("4H CCI Strategy", overlay=true)
length = input( 11 )
overSold = input( -150 )
overBought = input( +150 )
price1 = high
price2 = low
ucci = cci(price1, length)
dcci = cci(price2, length)
vcci = cci(ohlc4, 11)

resCustom = input(title="Timeframe", defval="15")
Length = input(16, minval=1)
xPrice = request.security(syminfo.tickerid, resCustom, hlc3)
xvnoise = abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
nsignal = abs(xPrice - xPrice[Length])
nnoise = sum(xvnoise, Length)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
basis1 = nAMA
slope = change(basis1,1)

if (not na(vcci))
    if (crossover(dcci, overSold))
        strategy.entry("CCILE", strategy.long, comment="CCILE")
        strategy.exit("exit", "CCILE", profit = 0.01, loss = 0.005)
    if (crossunder(ucci, overBought))
        strategy.entry("CCISE", strategy.short, comment="CCISE")
        strategy.exit("exit", "CCISE", profit = 0.01, loss = 0.005)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)