
Chiến lược giao dịch Binary Binary nhiều chọn là một chiến lược giao dịch định lượng kết hợp các chỉ số Binary, chỉ số đường trung bình, chỉ số RSI và các đặc điểm đồ thị K để lọc nhiều điều kiện và phát ra tín hiệu giao dịch khi các điều kiện được đáp ứng. Đây là một chiến lược theo dõi xu hướng điển hình để kiếm lợi nhuận bằng cách nắm bắt các biến động xu hướng giá của đường dài và đường trung.
Chiến lược này chủ yếu sử dụng ba chỉ số Brin, đường trung bình và RSI. Trong đó, đường trung bình của Brin là đường trung bình di chuyển đơn giản n ngày của giá, đường trung bình trên và đường trung bình dưới là đường trung bình + 2 lần chênh lệch chuẩn và đường trung bình -2 lần chênh lệch chuẩn. Chỉ số RSI là các giá trị trong phạm vi từ 0 đến 100 được tính dựa trên sự sụt giảm trong một khoảng thời gian nhất định.
Chiến lược này tạo ra tín hiệu giao dịch dựa trên ba điều kiện chính sau:
(1) Brin mang theo phá vỡ đường ray & K đường thực thể phản đối. Khi giá đóng cửa vượt qua đường ray, và màu sắc của thực thể đường K ngược lại với hướng xu hướng hiện tại, hãy làm nhiều hơn.
(2) Brin đai phá vỡ đường ray & K đường thực thể phản đối. Khi giá đóng cửa đi vào đường ray, và màu sắc của K đường thực thể ngược lại với hướng xu hướng hiện tại, làm cho trống.
(3) Cụ thể K-line chuyển hướng. Nếu hướng giữ vị trí phù hợp với màu sắc của thực thể K-line chuyển hướng, thì vị trí bằng phẳng.
Ngoài ra, chiến lược này còn thiết lập các điều kiện phụ trợ như bộ lọc đồng tuyến, bộ lọc thực thể K-line, bộ lọc RSI để kiểm soát chặt chẽ nhập cảnh.
Bạn có thể giảm rủi ro bằng cách điều chỉnh tham số Brinh và kiểm soát chặt chẽ stop loss.
Chiến lược này nói chung là một chiến lược theo dõi xu hướng đường dài trung bình điển hình. Bằng cách lọc nhiều điều kiện, kiểm soát chặt chẽ thời gian nhập cảnh và xuất cảnh, sử dụng phương pháp giao dịch xu hướng, có thể giảm giao dịch không cần thiết, nắm bắt xu hướng đường dài trung bình của thị trường.
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.4", shorttitle = "Bollinger str 1.4", overlay = true )
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(1, defval = 1, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
usebf = input(true, defval = true, title = "Use body-filter")
usecf = input(true, defval = true, title = "Use color-filter")
userf = input(true, defval = true, title = "Use RSI-filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")
//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
//Lines
col = showbands ? black : na
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)
//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebf == false
//Color filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false
//RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
ursi = rsi > 70 or userf == false
drsi = rsi < 30 or userf == false
//Signals
up = close <= lower and rb and body and drsi and (close < strategy.position_avg_price or strategy.position_size == 0)
dn = close >= upper and gb and body and ursi and (close > strategy.position_avg_price or strategy.position_size == 0)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body
//Trading
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if exit
strategy.close_all()