
Chiến lược này sử dụng các chỉ số động lực như ADX, RSI và Bollinger Bands để đánh giá xu hướng thị trường và chiến lược giao dịch tự động mua bán, mua thấp và mua cao, và rút ra lợi nhuận bằng cách đánh giá tình trạng mua bán quá mức.
Theo các chỉ số trên để đánh giá tình trạng thị trường, hãy xây dựng chiến lược giao dịch như sau:
Điều kiện mua hàng:
Điều kiện bán hàng:
Chiến lược này sử dụng tổng hợp nhiều chỉ số để đánh giá tình trạng thị trường, tránh khả năng đánh giá sai lầm của chỉ số đơn lẻ. Đồng thời, thông qua xu hướng, đánh giá tình trạng bán tháo, có thể khóa hiệu quả các điểm biến đổi thị trường, để đạt được giá thấp và giá cao.
Chiến lược này có thể nắm bắt các cơ hội ngắn hạn một cách kịp thời hơn so với chỉ số xu hướng đơn lẻ. Chiến lược này có thể nắm bắt được hướng xu hướng tốt hơn so với chỉ số biến động đơn lẻ. Vì vậy, chiến lược này vẫn giữ được lợi thế của việc theo dõi xu hướng và có tính linh hoạt trong hoạt động ngược, là một chiến lược định lượng có hiệu quả cao.
Chiến lược này có những rủi ro chính như sau:
Các biện pháp quản lý rủi ro:
Chính sách này có thể được tối ưu hóa trong các lĩnh vực sau:
Tối ưu hóa tham số chỉ số. Có thể giới thiệu thuật toán tối ưu hóa thông minh để tối ưu hóa độc lập cho các tham số khác nhau.
Tăng kỹ thuật tính năng. giới thiệu nhiều chỉ số kỹ thuật giá cả, thiết lập các mô hình hỗ trợ máy vector để đào tạo, nâng cao độ chính xác tín hiệu.
Tham gia chiến lược đột phá. Dựa trên các đặc điểm của tình huống của các giống khác nhau, áp dụng các quy tắc phán đoán dựa trên đường dẫn, kháng cự hỗ trợ, nắm bắt điểm đột phá, tăng cường sự ổn định của chiến lược.
Tối ưu hóa cơ chế dừng lỗ. Tiến hành theo dõi dừng lỗ, di chuyển dừng lỗ, để thực hiện điều chỉnh động lực dừng lỗ, tối đa hóa lợi nhuận và kiểm soát rủi ro hiệu quả.
Chiến lược này là một chiến lược giao dịch định lượng ngắn hạn, sử dụng nhiều chỉ số kỹ thuật như ADX, RSI, và Brin để đánh giá tình trạng thị trường. Chiến lược có thể giải thích logic rõ ràng, có thể làm giảm đáng kể khả năng đánh giá sai lầm của chỉ số kỹ thuật đơn lẻ. Đồng thời, chiến lược cũng cần cảnh báo các chỉ số phát ra tín hiệu sai, thiết lập các rủi ro như dừng quá cấp tiến và sai lệch tham số lỗ, cần bắt đầu từ quản lý rủi ro và tối ưu hóa mô hình để nâng cao sự ổn định và hiệu quả của chiến lược.
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("DAX Shooter 5M Strategy", overlay=true)
//Creo ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", type=input.integer, defval=20)
dirmov(len) =>
up = change(high)
down = -change(low)
plusDM = na(up) ? na : up > down and up > 0 ? up : 0
minusDM = na(down) ? na : down > up and down > 0 ? down : 0
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, 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] = dirmov(dilen)
sig = adx(dilen, adxlen)
//Creo RSI
src = close
len = input(7, minval=1, title="Periodo RSI")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
bandainf = input(30, title="Livello Ipervenduto")
bandasup = input(70, title="Livello Ipercomprato")
//Creo Bande di Bollinger
source = close
length = input(50, minval=1, title="Periodo BB")
mult = input(2.0, minval=0.001, maxval=50, title="Dev BB")
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.white)
p1 = plot(upper, color=color.aqua)
p2 = plot(lower, color=color.aqua)
fill(p1, p2)
//Stabilisco regole di ingresso
if crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
strategy.entry("COMPRA", strategy.long, limit=upper, oca_name="DaxShooter", comment="COMPRA")
else
//strategy.exit("exit", "COMPRA", loss = 90)
strategy.cancel(id="COMPRA")
if crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
strategy.entry("VENDI", strategy.short, limit=lower, oca_name="DaxShooter",comment="VENDI")
else
//strategy.exit("exit", "VENDI", loss = 90)
strategy.cancel(id="VENDI")
//Imposto gli alert
buy= crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
sell= crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
alertcondition(buy, title='Segnale Acquisto', message='Compra DAX')
alertcondition(sell, title='Segnale Vendita', message='Vendi DAX')
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)