Bài viết này giới thiệu một chiến lược giao dịch định lượng kết hợp phân tích fractal và các mô hình nến. Bằng cách phát hiện các điểm đảo ngược chính và các mô hình nến đảo ngược tăng / giảm, chiến lược này cho phép giao dịch tự động có rủi ro thấp và lợi nhuận cao.
Chiến lược này dựa trên phân tích hành động giá chi tiết, sử dụng sự kết hợp của phân tích fractal và nhận dạng mô hình nến để xác định logic nhập cảnh và dừng lỗ rõ ràng để nắm bắt xu hướng.
Cụ thể, điều kiện vào của nó là: giá phá vỡ trên mức cao của 2 thanh trước đó, và một sự phá vỡ fractal hoặc nồng độ tăng hoặc mô hình búa xảy ra. Sự kết hợp này xác nhận vững chắc các tín hiệu dài. Logic dừng lỗ xác định lối ra ở mức giá phá vỡ dưới mức thấp của 2 thanh trước đó đảm bảo dừng nhanh chóng và hiệu quả.
Để phát hiện mô hình, chiến lược này sử dụng lý thuyết fractal thường được sử dụng để xác định các điểm đảo ngược chính, cũng như các thuật toán để phát hiện 3 mô hình đảo ngược nến cổ điển.
Mã hóa được thực hiện bằng chữ Pine. Chiều cao / thấp fractal được xác định khi giá tạo ra mức cao / thấp mới 3 thanh, và các quy tắc nghiêm ngặt về giá mở / đóng được sử dụng cho các mẫu nuốt.
Ưu điểm chính của chiến lược này:
Vẫn có những rủi ro cần lưu ý:
Các phương pháp như dừng tối ưu, lọc xu hướng và phân tích bước đi trước có thể giúp kiểm soát các rủi ro trên.
Các lĩnh vực cần cải thiện thêm:
Những cải tiến này sẽ tiếp tục tăng cường sự ổn định và lợi nhuận của chiến lược.
Bài viết này chi tiết bao gồm một chiến lược giao dịch hành động giá kết hợp các mô hình phân đoạn và nến. Với tín hiệu chính xác, thực hiện dễ dàng và theo xu hướng hiệu quả, chiến lược này có thể mang lại lợi ích lớn cho các nhà giao dịch có hệ thống và các nhà giao dịch theo ý riêng.
/*backtest start: 2023-02-12 00:00:00 end: 2024-02-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Fractal & Pattern Entry/Exit Strategy", overlay=true) // Fractal calculation fractalHigh = high == highest(3) fractalLow = low == lowest(3) // Pattern detection bullishEngulfing = open < close[1] and close > open[1] and close > open + (open[1] - close[1]) * 2 and low < min(open, close) and high > max(open, close) and open[1] > close[1] bearishEngulfing = open > close[1] and close < open[1] and open > close + (close[1] - open[1]) * 2 and high > max(open, close) and low < min(open, close) and open[1] < close[1] hammer = open < close and close > (high + low + open * 2) / 4 and close - open > (high - low) * 0.6 and high - close < (high - low) * 0.1 and open - low < (high - low) * 0.1 hangingMan = open > close and open < (high + low + close * 2) / 4 and open - close > (high - low) * 0.6 and high - open < (high - low) * 0.1 and close - low < (high - low) * 0.1 // Entry condition longCondition = crossover(close, highest(2)[1]) and (fractalHigh or bullishEngulfing or hammer) shortCondition = crossunder(close, lowest(2)[1]) and (fractalLow or bearishEngulfing or hangingMan) // Exit condition exitLongCondition = crossunder(close, lowest(2)[1]) exitShortCondition = crossover(close, highest(2)[1]) // Entry and exit orders if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (exitLongCondition) strategy.close("Long") if (exitShortCondition) strategy.close("Short") // Plot fractals plotshape(fractalHigh, title="Fractal High", style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small) plotshape(fractalLow, title="Fractal Low", style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small) // Plot patterns plotshape(bullishEngulfing, title="Bullish Engulfing", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small) plotshape(bearishEngulfing, title="Bearish Engulfing", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small) plotshape(hammer, title="Hammer", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small) plotshape(hangingMan, title="Hanging Man", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)