Chiến lược giao dịch học máy sẵn sàng

Tác giả:ChaoZhang, Ngày: 2024-01-29 11:20:42
Tags:

img

Tổng quan

Chiến lược này sử dụng các phương pháp học máy để thực hiện một chiến lược giao dịch tự động sẵn sàng. Nó tích hợp nhiều chỉ số và mô hình để tự động tạo ra tín hiệu giao dịch và đưa ra quyết định mua và bán phù hợp.

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

Chiến lược này chủ yếu dựa trên các điểm chính sau:

  1. Sử dụng Hull Moving Average để xác định hướng xu hướng thị trường
  2. Sử dụng EMA để đánh giá xu hướng ngắn hạn và trung hạn
  3. Sử dụng kênh thân nến để xác định vị trí các mức hỗ trợ / kháng cự chính
  4. Thực hiện các quyết định dựa trên giao thoa giữa giá mở và đóng từ nhiều khung thời gian

Cụ thể, chiến lược sẽ vẽ Hull MA, EMA 13 giai đoạn và EMA 21 giai đoạn. Đánh giá hướng xu hướng ngắn hạn và trung hạn dựa trên tình trạng dài và ngắn hạn của EMA. Kết hợp với Hull MA để xác định xu hướng chu kỳ dài hơn. Điều này cung cấp hướng dẫn về hướng chung cho các tín hiệu giao dịch tiếp theo.

Trước khi điều chỉnh các vị trí, chiến lược sẽ đề cập đến giá cao nhất và thấp nhất trong kênh thực thể tương ứng với mức hỗ trợ và kháng cự.

Cuối cùng, chiến lược gọi giá mở và đóng 60 giai đoạn. Khi giá đóng vượt trên giá mở, một tín hiệu mua được tạo ra. Khi nó vượt dưới, một tín hiệu bán được tạo ra. Điều này hoàn thành toàn bộ logic giao dịch.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là nó kết hợp các chỉ số học máy và phân tích kỹ thuật để đạt được một giải pháp giao dịch tự động hợp lý, điều chỉnh và dễ sử dụng.

  1. Sự kết hợp nhiều chỉ báo cải thiện độ chính xác tín hiệu

    Chiến lược không chỉ dựa vào một hoặc hai chỉ số, mà còn tính đến nhiều yếu tố như xu hướng, hỗ trợ / kháng cự và đột phá giá. Điều này cải thiện đáng kể độ tin cậy và độ chính xác của các tín hiệu.

  2. Cài đặt tham số linh hoạt

    Độ dài của thời gian Hull MA, EMA, thời gian chéo mở / gần có thể được điều chỉnh thông qua các tham số, làm cho chiến lược thích nghi với môi trường thị trường khác nhau.

  3. Các tín hiệu giao dịch tự động

    Các tín hiệu giao dịch dựa trên các chỉ số và chéo có thể tự động kích hoạt mua và bán mà không cần phán đoán bằng tay, làm giảm khó khăn.

  4. Hiển thị hiển thị

    Các biểu đồ trong chiến lược có thể hiển thị rõ cấu trúc thị trường, tình trạng xu hướng và giá chính, hiển thị trực quan cơ sở cho phán đoán chiến lược.

Phân tích rủi ro

Mặc dù chiến lược này đã được tối ưu hóa trong nhiều khía cạnh, vẫn có một số rủi ro tiềm ẩn:

  1. Không theo dõi các biến động giá mạnh mẽ

    Trong các thị trường biến động, các chỉ số có thể trở nên không hiệu quả hoặc bị trì hoãn, khiến chiến lược không thể theo dõi sự thay đổi giá theo thời gian.

  2. Sự tồn tại của tỷ lệ lỗi tín hiệu

    Các tín hiệu giao dịch dựa trên các chỉ số và mô hình, nhiều hơn hoặc ít hơn, sẽ có một số tín hiệu sai hoặc thiếu tín hiệu.

  3. Rủi ro hỗn hợp dài/nắn

    Chiến lược thực hiện cả hai vị trí dài và ngắn đồng thời có nguy cơ mất mát ở cả hai bên nếu các phán quyết sai.

  4. Nguy cơ tăng cân

    Các thiết lập tham số quá phức tạp có nguy cơ quá tải. Hệ thống cần phải được đơn giản hóa với số lượng hạn chế các kết hợp tham số.

Hướng dẫn tối ưu hóa

Vẫn còn một số chỗ để tối ưu hóa chiến lược này, chủ yếu trong các khía cạnh sau:

  1. Thêm nhiều tín hiệu chỉ số

    Ngoài các chỉ số hiện có, có thể giới thiệu thêm các chỉ số phụ trợ, chẳng hạn như các kênh BOLL, chỉ số KD, v.v., để làm phong phú hơn hệ thống tham chiếu.

  2. Áp dụng các mô hình học sâu

    Sử dụng các chỉ số đơn giản như các tính năng để đào tạo LSTM và các mô hình học sâu khác để cải thiện chất lượng tín hiệu.

  3. Bao gồm dữ liệu cơ bản

    Thêm dữ liệu kinh tế vĩ mô, thông tin chính sách và các yếu tố cơ bản khác để tối ưu hóa các quyết định chu kỳ dài.

  4. Đánh giá rủi ro và vị trí

    Đưa ra các chiến lược dừng lỗ, điều chỉnh động kích thước vị trí dựa trên biến động lợi nhuận chiến lược để kiểm soát nghiêm ngặt rủi ro.

Kết luận

Chiến lược này tích hợp các xu hướng, mức hỗ trợ / kháng cự, đột phá và nhiều chỉ số khác, sử dụng các phương pháp học máy để đạt được các giải pháp giao dịch định lượng tự động, sẵn sàng sử dụng. Nó có những lợi thế của các kết hợp chỉ số đa dạng, các tham số có thể điều chỉnh và các tín hiệu tự động, đồng thời cũng phải đối mặt với các sai lệch theo dõi, lỗi tín hiệu, rủi ro hỗn hợp dài / ngắn ở một mức độ nào đó. Vẫn còn các hướng tối ưu hóa hơn nữa bằng cách kết hợp nhiều chỉ số và mô hình phụ trợ hơn, kết hợp các yếu tố cơ bản, điều chỉnh vị trí năng động và vân vân, để đạt được hiệu suất giao dịch định lượng ổn định, chính xác và thông minh hơn.


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Period=input('60')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close")
plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open")

///////////////////////////////////////////////////////////////////////////////////////////

Thêm nữa