Chiến lược giao dịch định lượng dựa trên các mô hình và nến


Ngày tạo: 2024-02-19 14:32:45 sửa đổi lần cuối: 2024-02-19 14:32:45
sao chép: 0 Số nhấp chuột: 747
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch định lượng dựa trên các mô hình và nến

Tổng quan

Đây là một chiến lược giao dịch định lượng kết hợp phân tích hình dạng với hình dạng đường nòng. Chiến lược này thực hiện giao dịch tự động có lợi nhuận thấp và rủi ro cao bằng cách phát hiện các ngã ba quan trọng trong biểu đồ giá và hình dạng nòng đại diện cho sự đảo ngược mạnh mẽ.

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

Chiến lược này dựa trên phân tích chi tiết về xu hướng giá, kết hợp phân tích hình dạng và phân tích đường nét, thiết lập logic nhập cảnh và logic dừng rõ ràng, có thể thực hiện theo dõi hiệu quả về xu hướng.

Cụ thể, điều kiện nhập cảnh của nó là: giá vượt qua hai đường K đầu tiên là giá cao nhất và có một hình thức điểm cao hoặc hình thức nuốt nhiều đầu hoặc một trong các hình thức thùng. Điều kiện kết hợp này có thể xác nhận hiệu quả cơ hội đợt tăng giá.

Về hình thức phán đoán, chiến lược này kết hợp sử dụng các đường phân loại để xác định các ngã tư quan trọng và ba hình thức ngã tư điển hình để đánh giá xu hướng đảo ngược. Trong đó, phân loại các ngã tư quan trọng sử dụng lý thuyết phân loại rộng hơn, phân loại các hình thức như đa đầu, nuốt trôi không đầu và ngã tư sử dụng các thuật toán đã phát triển hơn.

Trong thực hiện cụ thể, chiến lược này được viết bằng kịch bản pine. Logic thực hiện phân loại phát hiện của nó là phân loại đỉnh khi giá cao nhất của dòng K hiện tại bằng giá cao nhất của 3 dòng K trước đó. Nguyên tắc phán đoán của phân loại dưới tương tự.

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

Những ưu điểm chính của chiến lược này là:

  1. Kết hợp phân loại và hình dạng của nấm, phán đoán chính xác và đáng tin cậy;
  2. Logic Entry/Stop Damage là rõ ràng, đơn giản và dễ thực hiện.
  3. Sử dụng các lý thuyết và chỉ số đã được xác định để tránh các vấn đề quá phù hợp;
  4. Pine viết kịch bản cho các nền tảng chính như TradingView.

Rủi ro chiến lược

Tuy nhiên, chiến lược này vẫn có một số rủi ro cần lưu ý:

  1. Các nhà nghiên cứu đã tìm ra một số cách để phân loại và đánh giá hình thức.
  2. Có thể sẽ có những tín hiệu sai liên tục trong thời gian ngắn.
  3. Cần điều chỉnh mức dừng lỗ khi giao dịch tần số cao.

Các rủi ro trên có thể được kiểm soát bằng cách tối ưu hóa chiến lược dừng lỗ, giới thiệu bộ lọc xu hướng, sử dụng các công cụ định lượng để xác minh các tham số chiến lược.

Tối ưu hóa chiến lược

Chiến lược này có thể được tối ưu hóa hơn bao gồm:

  1. Điều chỉnh các tham số của hình dạng nón để đảm bảo tính chính xác của phán đoán;
  2. Tăng khả năng đánh giá xu hướng, tránh các tín hiệu sai lệch do các biến động ngắn hạn;
  3. Tiến hành các phương pháp như học máy để tự động tối ưu hóa các tham số.

Những cải tiến trên có thể giúp tăng cường tính ổn định và lợi nhuận của chiến lược.

Tóm tắt

Bài viết này giới thiệu chi tiết về một chiến lược giao dịch định lượng dựa trên đường phân loại và hình dạng hình nón. Chiến lược này được đánh giá chính xác, dễ thực hiện, có thể nắm bắt xu hướng giá một cách hiệu quả và thực hiện giao dịch tự động. Sau khi được tối ưu hóa và xác minh liên tục, hiệu suất của nó sẽ được nâng cao hơn nữa, đáng để các nhà đầu tư hoặc thương nhân nghiên cứu và áp dụng sâu hơn.

Mã nguồn chiến lược
/*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)