Chiến lược giao dịch theo đà đột phá kết hợp với phương pháp tối ưu hóa dừng lỗ

TP SL
Ngày tạo: 2024-12-11 17:20:09 sửa đổi lần cuối: 2024-12-11 17:20:09
sao chép: 1 Số nhấp chuột: 370
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch theo đà đột phá kết hợp với phương pháp tối ưu hóa dừng lỗ

Tổng quan

Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên lý thuyết phân loại giá, tự động hóa giao dịch bằng cách xác định cấu trúc phân loại đỉnh và đáy trong thị trường, kết hợp với các điều kiện kích hoạt và thiết lập điểm dừng với số điểm cố định. Cốt lõi của chiến lược là thiết lập nhiều điểm vào đơn trên phân loại đáy, thiết lập điểm vào đơn trống dưới phân loại đỉnh, đồng thời điều khiển rủi ro với các điểm dừng tương ứng.

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

Lập luận cốt lõi của chiến lược bao gồm các bước quan trọng sau:

  1. Nhận dạng phân loại: Xác định phân loại đỉnh-dưới bằng cách so sánh các điểm cao và thấp của ba đường K liên tiếp. Hình thành phân loại đáy khi điểm thấp của đường K giữa thấp hơn hai đường K bên; Hình thành phân loại đỉnh khi điểm cao của đường K giữa cao hơn hai đường K bên.
  2. Điều kiện nhập học: Sau khi nhận diện phân loại cuối cùng, đặt giá kích hoạt đơn trên 107 điểm; Sau khi nhận diện phân loại đỉnh, đặt giá kích hoạt đơn dưới 107 điểm.
  3. Thiết lập dừng: Thiết lập dừng với số điểm tương tự (107 điểm) dựa trên giá nhập sau khi mở vị trí.
  4. Quản lý cổ phiếu: Hệ thống sẽ liên tục theo dõi vị trí phân loại mới nhất và cập nhật giá kích hoạt nhập cảnh.

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

  1. Tính khách quan: Chiến lược dựa trên định nghĩa toán học rõ ràng để xác định cấu trúc thị trường, tránh sự sai lệch do phán đoán chủ quan.
  2. Có thể kiểm soát rủi ro: Có thiết lập điểm dừng cố định để mục tiêu lợi nhuận của mỗi giao dịch được xác định rõ ràng và rủi ro có thể kiểm soát được.
  3. Khả năng thích ứng: Chiến lược có thể hoạt động trong các môi trường thị trường khác nhau, đặc biệt phù hợp với thị trường có biến động cao.
  4. Mức độ tự động hóa cao: Toàn bộ quá trình giao dịch từ nhận dạng tín hiệu đến thực hiện được tự động hóa, giảm can thiệp của con người.

Rủi ro chiến lược

  1. Rủi ro phá vỡ giả: Thị trường có thể bị đảo ngược ngay sau khi phá vỡ ngắn hạn, dẫn đến dừng lỗ.
  2. Rủi ro thị trường biến động: Trong thị trường biến động ngang, phân loại đỉnh và đáy thường xuyên có thể dẫn đến quá nhiều tín hiệu giao dịch.
  3. Rủi ro của số điểm cố định: Sử dụng số điểm nhập và dừng cố định có thể không phù hợp với tất cả các môi trường thị trường.
  4. Rủi ro trượt: Trong một thị trường biến động cao, có thể có vấn đề nghiêm trọng về trượt.

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

  1. Tối ưu hóa số điểm động: Có thể điều chỉnh số điểm khởi động và số điểm dừng tùy theo biến động của thị trường.
  2. Trình lọc xu hướng: tăng các chỉ số đánh giá xu hướng, chỉ đặt vị trí theo xu hướng chính.
  3. Nhận diện môi trường thị trường: Thêm cơ chế đánh giá môi trường thị trường, sử dụng các thiết lập tham số khác nhau trong các trạng thái thị trường khác nhau.
  4. Tối ưu hóa quản lý vị trí: giới thiệu hệ thống quản lý vị trí động, điều chỉnh số lượng vị trí mở theo giá trị ròng của tài khoản và mức độ rủi ro thị trường.

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh bằng cách kết hợp lý thuyết phân loại và ý tưởng đột phá động lực. Ưu điểm của chiến lược là mức độ khách quan và tự động hóa cao, nhưng cũng có một số vấn đề thích ứng với môi trường thị trường.

Mã nguồn chiến lược
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fractal Buy/Sell Strategy with 107 Pips Target", overlay=true)

// 输入参数
trigger_pips = input.int(107, title="Entry Distance (Pips)")  // 入场点距离底分型或顶分型的距离
take_profit_pips = input.int(107, title="Take Profit (Pips)") // 止盈点数

pip_value = syminfo.mintick * 10 // 点值(每点等于多少价格单位)

// 计算分型
is_bottom_fractal = low[1] < low[2] and low[1] < low[0] // 判断是否为底分型
is_top_fractal = high[1] > high[2] and high[1] > high[0] // 判断是否为顶分型

// 存储分型位置
var float last_bottom_fractal = na
var float last_top_fractal = na

// 更新分型值
if is_bottom_fractal
    last_bottom_fractal := low[1]
    
if is_top_fractal
    last_top_fractal := high[1]

// 计算开盘价格
bottom_trigger_price = na(last_bottom_fractal) ? na : last_bottom_fractal + trigger_pips * pip_value
top_trigger_price = na(last_top_fractal) ? na : last_top_fractal - trigger_pips * pip_value

// 交易逻辑:底分型多单和顶分型空单
if not na(last_bottom_fractal)
    if close <= bottom_trigger_price
        strategy.entry("Buy", strategy.long)
        strategy.exit("Take Profit", from_entry="Buy", limit=bottom_trigger_price + take_profit_pips * pip_value)
        
if not na(last_top_fractal)
    if close >= top_trigger_price
        strategy.entry("Sell", strategy.short)
        strategy.exit("Take Profit", from_entry="Sell", limit=top_trigger_price - take_profit_pips * pip_value)

// 绘制分型和触发价格
plotshape(series=is_bottom_fractal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bottom Fractal")
plotshape(series=is_top_fractal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Top Fractal")
plot(bottom_trigger_price, title="Buy Trigger", color=color.green, linewidth=1)
plot(top_trigger_price, title="Sell Trigger", color=color.red, linewidth=1)