Đâ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.
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
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
Đâ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")