
Chiến lược theo dõi giá trị cực đoan bằng cách theo dõi các điểm cực đoan trong phạm vi biến động của giá, làm nhiều giao dịch nhị phân ở các điểm cực đoan, để theo dõi xu hướng.
Chiến lược này hoạt động dựa trên các nguyên tắc sau:
Sử dụng hàm security để lấy giá cao nhất và giá thấp nhất của các dòng K khác nhau, kiểm tra xem nó có bằng giá cao nhất và giá thấp nhất của dòng K trước đó hay không, để xác định xem điểm cực mới đã đạt được hay không.
Khi phát hiện ra điểm cực mới, nếu hiện tại là giao dịch nhiều đầu, thì hãy làm空 tại điểm cực đó; Nếu hiện tại là giao dịch trống, thì hãy làm nhiều tại điểm cực đó.
Cài đặt điểm dừng là điểm cực mới được hình thành sau khi thực hiện nhiều thời gian ngắn, để thực hiện theo dõi xu hướng.
Điều chỉnh chính sách cho các khoảng thời gian khác nhau bằng cách thiết lập phạm vi thời gian mà chính sách có hiệu lực từ ngày đến tháng.
Chiến lược này có những lợi thế chính như sau:
Có khả năng nắm bắt hiệu quả các điểm cực đoan của sự thay đổi giá, thực hiện các hoạt động đảo ngược và theo dõi xu hướng.
Quản lý thời gian và tiền bạc được thiết lập để kiểm soát thời gian và tiền bạc sử dụng chiến lược, giảm rủi ro.
Sử dụng điểm cực mới làm điểm dừng, có thể điều chỉnh vị trí dừng theo phạm vi biến động giá mới, để thực hiện dừng động.
Logic chiến lược đơn giản, rõ ràng, dễ hiểu, dễ dàng để khởi động và tối ưu hóa.
Chiến lược này cũng có một số rủi ro:
Xác định điểm cực có thể xảy ra trong trường hợp có thể xảy ra sai lầm, dẫn đến nhiều sai lầm trong việc thực hiện. Bạn có thể tối ưu hóa bằng cách điều chỉnh logic phán đoán điểm cực.
Vị trí dừng lỗ gần điểm vào có thể làm tăng khả năng dừng lỗ được kích hoạt. Các regex ngoài sân có thể được thiết lập để dừng lỗ nổi.
Nếu không tính đến logic đặt cược và mở cửa ngược theo xu hướng, có thể khó kiếm lợi nhuận trong tình huống có xu hướng. Bạn có thể thêm các quy tắc đặt cược và mở cửa ngược để tối ưu hóa.
Cài đặt tiền tệ và phạm vi thời gian là cố định, không thể điều chỉnh động. Có thể xây dựng hệ thống tối ưu hóa tham số để giải quyết.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Tối ưu hóa logic phán đoán điểm cực đoan, thêm nhiều điều kiện lọc hơn để tránh phán đoán sai.
Thêm một cơ chế dừng lỗ nổi, điều chỉnh khoảng cách dừng lỗ theo biến động của giá cả và độ dao động.
Thêm thêm các mô-đun tăng và mở vị thế ngược dựa trên xu hướng và biến động, tăng khả năng sinh lợi.
Thiết lập cơ chế tối ưu hóa tham số để thực hiện kiểm tra và tối ưu hóa tham số tự động.
Tham gia mô hình học máy để đánh giá hành vi, hỗ trợ quyết định chiến lược.
Chiến lược theo dõi ngược cực đoan này có khả năng thích ứng và lợi nhuận mạnh mẽ bằng cách nắm bắt các điểm cực đoan của sự thay đổi giá và theo dõi xu hướng. Chiến lược này có khả năng trở thành chiến lược giao dịch định lượng ổn định và đáng tin cậy sau khi tiếp tục tối ưu hóa phán quyết điểm cực đoan, cơ chế dừng lỗ và quy tắc mở vị trí.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Extremum Strategy v1.0", shorttitle = "Extremum str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title = 'Timeframe for extremums')
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Levels
highm = request.security(syminfo.tickerid, tf, high[1])
lowm = request.security(syminfo.tickerid, tf, low[1])
upcolorm = highm == highm[1] ? lime : na
dncolorm = lowm == lowm[1] ? red : na
plot(highm, color = upcolorm, linewidth = 3)
plot(lowm, color = dncolorm, linewidth = 3)
//Signals
size = strategy.position_size
up = size > 0 ? highm * 1000000 : highm != highm[1] ? highm : up[1]
dn = size < 0 ? 0 : lowm != lowm[1] ? lowm : dn[1]
exit = true
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if highm > 0 and high[1] < highm and highm == highm[1]
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = up)
if lowm > 0 and low[1] > lowm and lowm == lowm[1]
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dn)
if exit
strategy.close_all()