Chiến lược đột phá xác nhận đôi là một chiến lược giao dịch kết hợp các chiến lược đột phá và các chiến lược trung bình động. Chiến lược này sử dụng giá cao nhất và giá thấp nhất của ngày trước như mức giá chính, kết hợp với tín hiệu chéo vàng và dấu chéo chết của các trung bình di chuyển nhanh và chậm, để thực hiện các giao dịch mua và bán.
Logic cốt lõi của chiến lược xác nhận hai lần là:
Phát hiện xem giá có vượt qua giá cao nhất hay giá thấp nhất của ngày trước không. Nếu giá vượt qua giá cao nhất của ngày trước, nó được xem là tín hiệu tăng; nếu giá vượt qua giá thấp nhất của ngày trước, nó được xem là tín hiệu giảm.
Khi một bước đột phá xảy ra, kiểm tra xem đường nhanh (10 ngày) phá vỡ đường chậm (30 ngày) Nếu vậy, lệnh mua được thực hiện; nếu đường nhanh phá vỡ đường chậm xuống, sau đó bán.
Thiết lập tỷ lệ dừng lỗ và lấy lợi nhuận cố định để tính giá dừng lỗ và lấy lợi nhuận. Ví dụ, nếu chiến lược đặt tỷ lệ dừng lỗ và lấy lợi nhuận là 1:4, thì phạm vi lấy lợi nhuận là 4 lần phạm vi dừng lỗ.
Sau khi mở một vị trí, nếu giá kích hoạt đường dừng lỗ, dừng lỗ để thoát; nếu mục tiêu lấy lợi nhuận đạt được, lấy lợi nhuận để thoát.
Có thể thấy rằng chiến lược xác nhận hai lần sử dụng sự đột phá của cả các chỉ số đánh giá xu hướng (mức trung bình động) và mức giá quan trọng (mức cao và thấp của ngày trước) để xác nhận tín hiệu giao dịch, làm cho nó trở thành một hệ thống đột phá tương đối ổn định và đáng tin cậy.
Chiến lược đột phá xác nhận hai lần có những lợi thế sau:
Nhập sau khi phá vỡ điểm cao hoặc thấp của ngày trước có thể làm giảm khả năng phá vỡ sai, do đó cải thiện độ chính xác của nhập.
Phán quyết phụ trợ của đường trung bình động được đặt lên nó để tránh các vị trí mở thường xuyên trong thị trường sốc.
Việc áp dụng tỷ lệ dừng lỗ cố định và tỷ lệ lợi nhuận để quản lý rủi ro vốn có thể giữ rủi ro và lợi nhuận trong phạm vi hợp lý.
Các quy tắc chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện và phù hợp với giao dịch định lượng.
Chiến lược đột phá xác nhận hai lần cũng có những rủi ro sau:
Dễ dàng hình thành tích lũy ngắn sau khi phá vỡ, do đó gây ra sự đảo ngược. Để phòng ngừa rủi ro này, xác nhận có thể được thực hiện trên đường K thứ hai sau khi phá vỡ trước khi vào thị trường.
Trong các thị trường dao động, các điểm dừng lỗ dễ dàng được kích hoạt.
Tỷ lệ dừng lỗ và lợi nhuận cố định không phù hợp với tất cả các sản phẩm và điều kiện thị trường, và các tham số cần phải được điều chỉnh theo thị trường khác nhau.
Thiết lập không phù hợp các thông số trung bình động cũng có thể bỏ lỡ các cơ hội tốt hơn hoặc tăng giao dịch không cần thiết.
Chiến lược đột phá xác nhận hai lần có thể được tối ưu hóa theo các hướng sau:
Tăng số lượng các đường K xác nhận, ví dụ, quan sát xem giá đóng của 1-2 đường K sau sự đột phá cũng đã vượt qua mức giá quan trọng đó hay không.
Sử dụng các kết hợp tham số khác nhau cho các sản phẩm và môi trường thị trường khác nhau, chẳng hạn như chu kỳ trung bình động, tỷ lệ dừng lỗ và lấy lợi nhuận, v.v., để kiểm tra lại và tối ưu hóa.
Kết hợp nó với các chỉ số phụ khác, chẳng hạn như sự gia tăng khối lượng giao dịch, để xác nhận các tín hiệu nhập cảnh.
Tăng các mô hình học máy để dự đoán xác suất xu hướng thị trường và kết hợp các tín hiệu xác suất để điều chỉnh các thông số chiến lược.
Chiến lược đột phá xác nhận kép sử dụng toàn diện các tín hiệu đột phá từ các mức giá quan trọng và các chỉ số đánh giá từ các đường trung bình động, có thể cải thiện hiệu quả chất lượng tín hiệu giao dịch. Đồng thời, việc sử dụng dừng lỗ cố định và lấy lợi nhuận để quản lý rủi ro vốn cho phép nó hoạt động ổn định. Đây là một chiến lược định lượng kết hợp theo dõi xu hướng và đột phá, phù hợp với các nhà giao dịch tìm kiếm lợi nhuận ổn định.
Mặc dù có một số rủi ro với chiến lược này, rủi ro có thể được kiểm soát và lợi nhuận của chiến lược có thể được cải thiện thông qua kiểm tra và tối ưu hóa liên tục.
/*backtest start: 2023-02-23 00:00:00 end: 2024-02-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia de Trading con Señales de Máximo/Mínimo Diario", overlay=true) // Obtenemos el alto y el bajo del día anterior previousDailyHigh = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on) previousDailyLow = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on) // Detectamos si el precio cruza por encima del máximo o por debajo del mínimo del día anterior priceCrossesPreviousHigh = ta.crossover(close, previousDailyHigh) priceCrossesPreviousLow = ta.crossunder(close, previousDailyLow) // Marcamos las señales en el gráfico con flechas bajistas y alcistas según corresponda plotshape(priceCrossesPreviousHigh, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Price crosses above previous daily high") plotshape(priceCrossesPreviousLow, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Price crosses below previous daily low") // EMA rápida fast_ema = ta.ema(close, 10) // EMA lenta slow_ema = ta.ema(close, 30) // Riesgo beneficio fijo de 1-4 risk_reward_ratio = 4 // Calculamos el tamaño del stop loss basado en el riesgo asumido risk = close - strategy.position_avg_price stop_loss = close - (risk / risk_reward_ratio) // Condiciones de compra y venta buy_condition = priceCrossesPreviousLow and fast_ema > slow_ema sell_condition = priceCrossesPreviousHigh and fast_ema < slow_ema // Marcar entradas strategy.entry("Compra", strategy.long, when=buy_condition) strategy.entry("Venta", strategy.short, when=sell_condition) // Definir objetivo de beneficio basado en el tamaño del stop loss y el riesgo beneficio fijo target_profit = close + (risk * risk_reward_ratio) // Definir stop loss y objetivo de beneficio strategy.exit("Stop Loss/Take Profit", "Compra", stop=stop_loss, limit=target_profit) strategy.exit("Stop Loss/Take Profit", "Venta", stop=stop_loss, limit=target_profit) // Señales de compra y venta plotshape(series=buy_condition, title="Compra", location=location.belowbar, color=color.green, style=shape.triangleup) plotshape(series=sell_condition, title="Venta", location=location.abovebar, color=color.red, style=shape.triangledown)