N Chiến lược phá vỡ cao hơn liên tiếp

Tác giả:ChaoZhang, Ngày: 2023-12-08 10:50:54
Tags:

img

Tổng quan

Lý thuyết cốt lõi của chiến lược này là phát hiện xem giá đóng của N nến liên tiếp có tiếp tục tăng hay không. Nếu vậy, mua dài; nếu không, đóng vị trí. Điều này có thể nắm bắt xu hướng tăng của giá cổ phiếu và kiếm lợi nhuận.

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

Chỉ số cốt lõi của chiến lược này là nCounter. Nó so sánh giá đóng và giá mở của nến hiện tại để đánh giá liệu giá có tăng hay không.

Cụ thể, nếu close[1]>=open[1], nCounter sẽ thêm 1, cho thấy tăng; nếu close[1]

Sau đó so sánh nCounter với tham số nLength. Khi nCounter>=nLength, tín hiệu đầu ra C1=1; nếu không C1=0.

Sau khi nhận được tín hiệu C1 = 1, nếu không có vị trí hiện tại, đi dài; nếu đã ở vị trí dài, tiếp tục giữ.

Ngoài ra, chiến lược này đặt ra các điều kiện dừng lỗ và lấy lợi nhuận. Nếu giá giảm xuống dưới giá nhập khẩu một tỷ lệ phần trăm nhất định, dừng lỗ thoát khỏi vị trí; nếu tăng trên giá nhập khẩu một tỷ lệ phần trăm nhất định, lấy lợi nhuận.

Phân tích lợi thế

Đây là một xu hướng điển hình sau chiến lược với điểm mạnh dưới đây:

  1. Nó có thể nắm bắt các cơ hội xu hướng tăng của giá cổ phiếu, phù hợp như chiến lược dài
  2. N tăng liên tiếp khi tín hiệu nhập cảnh có thể lọc hiệu quả breakout giả và giảm giao dịch không cần thiết
  3. Thiết lập dừng lỗ và lấy lợi nhuận có thể hạn chế rủi ro giảm và khóa lợi nhuận
  4. Logic là đơn giản và rõ ràng, dễ hiểu và sửa đổi
  5. Tần số giao dịch có thể được điều khiển bằng cách điều chỉnh tham số nLength

Phân tích rủi ro

Có một số rủi ro của chiến lược này, chủ yếu trong các khía cạnh sau:

  1. Nếu xu hướng tăng ngược lại, thất bại trong việc ngăn chặn lỗ kịp thời có thể dẫn đến tổn thất lớn
  2. Nếu nLength đặt quá lớn, cơ hội nhập tốt có thể bị bỏ lỡ
  3. Nó không xem xét môi trường thị trường.
  4. Sử dụng các thông số thống nhất mà không điều chỉnh dựa trên các đặc điểm khác nhau của cổ phiếu có thể không áp dụng cho một số cổ phiếu

Để giảm rủi ro này, chúng ta có thể thiết lập lệnh dừng lỗ nghiêm ngặt hơn, tối ưu hóa nLength, thêm các quy tắc điều kiện thị trường hoặc kiểm tra các tham số riêng biệt cho các cổ phiếu khác nhau.

Hướng dẫn tối ưu hóa

Xem xét các rủi ro trên, chúng ta có thể tối ưu hóa chiến lược từ các khía cạnh sau:

  1. Thêm stop loss di chuyển hoặc trailing stop loss chức năng. Họ có thể điều chỉnh điểm stop loss phù hợp dựa trên sự thay đổi giá để giảm rủi ro mất mát
  2. Tối ưu hóa tham số nLength. tương ứng thử nghiệm cho các loại cổ phiếu khác nhau để tìm ra các giá trị tham số phù hợp hơn
  3. Thêm đánh giá môi trường thị trường. Ví dụ: tạm dừng giao dịch khi thị trường sụp đổ để tránh tổn thất thêm trong thị trường gấu
  4. Thêm các yếu tố khác như khối lượng như các điều kiện phụ trợ. ví dụ yêu cầu khối lượng mở rộng trong thời gian xu hướng tăng để đảm bảo tính hợp lệ của sự phá vỡ
  5. Thiết lập điều khiển rút tiền như tỷ lệ lỗ tối đa cho phép, thời gian mất liên tiếp tối đa vv để dừng lỗ tự động kiểm soát tổng lỗ

Kết luận

Chiến lược này nắm bắt xu hướng tăng bằng cách phát hiện N nến tăng liên tục. Nó có thể thực hiện theo xu hướng một cách hiệu quả. Những lợi thế là logic đơn giản, điều chỉnh tham số linh hoạt, lọc breakout sai. Nhưng cũng có một số rủi ro. Nó cần thêm các mô-đun như dừng lỗ, tối ưu hóa tham số, đánh giá môi trường để cải thiện. Nhìn chung, chiến lược này cung cấp một mô hình cơ bản có giá trị cho giao dịch định lượng. Nó có thể trở thành một công cụ giao dịch mạnh mẽ sau khi cải thiện liên tục.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive higher closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="N Bars Up", shorttitle="NBU Backtest", overlay = false) 
nLength = input(4, minval=1)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nCounter = 0
nCounter := iff(close[1] >= open[1], nz(nCounter[1],0)+1,
             iff(close[1] < open[1], 0, nCounter))
C1 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C1== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, 1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == 1)
    strategy.entry("Long", strategy.long)
posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
plot(C1, title='NBU', color=color.green)

Thêm nữa