
Lập luận cốt lõi của chiến lược này là để phát hiện liệu giá đóng cửa liên tiếp của dòng N gốc K có tăng liên tục hay không, nếu có, hãy làm nhiều hơn; nếu không thỏa mãn, hãy giữ vị trí bằng phẳng. Như vậy, bạn có thể nắm bắt xu hướng giá cổ phiếu tăng lên và kiếm được lợi nhuận.
Chỉ số cốt lõi của chiến lược này là nCounter, nó đánh giá giá trị tăng bằng cách so sánh giá đóng cửa và giá mở cửa của đường K hiện tại.
Cụ thể, nếu close[1]>=open[1], nCounter cộng 1 là tăng; nếu close[1]
Sau đó nCounter được so sánh với tham số nLength, khi nCounter> = nLength, tín hiệu đầu ra là C1 = 1; nếu không C1 = 0 ≠ nLength ở đây là chúng ta định nghĩa cần bao nhiêu đường K nối tiếp để tạo ra tín hiệu ≠
Sau khi nhận được tín hiệu C1 = 1, nếu không có vị trí hiện tại, thực hiện thêm; Nếu đã có vị trí nhiều đầu, hãy tiếp tục giữ.
Ngoài ra, chiến lược này cũng đặt các điều kiện dừng lỗ và dừng. Nếu giá thấp hơn một tỷ lệ nhất định của giá nhập, dừng lỗ; Nếu cao hơn một tỷ lệ nhất định của giá nhập, dừng.
Đây là một chiến lược theo dõi xu hướng điển hình, có một số lợi thế:
Chiến lược này cũng có một số rủi ro, chủ yếu tập trung vào các khía cạnh sau:
Để giảm thiểu những rủi ro này, chúng ta có thể đặt các điều kiện dừng lỗ nghiêm ngặt hơn, tối ưu hóa tham số nLength, thêm các quy tắc phán đoán lớn, hoặc tham số thử nghiệm riêng cho các cổ phiếu khác nhau. Tất nhiên, bất kỳ chiến lược nào cũng khó tránh hoàn toàn thiệt hại và cần phải phù hợp với sở thích rủi ro của nhà giao dịch.
Với những rủi ro trên, chúng ta có thể tiếp tục tối ưu hóa chiến lược này theo những cách sau:
Chiến lược này có thể thực hiện theo dõi xu hướng một cách hiệu quả bằng cách phát hiện xu hướng tăng lên bằng cách phát hiện N gốc liên tục tăng lên K đường. Ưu điểm là logic đơn giản, điều chỉnh tham số linh hoạt, có thể lọc giả phá vỡ. Nhưng cũng có một số rủi ro, cần phải thêm các mô-đun như dừng lỗ, tối ưu hóa tham số, phán đoán môi trường để cải thiện chiến lược để làm cho chiến lược toàn diện hơn và ổn định hơn.
/*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)