Điểm cao và thấp hàng ngày kết hợp với chiến lược giao dịch định lượng xu hướng EMA khung thời gian đa dạng

EMA MA
Ngày tạo: 2024-11-28 15:20:59 sửa đổi lần cuối: 2024-11-28 15:20:59
sao chép: 1 Số nhấp chuột: 487
1
tập trung vào
1617
Người theo dõi

Điểm cao và thấp hàng ngày kết hợp với chiến lược giao dịch định lượng xu hướng EMA khung thời gian đa dạng

Tổng quan

Đây là một chiến lược giao dịch định lượng kết hợp các đợt phá vỡ của đường cao thấp và xu hướng EMA nhiều chu kỳ. Chiến lược chủ yếu đánh giá thời gian giao dịch bằng cách theo dõi sự phá vỡ của giá đối với các mức thấp cao của ngày hôm trước, kết hợp với đường trung bình EMA và chỉ số dòng tiền ((CMF)). Chiến lược đồng thời sử dụng đường trung bình EMA 200 chu kỳ của hai chu kỳ thời gian trên đường giờ và đường ngày để tăng độ chính xác của giao dịch bằng cách xác minh nhiều chỉ số kỹ thuật.

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

Logic cốt lõi của chiến lược bao gồm các yếu tố chính sau:

  1. Sử dụng hàm request.security để lấy giá cao nhất và giá thấp nhất của ngày hôm trước làm ngưỡng kháng cự hỗ trợ quan trọng.
  2. Kết hợp với đường trung bình 24 chu kỳ của EMA làm đường chuẩn để đánh giá xu hướng.
  3. Tiếp theo, CMF (20 chu kỳ) được giới thiệu như là một chỉ số tổng hợp về khối lượng giao dịch và giá cả, được sử dụng để đánh giá dòng tiền trên thị trường.
  4. Đồng thời tính toán đường trung bình 200 của chu kỳ thời gian hiện tại và chu kỳ 1 giờ để xác định hướng xu hướng của chu kỳ lớn hơn.

Các quy tắc giao dịch cụ thể như sau: Làm nhiều điều kiện: Giá vượt mức cao nhất một ngày trước + Giá đóng cửa trên EMA + CMF là giá trị chính Điều kiện mở cửa: Giá giảm xuống mức thấp nhất một ngày trước + Giá đóng cửa dưới EMA + CMF là âm Điều kiện thế cân bằng: giá giảm xuống EMA khi mua nhiều, giá vượt qua EMA khi mua ít

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

  1. Xác minh tổng hợp nhiều chỉ số kỹ thuật giúp tăng độ tin cậy giao dịch
  2. Phân tích theo nhiều chu kỳ thời gian giúp nắm bắt được xu hướng thị trường một cách toàn diện hơn
  3. Chỉ số CMF, kết hợp với quan hệ giá trị, có thể đánh giá tốt hơn về tình trạng tài chính của thị trường
  4. Sử dụng các mức cao và thấp của ngày hôm trước như là mức giá quan trọng, phù hợp với thói quen giao dịch của người tham gia thị trường
  5. Logic chiến lược rõ ràng, dễ hiểu và dễ thực hiện
  6. Có các điều kiện nhập cảnh và xuất cảnh rõ ràng, giảm phán đoán chủ quan

Rủi ro chiến lược

  1. Các tín hiệu sai có thể xảy ra thường xuyên trong một thị trường bất ổn.
  2. Không đủ nhạy cảm với những đợt đột phá giá
  3. Có thể bỏ lỡ cơ hội giao dịch ở các vị trí quan trọng
  4. Không tính đến môi trường xu hướng của chu kỳ lớn
  5. Có thể có sự rút lui lớn hơn khi thị trường biến động mạnh

Đề xuất kiểm soát rủi ro:

  1. Đặt điểm dừng hợp lý
  2. Điều chỉnh tham số cho các điều kiện thị trường khác nhau
  3. Thêm bộ lọc xu hướng
  4. Xem xét thêm chỉ số biến động

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

  1. Giới thiệu cơ chế tối ưu hóa tham số thích ứng
  2. Thêm nhiều điều kiện lọc môi trường thị trường
  3. Tối ưu hóa hệ thống dừng và dừng
  4. Thêm chỉ số biến động để phù hợp với môi trường thị trường khác nhau
  5. Xem xét việc gia nhập cơ chế quản lý vị trí
  6. Tăng các chỉ số phân tích lượng giao dịch

Tóm tắt

Đây là một hệ thống giao dịch hoàn chỉnh kết hợp nhiều chỉ số kỹ thuật và phân tích nhiều chu kỳ thời gian. Chiến lược tìm kiếm cơ hội giao dịch thông qua phân tích tổng hợp các điểm phá vỡ, xu hướng trung bình và dòng tiền trong ngày. Mặc dù có một số rủi ro, nhưng với kiểm soát rủi ro hợp lý và cải tiến tối ưu hóa liên tục, chiến lược có giá trị ứng dụng tốt.

Mã nguồn chiến lược
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=100, 
         commission_type=strategy.commission.percent, commission_value=0.1)

// General Inputs
len = input.int(24, minval=1, title='Length MA', group='Optimization parameters')
src = input.source(close, title='Source MA', group='Optimization parameters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

// Function to get daily high and low
f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

// Plotting previous daily high and low
plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

// Entry Conditions
short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0

if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, stop=pricehigh[1])
    strategy.close('long', when=close < out)

// 200 EMA on 1-hour timeframe
ema_200 = ta.ema(close, 200)
ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))

plot(ema_200_1h, color=color.purple, title="200 EMA (1H)")
plot(ema_200, color=color.white, title="200 EMA")