Chiến lược đột phá xu hướng động


Ngày tạo: 2023-12-29 17:32:10 sửa đổi lần cuối: 2023-12-29 17:32:10
sao chép: 0 Số nhấp chuột: 675
1
tập trung vào
1621
Người theo dõi

Chiến lược đột phá xu hướng động

Tổng quan

Chiến lược này là một chiến lược phá vỡ xu hướng dựa trên tính toán động. Nó sẽ theo dõi giá cao nhất và giá thấp nhất của cổ phiếu trong thời gian thực, khi giá phá vỡ giá cao nhất của chu kỳ gần đây, sẽ vào cổ phiếu; khi giá giảm xuống giá thấp nhất của chu kỳ gần đây, sẽ vào cổ phiếu.

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

Lý luận cốt lõi của chiến lược này là theo dõi và giao dịch các điểm phá vỡ xu hướng của giá. Cụ thể, chiến lược sẽ tính toán giá cao nhất và giá thấp nhất trong 20 ngày gần đây.

Sau khi giảm giá, chiến lược sẽ thiết lập mức dừng lỗ 1% và mức dừng lỗ 2%. Điều này đảm bảo tỷ lệ lợi nhuận cho mỗi giao dịch được cố định là 2: 1. Điều này có thể kiểm soát hiệu quả rủi ro của mỗi giao dịch.

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

Ưu điểm lớn nhất của chiến lược này là nắm bắt nhanh chóng các điểm biến đổi của xu hướng giá, đồng thời kiểm soát rủi ro của một giao dịch đơn lẻ. Cụ thể, có một số lợi thế chính sau:

  1. Tính năng tính toán giá cao nhất và giá thấp nhất, theo dõi xu hướng thay đổi giá trong thời gian thực, có thể nhanh chóng nắm bắt tín hiệu biến đổi giá.

  2. Việc xây dựng nhà kho bằng cách phá vỡ có thể làm giảm tín hiệu giả và cải thiện chất lượng của mục nhập.

  3. Thiết lập lệnh dừng lỗ, kiểm soát tỷ lệ lợi nhuận và thua lỗ của một giao dịch, kiểm soát hiệu quả rủi ro của một giao dịch.

  4. Nó có một logic đơn giản và dễ hiểu, phù hợp với người mới bắt đầu thực hành định lượng.

  5. Có ít mã, dễ kiểm tra và tối ưu hóa.

Rủi ro chiến lược

Chiến lược này cũng có một số rủi ro cần lưu ý:

  1. Theo xu hướng, bạn có thể bỏ lỡ điểm tốt nhất để giá quay trở lại.

  2. Thiết lập các điểm dừng cố định có thể khó thích ứng với sự thay đổi của thị trường, có thể dừng lỗ hoặc dừng trước.

  3. Tiếp theo, Strat không có logic đặt hàng và đặt hàng, không thể theo dõi xu hướng liên tục.

  4. Không tính đến xu hướng của chu kỳ lớn, có thể gây thiệt hại với xu hướng lớn.

  5. Không có mô-đun quản lý tài sản, bạn không thể kiểm soát toàn bộ quản lý vị trí.

Hướng tối ưu hóa chiến lược

Chiến lược này cũng có rất nhiều khả năng tối ưu hóa, trong đó các hướng tối ưu hóa chính bao gồm:

  1. Thêm thiết lập dừng lỗ động, có thể điều chỉnh dừng lỗ theo mức độ biến động của thị trường.

  2. Thêm các điều kiện lọc dựa trên hướng đồng tuyến để tránh chiến đấu với xu hướng lớn.

  3. Tăng khả năng đánh giá cường độ của xu hướng, đảm bảo chỉ đặt hàng khi xu hướng đủ mạnh.

  4. Thêm logic thêm một lần, theo dõi xu hướng, tối đa hóa lợi nhuận.

  5. Kết hợp với mô-đun quản lý tài chính, bạn có thể điều chỉnh vị trí một cách động, kiểm soát rủi ro tổng thể.

  6. Tối ưu hóa tham số, tìm kiếm sự kết hợp tham số tốt nhất.

Tóm tắt

Chiến lược này nói chung là một chiến lược phá vỡ xu hướng rất phù hợp cho người mới bắt đầu học và thực hành. Ưu điểm của nó là đơn giản, dễ hiểu, đồng thời thêm logic dừng lỗ để kiểm soát rủi ro. Nhưng cũng có rất nhiều nơi có thể được tối ưu hóa, có thể là cơ hội để học thêm.

Mã nguồn chiến lược
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trend Following Breakout Strategy with 2:1 RRR", overlay=true)

// 定义前高和前低的计算
length = input(20, minval=1, title="Length")
highestHigh = highest(high, length)
lowestLow = lowest(low, length)

// 定义买入和卖出的条件
longCondition = close > highestHigh[1] // 当前收盘价高于前一期的最高价
shortCondition = close < lowestLow[1] // 当前收盘价低于前一期的最低价

// 为了确保盈亏比为2:1,我们需要定义止损和目标价
stopLoss = input(1, title="Stop Loss %") / 100
takeProfit = stopLoss * 2

// 如果满足买入条件,进入多头
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP", "Long", profit=takeProfit * close, loss=stopLoss * close)

// 如果满足卖出条件,进入空头
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP", "Short", profit=takeProfit * close, loss=stopLoss * close)

// 绘图显示前高和前低
plot(highestHigh, color=color.green, title="Previous High")
plot(lowestLow, color=color.red, title="Previous Low")