Chiến lược giao dịch Golden Cross


Ngày tạo: 2023-11-23 14:07:11 sửa đổi lần cuối: 2023-11-23 14:07:11
sao chép: 0 Số nhấp chuột: 614
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch Golden Cross

Tổng quan

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.

Nguyên tắc chiến lược

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ỗ.

Phân tích lợi thế

  • Sử dụng công nghệ tổng hợp song tuyến để loại bỏ tác động của biến động giá, xác định chính xác xu hướng;
  • Các giải pháp này có thể được sử dụng cho các trận đấu khác nhau.
  • Dòng đường cong sử dụng công nghệ lọc hồi quy tuyến tính tự thích ứng, tránh đường cong bị ảnh hưởng bởi giá trị cực;
  • Vị trí Stop Loss Stop Stop thay đổi theo động lực của kênh, tự động theo dõi xu hướng và kiếm lợi nhuận.

Phân tích rủi ro

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:

  • Các nhà khoa học đã phát hiện ra một số dấu hiệu khác trong các cơn động đất, bao gồm:
  • Các sự kiện đột ngột gây ra thiệt hại lớn khi Fast phá vỡ giới hạn dưới của kênh xuống;
  • Thiết lập tham số không đúng cách dễ gây ra thất bại chính sách.

Để 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.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. 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;

  2. 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;

  3. 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;

  4. 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.

Tóm tắt

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.

Mã nguồn chiến lược
/*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_))