Chiến lược kiểm tra lại đột phá

Tác giả:ChaoZhang, Ngày: 2024-01-08 16:13:44
Tags:

img

Tổng quan

Chiến lược này đánh giá hướng xu hướng dựa trên việc vượt qua các mức cao và thấp định kỳ. Nó đi dài khi giá vượt qua mức cao định kỳ và đi ngắn khi giá vượt qua mức thấp định kỳ. Nó thuộc về chiến lược theo dõi xu hướng.

Nguyên tắc

Chiến lược đầu tiên đọc chu kỳ được xác định bởi người dùng (ngày, tuần, v.v.) và các khoảng thời gian xem lại. Sau đó nó lấy giá cao nhất và thấp nhất cho khoảng thời gian xem lại dựa trên các thông số này. Ví dụ, nếu nó được đặt vào chu kỳ hàng ngày và xem lại 1 khoảng thời gian, nó lấy giá cao nhất và thấp nhất cho ngày trước.

Trong giao dịch thực tế, nếu giá đóng cửa lớn hơn hoặc bằng giá thấp nhất của khoảng thời gian nhìn lại, nó được đánh giá là đột phá tăng và nó đi dài. Nếu giá đóng cửa nhỏ hơn hoặc bằng giá cao nhất của khoảng thời gian nhìn lại, nó được đánh giá là đột phá giảm và nó đi ngắn.

Bằng cách nắm bắt hướng xu hướng thông qua việc phá vỡ các đỉnh và đáy định kỳ, chiến lược này thuộc về một loại chiến lược theo dõi xu hướng.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Nhận được xu hướng lớn sau khi hợp nhất mạnh mẽ bằng cách đánh giá hướng dựa trên các điểm đột phá.

  2. Đơn giản và dễ hiểu, rất thích hợp cho người mới bắt đầu học và sử dụng.

  3. Dễ tối ưu hóa bằng cách điều chỉnh các tham số định kỳ, áp dụng cho các giống khác nhau.

  4. Có thể đặt đầu vào ngược cho hoạt động ngược, làm phong phú chiến lược sử dụng.

  5. Khai thác các mức cao và thấp định kỳ để hỗ trợ đánh giá và hình thành xác nhận đa.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro:

  1. Không thể lọc hiệu quả biến động bên, có thể nhiều hoạt động sai.

  2. Không thể kiểm soát dừng lỗ, một mức độ rủi ro mất mát nhất định tồn tại.

  3. Nhạy cảm với chi phí giao dịch, PnL thực tế có thể lệch.

  4. Không thể giới hạn kích thước vị trí, rủi ro giao dịch quá mức tồn tại.

Để giải quyết những rủi ro này, các phương pháp như thiết lập stop loss, tối ưu hóa điều kiện lọc, kiểm soát kích thước vị trí có thể được sử dụng.

Tối ưu hóa

Các hướng tối ưu hóa chính là:

  1. Thêm các cơ chế lọc để tránh mở thường xuyên trong quá trình bên.

  2. Thiết lập trailing stop loss hoặc time stop loss để kiểm soát rủi ro lỗ đơn và đảm bảo lợi nhuận tổng thể.

  3. Tối ưu hóa kích thước vị trí và quản lý tiền để ngăn chặn giao dịch quá mức và đảm bảo sự ổn định.

  4. Kiểm tra hiệu ứng của các thông số định kỳ khác nhau và chọn các kết hợp thông số tối ưu.

  5. Tăng các mô-đun giao dịch thuật toán, sử dụng thuật toán máy học để cải thiện hiệu quả quyết định.

Tóm lại

Tóm lại, chiến lược backtest cao thấp đột phá này rất đơn giản để hoạt động dựa trên theo dõi xu hướng, phù hợp cho người mới bắt đầu học, nhưng có nguy cơ bị mắc kẹt. Bằng cách thêm các tối ưu hóa như bộ lọc, dừng, kiểm soát vị trí, những rủi ro này có thể được giảm và cải thiện kết quả chiến lược. Nó có thể cung cấp ý tưởng và tài liệu tham khảo cho nghiên cứu và cải tiến hơn nữa của chúng tôi.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/07/2018
// This script shows a high and low period value.
//    Width - width of lines
//    SelectPeriod - Day or Week or Month and etc.
//    LookBack - Shift levels 0 - current period, 1 - previous and etc.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="High and Low Levels Backtest", shorttitle="HL Levels", overlay = true)
SelectPeriod = input("D", defval="D")
LookBack = input(1,  minval=0)
reverse = input(false, title="Trade reverse")
xHigh  = request.security(syminfo.tickerid, SelectPeriod, high[LookBack])
xLow   = request.security(syminfo.tickerid, SelectPeriod, low[LookBack])
vS1 = xHigh
vR1 = xLow
pos = iff(close > vR1, 1,
       iff(close < vS1, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 

Thêm nữa