Hệ thống giao dịch hỗ trợ động khung thời gian kép

SMA EMA
Ngày tạo: 2024-12-05 16:44:56 sửa đổi lần cuối: 2024-12-05 16:44:56
sao chép: 0 Số nhấp chuột: 366
1
tập trung vào
1617
Người theo dõi

Hệ thống giao dịch hỗ trợ động khung thời gian kép

Tổng quan

Chiến lược này là một hệ thống giao dịch hỗ trợ động dựa trên hai khung thời gian, giao dịch bằng cách kết hợp tín hiệu chéo của đường SMA và đường EMA trên khung thời gian đường tuần và đường nhật. Hệ thống sử dụng sự hỗ trợ hình thành giữa đường trung bình để xác định xu hướng thị trường và cơ hội giao dịch, tăng độ chính xác của giao dịch bằng cách xác nhận tín hiệu của hai chu kỳ thời gian khác nhau.

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

Nguyên tắc cốt lõi của chiến lược là xác định các tín hiệu giao dịch bằng cách theo dõi mối quan hệ giữa các đường chéo và vị trí của đường trung bình trong hai khoảng thời gian:

  1. Chu kỳ dài ((chiều tròn) sử dụng SMA 20 tuần và EMA 21 tuần, chu kỳ ngắn ((chiều tròn) sử dụng SMA 50 ngày và EMA 51 ngày
  2. Trong chu kỳ dài, khi EMA vượt qua SMA lên sẽ tạo ra tín hiệu đa và khi vượt qua SMA xuống sẽ tạo ra tín hiệu ngang
  3. Trong chu kỳ ngắn, một tín hiệu đa được tạo ra khi EMA đi lên qua SMA và EMA ngắn nằm trên EMA dài
  4. Hệ thống sẽ xóa tất cả các đơn đặt hàng khi có tín hiệu giảm giá trong chu kỳ ngắn hoặc đường trung bình của chu kỳ dài.
  5. Chiến lược hoạt động trong phạm vi thời gian được chỉ định, vượt quá phạm vi tự động thanh toán

Lợi thế chiến lược

  1. Cơ chế xác nhận nhiều lần: xác nhận tín hiệu bằng hai chu kỳ thời gian, giảm tác động của tín hiệu giả
  2. Dải hỗ trợ động: Dải hỗ trợ hình thành giữa các đường đồng đều có thể thích ứng động với sự thay đổi của thị trường
  3. Quản lý rủi ro tốt: bao gồm chi phí giao dịch và điểm trượt, sử dụng quản lý tỷ lệ phần trăm
  4. Khả năng tự điều chỉnh: Dây đai hỗ trợ tự động điều chỉnh vị trí theo biến động của thị trường
  5. Quy tắc hoạt động rõ ràng: điều kiện nhập cảnh và xuất cảnh rõ ràng, dễ thực hiện và đánh giá lại

Rủi ro chiến lược

  1. Rủi ro thị trường chấn động: có thể tạo ra các tín hiệu sai lệch thường xuyên trong thị trường chấn động ngang
  2. Rủi ro bị tụt hậu: Chỉ số đường trung bình tự nó có một chút tụt hậu, có thể bỏ lỡ điểm đầu vào tốt nhất
  3. Nhận thức tham số: chọn chu kỳ trung bình có ảnh hưởng lớn đến hiệu suất chiến lược
  4. Tùy thuộc vào môi trường thị trường: Chiến lược hoạt động tốt trong thị trường xu hướng, nhưng có thể hoạt động kém trong thị trường biến động mạnh
  5. Rủi ro quản lý vốn: Vị trí tỷ lệ phần trăm cố định có thể quá rủi ro trong một số điều kiện thị trường

Hướng tối ưu hóa chiến lược

  1. Tham gia chỉ số biến động: Xem xét thêm các chỉ số biến động như ATR để thay đổi kích thước vị trí
  2. Lựa chọn tham số tối ưu hóa: có thể tối ưu hóa hiệu suất của hệ thống bằng cách đo lại tham số đường trung bình trong các khoảng thời gian khác nhau
  3. Thêm bộ lọc môi trường thị trường: thêm các chỉ số cường độ xu hướng để lọc môi trường thị trường không phù hợp
  4. Cải thiện cơ chế dừng lỗ: Xem xét thêm dừng động hoặc dừng cố định để kiểm soát rủi ro hơn nữa
  5. Quản lý vị trí tối ưu hóa: có thể điều chỉnh kích thước vị trí động theo cường độ tín hiệu và biến động thị trường

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch tương đối ổn định bằng cách kết hợp các tín hiệu chéo đồng tuyến trong các chu kỳ thời gian khác nhau. Xác định xu hướng thị trường bằng khái niệm về dải hỗ trợ, sử dụng cơ chế xác nhận nhiều lần để tăng độ chính xác của giao dịch. Thiết kế chiến lược xem xét các yếu tố khác nhau trong giao dịch thực tế, bao gồm chi phí giao dịch, điểm trượt và quản lý thời gian. Mặc dù có một số rủi ro vốn có, nhưng bằng cách cung cấp hướng tối ưu hóa, bạn có thể nâng cao hơn nữa sự ổn định và khả năng sinh lợi của chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT - Bull Market Support Band", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)

start_date = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2069-12-31 00:00 +0000"), title="End Date")

lsmaLength = input.int(20, title="Long SMA Length", minval=1)
lemaLength = input.int(21, title="Long EMA Length", minval=1)
customLongTimeframe = input.timeframe("W", title="Long Timeframe")  // Khung thời gian dài
ssmaLength = input.int(50, title="Short SMA Length", minval=1)
semaLength = input.int(51, title="Short EMA Length", minval=1)
customShortTimeframe = input.timeframe("D", title="Short Timeframe")  // Khung thời gian ngắn

source = close

// Tính toán SMA và EMA cho khung thời gian dài
smaLong = ta.sma(source, lsmaLength)
emaLong = ta.ema(source, lemaLength)
outSmaLong = request.security(syminfo.tickerid, customLongTimeframe, smaLong)
outEmaLong = request.security(syminfo.tickerid, customLongTimeframe, emaLong)

// Tính toán SMA và EMA cho khung thời gian ngắn
smaShort = ta.sma(source, ssmaLength)
emaShort = ta.ema(source, semaLength)
outSmaShort = request.security(syminfo.tickerid, customShortTimeframe, smaShort)
outEmaShort = request.security(syminfo.tickerid, customShortTimeframe, emaShort)

// Plot các chỉ báo trên biểu đồ
smaPlotLong = plot(outSmaLong, color=color.new(color.red, 0), title='20w SMA (Long)')
emaPlotLong = plot(outEmaLong, color=color.new(color.green, 0), title='21w EMA (Long)')
smaPlotShort = plot(outSmaShort, color=color.new(color.red, 0), title='20d SMA (Short)')
emaPlotShort = plot(outEmaShort, color=color.new(color.green, 0), title='21d EMA (Short)')

// Fill vùng giữa các đường SMA và EMA
fill(smaPlotLong, emaPlotLong, color=color.new(color.orange, 75), fillgaps=true)
fill(smaPlotShort, emaPlotShort, color=color.new(color.orange, 75), fillgaps=true)

// Điều kiện long và short cho khung thời gian dài
longConditionLong = ta.crossover(outEmaLong, outSmaLong)
shortConditionLong = ta.crossunder(outEmaLong, outSmaLong)

// Điều kiện long và short cho khung thời gian ngắn
longConditionShort = ta.crossover(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong)
shortConditionShort = ta.crossunder(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong) // Điều kiện short khi EMA ngắn hạn cắt xuống dưới SMA ngắn hạn và EMA ngắn hạn cao hơn EMA dài hạn

// Kiểm tra điều kiện trong khoảng thời gian được chỉ định
inDateRange = true

// Nếu khung ngắn hạn xuất hiện tín hiệu short, ưu tiên đóng tất cả các lệnh Long
if shortConditionShort and inDateRange
    strategy.close_all()

// Nếu khung dài có tín hiệu short, đóng tất cả các lệnh Long
if shortConditionLong and inDateRange
    strategy.close_all()

// Nếu khung ngắn hạn có tín hiệu long và không có tín hiệu short từ khung dài, vào lệnh Long
if longConditionShort and not shortConditionLong and not shortConditionShort and inDateRange
    strategy.entry("Long", strategy.long)

// Đóng tất cả các lệnh khi không trong khoảng thời gian được chọn
if not inDateRange
    strategy.close_all()