
Chiến lược này dựa trên các chỉ số kỹ thuật để đánh giá xu hướng thị trường, và là một chiến lược giao dịch ngắn hạn khi có kết thúc âm của đường K nối tiếp.
Chiến lược này sử dụng biến số nCounter để thống kê số lần thu âm liên tục. Khi giá đóng thấp hơn giá mở, tăng giá trị nCounter; Khi giá đóng cao hơn giá mở, đặt nCounter lại là 0 . Khi nCounter đạt đến tham số đầu vào nLength, đánh dấu sự xuất hiện của một số lần thu âm liên tục của đường K gốc, tín hiệu đầu ra C2 = 1 .
Khi có tín hiệu, nếu không có vị trí hiện tại, hãy mở vị trí để làm trống; Nếu đã giữ lệnh làm trống, hãy tiếp tục giữ. Sau khi mở vị trí, sử dụng posprice để ghi lại giá mở vị trí. Dựa trên giá mở vị trí làm chuẩn, thiết lập điều kiện dừng và dừng: Nếu giá đạt đến điểm dừng ((giá mở vị trí + tham số đầu vào takeprofit), trơn vị và đặt lại; Nếu giá đạt đến điểm dừng lỗ ((giá mở vị trí - tham số đầu vào stop), trơn vị và đặt lại.
Những ưu điểm chính của chiến lược này là:
Những rủi ro chính của chiến lược này là:
Chính sách này có thể được tối ưu hóa theo các khía cạnh sau:
Thêm bộ lọc xu hướng để tránh sai lệch trong việc điều chỉnh ngắn hạn trên thị trường không rõ ràng. Ví dụ, kết hợp các chỉ số như đường trung bình để đánh giá xu hướng tổng thể.
Tăng lượng chứng minh, ví dụ như tăng khối lượng giao dịch sẽ xác nhận tốt hơn sự đảo ngược xu hướng.
Tối ưu hóa các chiến lược dừng lỗ, chẳng hạn như sử dụng các phương pháp dừng lỗ rời rạc, dừng tỷ lệ, để làm cho dừng lỗ thông minh hơn.
Sử dụng phương pháp học máy để tối ưu hóa các tham số, để nLength có thể điều chỉnh theo sự thay đổi của thị trường trong thời gian thực.
Chiến lược này đánh giá xu hướng ngắn hạn dựa trên mối quan hệ lớn giữa giá đóng cửa và giá mở cửa, tạo ra tín hiệu giao dịch khi phát hiện kết thúc của các dòng K nối tiếp. Chiến lược này đơn giản, trực quan, có thể điều chỉnh tham số, có cơ chế dừng lỗ, có thể lọc một số giao dịch ồn. Nhưng cũng có một số rủi ro tín hiệu giả, khuyến nghị tối ưu hóa kết hợp với các chỉ số khác.
/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-25 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive lower 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 Down", shorttitle="NBD 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))
C2 = 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(C2== 1, close, nz(posprice[1], 0))
pos := iff(posprice > 0, -1, 0)
if (pos == 0)
strategy.close_all()
if (pos == -1)
strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 , nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 , nz(posprice, 0))
plot(C2, title='NBD', color=color.red)