Tài nguyên đang được tải lên... tải...

Chiến lược xu hướng EMA nhiều khung thời gian với hệ thống đột phá cao-tối hàng ngày

Tác giả:ChaoZhang, Ngày: 2024-11-28 15:20:59
Tags:EMAMA

 Multi-Timeframe EMA Trend Strategy with Daily High-Low Breakout System

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á cao thấp hàng ngày với xu hướng EMA nhiều khung thời gian. Chiến lược chủ yếu xác định các cơ hội giao dịch bằng cách theo dõi các đột phá giá của mức cao và thấp của ngày trước, kết hợp với xu hướng EMA và chỉ số dòng tiền Chaikin (CMF). Nó sử dụng EMA 200 giai đoạn trên cả khung thời gian hàng giờ và hàng ngày để tăng độ chính xác giao dịch thông qua xác thực nhiều chỉ số kỹ thuật.

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

Logic cốt lõi bao gồm các yếu tố chính sau: 1. Sử dụng hàm request.security để lấy giá cao và thấp của ngày trước như mức hỗ trợ và kháng cự chính. 2. Bao gồm EMA 24 giai đoạn làm cơ sở để xác định xu hướng. Thực hiện CMF (20 thời gian) như một chỉ số toàn diện về khối lượng và giá để đánh giá dòng tiền thị trường. 4. Tính toán 200 EMA trên cả khung thời gian hiện tại và 1 giờ để xác định hướng xu hướng lớn hơn.

Các quy tắc giao dịch cụ thể: Long Entry: Giá phá vỡ so với mức cao ngày trước + Khép trên EMA + CMF tích cực Short Entry: Giá phá vỡ dưới mức thấp ngày trước + Khép dưới EMA + CMF âm Exit: Cross dưới EMA cho dài, cross trên EMA cho ngắn

Ưu điểm chiến lược

  1. Xác nhận nhiều chỉ số kỹ thuật cải thiện độ tin cậy giao dịch
  2. Phân tích nhiều khung thời gian cung cấp đánh giá xu hướng toàn diện
  3. Tích hợp chỉ số CMF nắm bắt tốt hơn điều kiện dòng tiền thị trường
  4. Mức cao thấp ngày trước phù hợp với thói quen giao dịch của các thành viên thị trường
  5. Logic chiến lược rõ ràng dễ hiểu và thực hiện
  6. Các điều kiện nhập cảnh và xuất cảnh được xác định rõ ràng làm giảm thiểu phán đoán chủ quan

Rủi ro chiến lược

  1. Có thể tạo ra các tín hiệu sai thường xuyên trong các thị trường khác nhau
  2. Không đáp ứng đầy đủ với sự đột phá giá ngay lập tức
  3. Khả năng bỏ lỡ cơ hội ở các cấp chính
  4. Không tính đến xu hướng khung thời gian lớn hơn
  5. Có thể trải qua các đợt rút vốn đáng kể trong thời gian biến động thị trường cực kỳ

Các gợi ý kiểm soát rủi ro: 1. Thực hiện các mức dừng lỗ thích hợp Điều chỉnh các thông số dựa trên điều kiện thị trường 3. Thêm bộ lọc xu hướng 4. Xem xét kết hợp các chỉ số biến động

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

  1. Thực hiện các cơ chế tối ưu hóa tham số thích nghi
  2. Thêm thêm các bộ lọc điều kiện thị trường
  3. Tối ưu hóa các cơ chế dừng lỗ và lấy lợi nhuận
  4. Bao gồm các chỉ số biến động cho các điều kiện thị trường khác nhau
  5. Xem xét các cơ chế quản lý vị trí
  6. Thêm các chỉ số phân tích khối lượng

Tóm lại

Đâ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 khung thời gian. Chiến lược tìm kiếm các cơ hội giao dịch thông qua phân tích toàn diện về các sự đột phá cao thấp trong ngày, xu hướng trung bình động và dòng tiền. Mặc dù có một số rủi ro, chiến lược có giá trị thực tế tốt thông qua kiểm soát rủi ro thích hợp và tối ưu hóa liên tục. Các nhà giao dịch được khuyên nên tiến hành kiểm tra kỹ lưỡng và tối ưu hóa tham số trước khi thực hiện trực tiếp.


/*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")

Có liên quan

Thêm nữa