
Chiến lược phân tán xác nhận sử dụng tín hiệu phân tán kép của chỉ số RSI và chỉ số Awesome Oscillator để xác định thời điểm đi vào thị trường đáng tin cậy hơn. Khi giá tạo ra một mức cao hoặc thấp mới, và chỉ số RSI và AO tạo ra một mức cao hoặc thấp ngược lại, đó là tín hiệu phân tán. Chiến lược này yêu cầu cả hai chỉ số phát tán cùng một lúc, do đó lọc ra một số tín hiệu giả và tăng hiệu quả vào thị trường.
Chiến lược này dựa trên sự phân tán giữa giá tăng và giảm và các giá trị của chỉ số RSI và AO để đánh giá điểm mua và bán. Các phương pháp đánh giá cụ thể như sau:
Sự phân tán đa đầu: Giá tạo ra mức thấp mới gần đây, trong khi RSI và AO tạo ra mức cao mới gần đây, tức là giá giảm và RSI và AO tăng lên, tạo thành tín hiệu phân tán đa đầu.
Sự phân tán đầu rỗng: Giá tạo ra một mức cao mới gần đây, trong khi RSI và AO tạo ra một mức thấp mới gần đây, tức là giá tăng và RSI và AO giảm, tạo thành tín hiệu phân tán đầu rỗng.
Chiến lược yêu cầu hai chỉ số đáp ứng các điều kiện phân tán cùng một lúc, để tránh tín hiệu sai dẫn đến phân tán giả của chỉ số đơn. Khi tín hiệu phân tán được thiết lập, đặt lệnh dừng ở gần đường ray dưới hoặc trên đường ray của Brin, điểm dừng cụ thể là trên đường ray dưới hoặc dưới đường ray trên.
Chiến lược này có những ưu điểm sau:
Bộ lọc hai chỉ số tăng độ tin cậy của tín hiệu, tránh tín hiệu phân tán giả của chỉ số đơn.
Sử dụng các đặc tính phân tán của chỉ số để đánh giá điểm mua và bán, khả năng rút lại thấp hơn.
Tín hiệu phân tán có tính liên tục tốt, có nhiều cơ hội để kiếm tiền.
Thiết lập dừng lỗ gần mức hỗ trợ hoặc kháng cự quan trọng để giảm thiểu khả năng mất mát lớn.
Chiến lược này cũng có một số rủi ro:
Điều kiện lọc kép được thực hiện cùng một lúc ít hơn, có thể bỏ lỡ một số cơ hội giao dịch.
Các tín hiệu phân tán không phải là 100% đáng tin cậy, và trong một số trường hợp, có thể có sự mất mát.
Thiết lập tham số không chính xác của dây chuyền brinh có thể dẫn đến lỗ hổng quá rộng hoặc quá hẹp.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Điều chỉnh tham số chu kỳ của phán đoán phân tán, tối ưu hóa tham số của tín hiệu phân tán.
Kiểm tra các phương thức dừng khác nhau, chẳng hạn như dừng theo dõi hoặc dừng động.
Thêm các bộ lọc cho các chỉ số khác, chẳng hạn như khối lượng giao dịch, để cải thiện thêm độ tin cậy của tín hiệu.
Cân nhắc toàn diện các yếu tố như xu hướng, hỗ trợ kháng cự, và xác định chất lượng của tín hiệu phân tán.
Xác định chiến lược phân tán thông qua tín hiệu phân tán kép của RSI và AO để đánh giá thời gian đưa ra thị trường, cơ chế lọc kép có hiệu quả trong việc giảm tín hiệu giả, nâng cao xác suất lợi nhuận. Chiến lược cũng đặt dừng lỗ ở vị trí quan trọng để kiểm soát rủi ro, có đặc điểm lợi nhuận rủi ro tốt hơn. Bằng cách tối ưu hóa tham số, tăng bộ lọc tín hiệu, các phương tiện có thể tiếp tục nâng cao sự ổn định của chiến lược và hiệu quả giao dịch.
/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Confirmed Divergence Strategy", overlay=true)
source = close
length = input(30, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
// SETTING UP VARIABLES //
src = close
// RSI //
rsiprd = input(title="RSI period",defval=14)
rv = rsi(src,rsiprd)
ob = input(title="Overbought Level", defval=70)
os = input(title="Oversold Level", defval=30)
lengthAO1=input(title="Awesome Short MA", defval=5, minval=1) //5 periods
lengthAO2=input(title="Awesome Long MA", defval=34, minval=1) //34 periods
//Awesome//
AO = sma((high+low)/2, lengthAO1) - sma((high+low)/2, lengthAO2)
// look back periods //
x = input(title = "short lookback period",defval=5)
z = input(title = "long lookback period",defval=25)
// END SETUP //
////////////////////////
// BULLISH DIVERGENCE //
////////////////////////
// define lower low in price //
srcLL = src > lowest(src,x) and lowest(src,x)<lowest(src,z)[x]
// define higher low in rsi //
rsiHL = rv>lowest(rv,x) and lowest(rv,x) > lowest(rv,z)[x] and lowest(rv,z)<os
// define higher low in AO //
aoHL = AO > lowest(AO,x) and lowest(AO,x) > lowest(AO,z)[x] and lowest(AO, x) < 0
BullishDiv = srcLL and rsiHL and aoHL
////////////////////////
// BEARISH DIVERGENCE //
////////////////////////
// define higher high in price //
srcHH = src < highest(src,x) and highest(src,x)>highest(src,z)[x]
// define lower high in RSI //
rsiLH = rv<highest(rv,x) and highest(rv,x) < highest(rv,z)[x] and highest(rv,z)>ob
// define lower high in AO //
aoLH = AO<highest(AO,x) and highest(AO,x) < highest(AO,z)[x] and highest(AO, x) > 0
BearishDiv = srcHH and rsiLH and aoLH
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
if (BullishDiv)
strategy.entry("DivLE", strategy.long, stop=lower, oca_name="BullishDiv",comment="DivLE")
else
strategy.cancel(id="DivLE")
if (crossover(close, lower))
strategy.close("DivSE")
if (crossunder(close, upper))
strategy.close("DivLE")
if (BearishDiv)
strategy.entry("DivSE", strategy.short, stop=upper, oca_name="BearishDiv",comment="DivSE")
else
strategy.cancel(id="DivSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)