Chiến lược biến động thích nghi dựa trên đột phá phạm vi định lượng

Tác giả:ChaoZhang, Ngày: 2024-02-22 16:50:46
Tags:

img

Tổng quan

Chiến lược này tính toán khối lượng giao dịch cao nhất và thấp nhất trong một khoảng thời gian gần đây nhất định để hình thành một phạm vi biến động thích nghi. Khi khối lượng giao dịch của chu kỳ hiện tại vượt qua phạm vi này, các tín hiệu giao dịch được tạo ra.

Chiến lược logic

Lý thuyết cốt lõi là 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 dương và âm trong các chu kỳ N gần đây nhất để tạo thành một phạm vi biến động thích nghi. Xác định xem có đột phá xảy ra trong giai đoạn hiện tại dựa trên phạm vi này trong khi xem xét tín hiệu đường Yin Yang để hoàn thành phán quyết.

Quá trình tính toán cụ thể là:

  1. Tính toán khối lượng giao dịch cao nhất và khối lượng giao dịch thấp nhất thấp nhất trong N chu kỳ gần đây nhất
  2. Xác định nếu khối lượng giao dịch khối lượng của chu kỳ hiện tại cao hơn cao nhất
  3. Kết hợp cho dù ngọn nến hiện tại là Yin hoặc Yang để hoàn thành sự phán đoán tín hiệu đột phá
  4. Tạo tín hiệu dài và ngắn

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Cài đặt phạm vi thích nghi nhạy cảm với những thay đổi trên thị trường
  2. Nhận các xu hướng biến động cao, giảm tỷ lệ giao dịch bị bỏ lỡ
  3. Kết hợp hình dạng nến đánh giá để tránh đột phá sai
  4. Dễ dàng thực hiện và sửa đổi
  5. Các thông số có thể điều chỉnh để phù hợp với các sản phẩm khác nhau

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Có xu hướng theo đuổi cao và giết chết thấp, cần phải điều chỉnh các thông số để kiểm soát
  2. Có thể thường xuyên tạo ra tín hiệu sai trong các thị trường dao động chu kỳ lớn
  3. Không thể phân biệt đột phá bình thường và bất thường, cần kết hợp các chỉ số hoặc mô hình khác để đánh giá
  4. Chỉ có một cơ hội tham gia cho mỗi bước đột phá, không thể theo dõi xu hướng

Điều chỉnh các tham số chu kỳ và kết hợp các chỉ số khác để lọc có thể tối ưu hóa.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa theo nhiều cách:

  1. Tăng khoảng thời gian để điều chỉnh chiều dài phạm vi phù hợp với các chu kỳ thị trường khác nhau
  2. Kết hợp MA, Bollinger Bands vv để lọc tín hiệu
  3. Tối ưu hóa sự kết hợp với các mẫu nến để tránh tín hiệu sai
  4. Thêm các mô-đun nhập lại và dừng lỗ để chiến lược có thể theo dõi xu hướng

Tóm lại

Chiến lược này nói chung là đơn giản và thực tế. Bằng cách kết hợp phân tích giá phạm vi thích ứng và khối lượng, nó có thể nắm bắt hiệu quả các thị trường bùng nổ một mặt. Tuy nhiên, cũng có một số rủi ro về tín hiệu sai, đòi hỏi phải điều chỉnh tham số thích hợp và các công cụ bổ sung trước khi nó có thể đạt được tác động 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)

Thêm nữa