
Chiến lược này sử dụng CCI, ADX và AO để tạo ra tín hiệu giao dịch bằng cách kết hợp ba chỉ số. Trong đó, CCI được sử dụng để xác định thị trường có quá mua hay quá bán, ADX được sử dụng để xác định hướng xu hướng và AO được sử dụng để xác định thị trường chấn động. Kết hợp nhiều chỉ số có thể làm tăng sự ổn định và hiệu quả của hệ thống giao dịch.
Chỉ số CCI được sử dụng để đánh giá thị trường có quá mua hay quá bán không. Khi CCI thấp hơn -100 thì quá bán và cao hơn 100 thì quá mua. Chiến lược này được thực hiện khi CCI nhỏ hơn 0.
Chỉ số ADX đánh giá sức mạnh của xu hướng. DI+ đại diện cho sức mạnh của xu hướng tăng, DI- đại diện cho sức mạnh của xu hướng giảm. ADX đại diện cho sức mạnh của xu hướng trung bình. Chiến lược này được thực hiện nhiều hơn khi DI+ thấp hơn 25.
Chỉ số AO đánh giá năng lượng động cơ không khí nhiều. AO được tạo thành từ SMA nhanh trừ SMA chậm. AO tăng lên đại diện cho tăng lực đa đầu hiện tại, AO giảm xuống đại diện cho tăng lực không đầu. Chiến lược này được thực hiện khi AO thấp hơn 0.
Kết hợp một số chỉ số trên, tạo ra chiến lược giao dịch như sau: làm nhiều khi CCI < 0 và DI + < 25 và AO < 0; khi DI + > 25 thì giữ vị trí bằng phẳng.
Động lực tính toán số lượng đơn đặt hàng cho quyền lợi tài khoản chia cho giá đóng và chiết khấu, để thực hiện số lượng đơn đặt hàng điều chỉnh khi quyền lợi tài khoản thay đổi.
Sử dụng strategy.entry để phát ra nhiều tín hiệu, strategy.close để phát ra tín hiệu cân bằng.
Sử dụng CCI để đánh giá tình trạng quá mua quá bán, có thể lọc hiệu quả các tín hiệu giả tạo từ các biến động.
Chỉ số ADX đánh giá sự hiện diện và cường độ của xu hướng, có thể nắm bắt các tín hiệu xu hướng mạnh hơn.
Chỉ số AO có thể giúp đánh giá nhiệt độ và động lực của xu hướng, tránh giao dịch trong bối cảnh biến động.
Sự kết hợp nhiều chỉ số có thể xác thực tín hiệu với nhau, tăng cường độ tin cậy của tín hiệu và giảm hiệu quả tín hiệu giả.
Số lượng đơn đặt hàng tính năng động có thể điều chỉnh quy mô vị trí theo sự thay đổi quyền lợi của tài khoản, có ý thức quản lý tiền mạnh mẽ.
Các chiến lược được xây dựng theo những logic rõ ràng, đơn giản, dễ hiểu và dễ theo dõi.
Chỉ số CCI có khả năng nhận dạng yếu về động thái chấn động của VSDK, có thể tạo ra tín hiệu sai.
Chỉ số ADX bị tụt hậu, có thể bỏ lỡ điểm chuyển hướng.
Chỉ số AO không có hiệu quả tốt trong việc đánh giá sự cong.
Mặc dù kết hợp nhiều chỉ số có thể làm tăng độ tin cậy tín hiệu, nhưng thiết lập chỉ số không đúng cũng có thể gây ra quá nhiều lọc dẫn đến cơ hội giao dịch bị mất.
DYNAMICAOR liên quan đến biến động của thị trường, cần điều chỉnh các tham số tùy theo các giống và môi trường thị trường khác nhau.
Chiến lược rút tiền có thể lớn hơn và cần quản lý tài chính nghiêm ngặt để kiểm soát rủi ro.
Tối ưu hóa các tham số CCI để xác định các khu vực quá mua quá bán trong các thị trường khác nhau.
Tối ưu hóa tham số ADX để nắm bắt các biến đổi xu hướng trong các loại khác nhau và môi trường thị trường.
Điều chỉnh tham số AO để nhận ra xu hướng thực tế trong các môi trường dao động khác nhau.
Kiểm tra các kết hợp trọng lượng của các chỉ số khác nhau để tìm các tham số tối ưu.
Thêm chiến lược dừng lỗ để kiểm soát rút lui.
Kết hợp với chỉ số khối lượng giao dịch để tránh phá vỡ giả mạo.
Điều chỉnh vị trí cố định theo đặc điểm của các giống khác nhau.
Chiến lược này thông qua sự kết hợp của ba chỉ số CCI, ADX và AO, tạo ra một tín hiệu làm nhiều đáng tin cậy hơn. Đồng thời kết hợp với số lượng đơn đặt hàng và quản lý vị trí tính toán động, có thể kiểm soát rủi ro hiệu quả. Ý tưởng chiến lược đơn giản, rõ ràng, dễ hiểu, phù hợp cho người mới bắt đầu theo dõi học.
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Strategy Niel", shorttitle="Strategy Niel", max_bars_back=2000, initial_capital=1000)
//Input variables
buywhenadxabove = input(25)
buywhendiplusbelow = input(10)
buywhenccibelow = input(0)
buywhenawesomeoscillatorbelow = input(0)
sellwhendiplusabove = input(25)
//CCI script
numberofbarsforcci = input(20)
CCI = cci(close,numberofbarsforcci)
//+DI and ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
//plot(sig, color=red, title="ADX")
//plot(up, color=blue, title="+DI")
//plot(down, color=orange, title="-DI")
//Awesome Oscillator
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? blue : red
//plot(xSMA1_SMA2, style=histogram, linewidth=1, color=cClr)
buy = sig > buywhenadxabove and up < buywhendiplusbelow and CCI < buywhenccibelow and xSMA1_SMA2 < buywhenawesomeoscillatorbelow
ordersize=floor(strategy.equity/close) // Floor returns largest integer, strategy.equity gives total equity remaining - allows to dynamically calculate the order size as the account equity increases or decreases.
strategy.entry("long",strategy.long,ordersize,when= buy) //strategy.entry let's you enter the market variables id ("long"), strategy.long (long position entry), size of the order and when the order should happen
bought = strategy.position_size[0] > strategy.position_size[1]
entry_price = valuewhen(bought, open, 0)
sell = up > sellwhendiplusabove
strategy.close("long", when=sell ) //strategy.close let's you close your position with variables id ('long') and when this should happen