
Chiến lược giao dịch Gold Cross là một chiến lược theo dõi xu hướng đường dài và đường dài. Nó xác định hướng xu hướng của giá cổ phiếu bằng cách tính toán chỉ số SR và chỉ số tín hiệu SR, và kết hợp với mạng thần kinh để vẽ kênh xu hướng, để thực hiện hoạt động theo dõi xu hướng.
Chỉ số SR và chỉ số tín hiệu SR là các chỉ số cốt lõi của chiến lược. Chỉ số SR là tổng hợp thứ hai của đường trung bình WMA và đường trung bình SMA với tham số 8 chu kỳ. Chỉ số tín hiệu SR là chỉ số SR với tham số 20 chu kỳ.
Chiến lược này sử dụng các thuật toán mạng thần kinh để tự động vẽ các giới hạn trên và dưới của giá cổ phiếu, tạo ra một kênh thích ứng. Các giới hạn trên được lấy giá trị tối đa lịch sử của chỉ số SR làm đầu vào, giới hạn dưới được lấy giá trị tối thiểu lịch sử làm đầu vào, và sau đó tính toán đường cong trở lại như các giới hạn trên và dưới của kênh.
Khi dấu hiệu SR trên chỉ số SR, tạo ra tín hiệu mua; khi dấu hiệu SR dưới chỉ số SR, tạo ra tín hiệu bán. Sau khi tín hiệu giảm giá được phát hành, mối quan hệ giữa giá cổ phiếu và giới hạn trên và dưới của kênh quyết định vị trí dừng lỗ.
Chiến lược này chủ yếu dựa trên việc theo dõi xu hướng và có những rủi ro chính như sau:
Để kiểm soát rủi ro, nên kết hợp các chiến lược khác, tránh hoạt động theo một chiến lược duy nhất; đồng thời tối ưu hóa các thiết lập tham số để thích ứng với các môi trường thị trường khác nhau.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa các tham số của chỉ số SR và chỉ số tín hiệu, tăng sự ổn định của tín hiệu chéo;
Tối ưu hóa chu kỳ chiều dài của đường dẫn tự điều chỉnh, làm mịn đường dẫn;
Thêm các chỉ số lọc khác để tránh sai lệch, chẳng hạn như chỉ số năng lượng, chỉ số tỷ lệ dao động;
Kết hợp với các thuật toán học sâu để tối ưu hóa đường cong trong thời gian thực, cải thiện khả năng thích ứng.
Chiến lược giao dịch chéo vàng là một chiến lược định lượng có hiệu quả để theo dõi xu hướng đường dài. Nó có xác suất lớn để xác định đúng hướng xu hướng, rủi ro hoạt động nhỏ. Với không gian tối ưu hóa mô hình thuật toán, chiến lược này có khả năng trở thành một công cụ mạnh mẽ để theo dõi sự thay đổi xu hướng cổ phiếu.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
strategy(title = " Strategy PyramiCover",
shorttitle = "S-PC",
overlay = true,
precision = 8,
calc_on_order_fills = true,
calc_on_every_tick = true,
backtest_fill_limits_assumption = 0,
default_qty_type = strategy.fixed,
default_qty_value = 2,
initial_capital = 10000,
pyramiding=50,
currency = currency.USD,
linktoseries = true)
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)
FromMonth = input(defval = 1, title = "Month", minval = 1)
FromDay = input(defval = 1, title = "Day", minval = 1)
FromYear = input(defval = 2014, title = "Year", minval = 2014)
backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth = input(defval = 31, title = "Month", minval = 1)
ToDay = input(defval = 12, title = "Day", minval = 1)
ToYear = input(defval = 9999, title = "Year", minval = 2014)
backTestPeriod() => (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
per = input(14,title="🔹 Length")
//
up = 0.0
nup= 0.0
lowl = 0.0
nin = 0.0
//
srl=wma(close,8)
srr = sma(close,8)
sr = 2*srl - srr
//
srsl=wma(close,20)
srsr= sma(close,20)
srsignal = 2*srsl - srsr
//
if sr>srsignal
up := highest(sr,round(150))
nup :=highest(srsignal,round(20))
else
up := highest(srsignal,round(150))
nup := highest(sr,round(20))
//
if sr<srsignal
lowl := lowest(sr,round(150))
nin := lowest(srsignal,round(20))
else
lowl := lowest(sr,round(150))
nin := lowest(srsignal,round(20))
//reg alexgrover
f_reg(src,length)=>
x = bar_index
y = src
x_ = sma(x, length)
y_ = sma(y, length)
mx = stdev(x, length)
my = stdev(y, length)
c = correlation(x, y, length)
slope = c * (my / mx)
inter = y_ - slope * x_
reg = x * slope + inter
reg
//
up_=f_reg(up,per)
lowl_=f_reg(lowl,per)
nup_=f_reg(nup,per)
nin_=f_reg(nin,per)
//
plot(sr, title='SR', color=color.green, linewidth=2, style=plot.style_line,transp=0)
plot(srsignal, title='SR-Signal', color=color.red, linewidth=2, style=plot.style_line,transp=0)
plot(up_, title='Upper limit', color=color.blue, linewidth=3, style=plot.style_line,transp=0)
plot(lowl_, title='Lower limit', color=color.blue, linewidth=3, style=plot.style_line,transp=0)
a=plot(nup_, title='Neuronal Upper', color=color.gray, linewidth=1, style=plot.style_line,transp=0)
b=plot(nin_, title='Neuronal Lower', color=color.gray, linewidth=1, style=plot.style_line,transp=0)
fill(a, b, color=color.gray)
plotshape(crossunder(sr,nup_)? sr+atr(20):na, title="Sell", text="🐻", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.black,transp=0)
plotshape(crossover(sr,nin_)? sr-atr(20):na, title="Buy", text="🐂", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.black,transp=0)
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
if backTestPeriod()
strategy.entry("Buy", true, 1, when = crossover(sr,nin_))
strategy.entry("Short", false, 1, when = crossunder(sr,nup_))