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


Ngày tạo: 2024-02-22 16:50:46 sửa đổi lần cuối: 2024-02-22 16:50:46
sao chép: 0 Số nhấp chuột: 563
1
tập trung vào
1617
Người theo dõi

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

Tổng quan

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.

Nguyên tắc chiến lược

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à:

  1. Tính số lượng giao dịch cao nhất và thấp nhất trong N chu kỳ gần đây nhất
  2. Xác định khối lượng giao dịch của chu kỳ hiện tại là Volume cao hơn Highest
  3. Kết hợp hiện tại là âm hay dương, hoàn thành đánh giá tín hiệu đột phá
  4. Tạo ra nhiều tín hiệu làm trống

Phân tích lợi thế

Chiến lược này có những lợi thế chính như sau:

  1. Đặt phạm vi thích nghi, nhạy cảm với sự thay đổi của thị trường
  2. Ghi lại các trường hợp bất ngờ có biến động cao, giảm tỷ lệ thất thoát
  3. Kết hợp sự phán đoán sai lệch để tránh đột phá giả
  4. Đơn giản, dễ hiểu và dễ sửa đổi
  5. Có thể điều chỉnh các tham số linh hoạt để phù hợp với các giống 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. Dễ dàng theo đuổi cao và thấp, cần điều chỉnh điều khiển tham số
  2. Các tín hiệu sai lầm có thể xảy ra thường xuyên trong thị trường xung đột chu kỳ lớn
  3. Không thể phân biệt được độ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. Mỗi lần đột phá chỉ có một cơ hội, không thể theo dõi xu hướng

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.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. Tăng tham số điều chỉnh độ dài phân đoạn để phù hợp với chu kỳ thị trường khác nhau
  2. Thêm các chỉ số như đường trung bình, Blink, và các tín hiệu lọc
  3. Tối ưu hóa kết hợp hình dạng K-line, tránh đột phá giả
  4. Thêm mô-đun Re-Entry và Stop-Loss để chiến lược có thể theo dõi xu hướng

Tóm tắt

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.

Mã nguồn chiến lược
/*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)