
Mục đích của chiến lược này là để phát hiện tỷ lệ phần trăm biến động giá của chỉ số trong một khoảng thời gian nhất định, tạo ra tín hiệu giao dịch khi vượt quá ngưỡng thiết lập. Chiến lược này áp dụng cho giao dịch ngắn và mở rộng, có thể nắm bắt cơ hội giao dịch do sự thay đổi đột ngột của tình hình thị trường.
Nhập tham số x đại diện cho số lần K-line được kiểm tra, mặc định là 5 đại diện cho 5 phút K-line.
Tính phần trăm thay đổi của giá đóng cửa K hiện tại so với giá đóng cửa trước x chu kỳ, được lưu là trueChange1 và trueChange2.
Các tham số nhập %ChangePos và %ChangeNeg đại diện cho các giới hạn phần trăm thay đổi được đặt, mặc định là 0.4% và -0.4%
Khi trueChange1 lớn hơn percentChangePos, tạo ra tín hiệu mua, khi trueChange2 nhỏ hơn percentChangeNeg, tạo ra tín hiệu bán.
Hình vẽ văn bản và thẻ nền cho các trạng thái buy và sell.
Điều kiện vào và ra sân theo thiết lập tín hiệu.
Thiết lập báo động và bản đồ.
Sử dụng thay đổi phần trăm thay vì thay đổi giá tuyệt đối, các tham số có thể được điều chỉnh tự động để phù hợp với các tiêu chuẩn khác nhau.
Tính linh hoạt trong việc thiết lập các ngưỡng phần trăm thay đổi tích cực và tiêu cực, nhận diện các bước đột phá ở cả hai bên của dải Brin.
Có thể điều chỉnh các tham số của chu kỳ phát hiện để xác định xu hướng thay đổi trong các khoảng thời gian khác nhau.
Có thể thiết lập cảnh báo và nhắc nhở để đảm bảo các tín hiệu quan trọng không bị bỏ lỡ.
Đơn giản, trực tiếp và dễ hiểu.
Có thể nắm bắt cơ hội đảo ngược trong ngắn hạn bằng cách giao dịch.
Thay đổi tỷ lệ phần trăm không thể xác định được xu hướng và có thể tạo ra tín hiệu sai lệch.
Các tham số mặc định có thể không phù hợp với tất cả các tiêu chuẩn, cần điều chỉnh phù hợp.
Không có phương tiện ngăn chặn thiệt hại, không thể kiểm soát tổn thất đơn lẻ.
Các tín hiệu thường xuyên và chi phí giao dịch có thể cao hơn.
Không thể đánh giá được cấu trúc thị trường, dễ bị lừa trong thị trường bất ổn.
Giải pháp:
Kết hợp các chỉ số như xu hướng hồi phục tuyến tính để đánh giá xu hướng lớn.
Thiết lập các tham số tối ưu hóa theo các đặc điểm của các tiêu chuẩn khác nhau.
Thiết lập điều kiện dừng lỗ thích hợp.
Trình lọc tín hiệu, tránh giao dịch quá thường xuyên.
Xác định cấu trúc thị trường dựa trên chu kỳ thời gian cao hơn, tránh giao dịch mù quáng trong thị trường biến động.
Thêm các cơ chế dừng lỗ, chẳng hạn như dừng theo dõi, dừng di chuyển, để kiểm soát tổn thất đơn lẻ.
Thêm các điều kiện lọc, chẳng hạn như chỉ số năng lượng, đường trung bình di chuyển, v.v., để tránh bị mắc kẹt.
Tối ưu hóa thiết lập điểm mua và bán, như kết hợp các tín hiệu xác nhận chỉ số như MACD.
Sử dụng phương pháp học máy để tự động tối ưu hóa tham số.
Tăng khả năng phán đoán về cấu trúc thị trường, tránh giao dịch mù quáng trong thị trường bất ổn.
Lưu ý sự khác biệt về biến động, tính thanh khoản của chỉ số, và các tham số thiết lập động.
Kết hợp với phân tích chu kỳ thời gian cấp cao, đánh giá xu hướng lớn.
Chiến lược này là một chiến lược đảo ngược ngắn hạn bằng cách so sánh tỷ lệ phần trăm thay đổi giá với ngưỡng dự kiến để đánh giá thời gian mua bán. Ưu điểm là đơn giản, trực quan, có thể cấu hình linh hoạt, thích hợp để nắm bắt tình huống phát hành bất ngờ. Ưu điểm là có một số rủi ro thua lỗ, cần phải kết hợp với phán đoán xu hướng và sử dụng các phương tiện kiểm soát rủi ro.
/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// created by Oliver
strategy("Percentage Change strategy w/BG color", overlay=true, scale=scale.none, precision=2)
x = input(5, title = 'x candles difference', minval = 1)
trueChange1 = (close - close[x]) / close[x] * 100
percentChangePos = input(0.4, title="Percent Change")
//if (percentChange > trueChange) then Signal
plotChar1 = if percentChangePos > trueChange1
false
else
true
plotchar(series=plotChar1, char='🥶', color=color.green, location=location.top, size = size.tiny )
trueChange2 = (close - close[x]) / close[x] * 100
percentChangeNeg = input(-0.4, title="Percent Change")
plotChar2 = if percentChangeNeg < trueChange2
false
else
true
plotchar(series=plotChar2, char='🥵', color=color.red, location=location.top, size = size.tiny)
//------------------------------------------------------------------------
UpColor() => percentChangePos < trueChange1
DownColor() => percentChangeNeg > trueChange2
//Up = percentChangePos < trueChange1
//Down = percentChangeNeg > trueChange2
col = percentChangePos < trueChange1 ? color.lime : percentChangeNeg > trueChange2 ? color.red : color.white
//--------
condColor = percentChangePos < trueChange1 ? color.new(color.lime,50) : percentChangeNeg > trueChange2 ? color.new(color.red,50) : na
//c_lineColor = condUp ? color.new(color.green, 97) : condDn ? color.new(color.maroon, 97) : na
//barcolor(Up ? color.blue : Down ? color.yellow : color.gray, transp=70)
//Background Highlights
//bgcolor(condColor, transp=70)
//---------
barcolor(UpColor() ? color.lime: DownColor() ? color.red : na)
bgcolor(UpColor() ? color.lime: DownColor() ? color.red : na)
//------------------------------------------------------------------------
buy = percentChangePos < trueChange1
sell = percentChangeNeg > trueChange2
//------------------------------------------------------------------------
/////////////// Alerts ///////////////
alertcondition(buy, title='buy', message='Buy')
alertcondition(sell, title='sell', message='Sell')
//-------------------------------------------------
if (buy)
strategy.entry("My Long Entry Id", strategy.long)
if (sell)
strategy.entry("My Short Entry Id", strategy.short)
/////////////////// Plotting ////////////////////////
plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0) //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)