
Chiến lược này tạo ra một phạm vi biến động tự điều chỉnh bằng cách tính toán các giá trị cao nhất và thấp nhất của khối lượng giao dịch trong một chu kỳ nhất định gần đây, tạo ra tín hiệu giao dịch khi khối lượng giao dịch trong chu kỳ hiện tại vượt qua phạm vi này. Theo phán đoán của sương mù, hướng tín hiệu thuộc về một chiến lược đơn giản và hiệu quả để theo dõi thị trường đột ngột.
Lý thuyết cốt lõi là tính toán các giá trị tối đa hoặc tối thiểu của giao dịch tích cực và tiêu cực trong vòng N chu kỳ gần đây nhất, tạo thành một phạm vi dao động thích ứng. Dựa trên phạm vi này, đánh giá xem có đột phá trong thời gian đó hay không. Đồng thời tổng hợp tín hiệu dương và dương, để hoàn thành phán đoán.
Quá trình tính toán cụ thể là:
Chiến lược này có những lợi thế chính như sau:
Chiến lược này cũng có một số rủi ro:
Có thể tối ưu hóa bằng cách điều chỉnh chu kỳ tham số, kết hợp với các bộ lọc chỉ số khác.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Chiến lược này nói chung là đơn giản và thực tế, có thể nắm bắt một cách hiệu quả các tình huống đơn phương đột ngột thông qua việc kết hợp phạm vi thích ứng và giá trị định lượng. Tuy nhiên, cũng có một số rủi ro thông báo sai, cần điều chỉnh các tham số thích hợp và sử dụng các công cụ khác để có hiệu quả tối đa.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EvoCrypto
//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)
// INPUTS {
Range_Length = input(5, title="Range Length", minval=1)
Heikin_Ashi = input(true, title="Heikin Ashi Colors")
Display_Bars = input(true, title="Show Bar Colors")
Display_Break = input(true, title="Show Break-Out")
Display_Range = input(true, title="Show Range")
// }
// SETTINGS {
Close = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
Open = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
Positive = volume
Negative = -volume
Highest = highest(volume, Range_Length)
Lowest = lowest(-volume, Range_Length)
Up = Highest > Highest[1] and Close > Open
Dn = Highest > Highest[1] and Close < Open
Volume_Color =
Display_Break and Up ? color.new(#ffeb3b, 0) :
Display_Break and Dn ? color.new(#f44336, 0) :
Close > Open ? color.new(#00c0ff, 60) :
Close < Open ? color.new(#000000, 60) : na
// }
//PLOTS {
plot(Positive, title="Positive Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Negative, title="Negative Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Display_Range ? Highest : na, title="Highest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
plot(Display_Range ? Lowest : na, title="Lowest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
barcolor(Display_Bars ? Volume_Color : na)
// }
if (Up)
strategy.entry("Long Entry", strategy.long)
if (Dn)
strategy.entry("Short Entry", strategy.short)