Chiến lược theo dõi dòng


Ngày tạo: 2023-12-01 18:31:39 sửa đổi lần cuối: 2023-12-01 18:31:39
sao chép: 1 Số nhấp chuột: 606
1
tập trung vào
1619
Người theo dõi

Chiến lược theo dõi dòng

Tổng quan

Chiến lược theo dõi đường là một chiến lược theo dõi xu hướng dựa trên chỉ số Brin và phạm vi biến động thực trung bình (ATR). Nó sẽ động điều chỉnh đường đánh giá xu hướng, điều chỉnh lên khi phá vỡ đường băng Brin và điều chỉnh xuống khi phá vỡ đường băng Brin, để có thể đánh giá và theo dõi xu hướng.

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

Chiến lược này đầu tiên tính toán đường đi lên và xuống của Brin và phạm vi biến động thực trung bình. Sau đó, giá sẽ phá vỡ đường đi lên hoặc xuống của Brin.

Khi giá phá vỡ đường ray, nếu bật bộ lọc ATR, đường định xu hướng sẽ được thiết lập thành giá thấp nhất trừ ATR; Nếu không bật bộ lọc ATR, nó sẽ được thiết lập thành giá thấp nhất.

Khi giá phá vỡ đường mòn, nếu bật bộ lọc ATR, đường định hướng sẽ được thiết lập là giá cao nhất cộng với ATR; Nếu không bật bộ lọc ATR, nó sẽ được thiết lập trực tiếp là giá cao nhất.

Bằng cách này, đường phán đoán xu hướng có thể được điều chỉnh động theo giá phá vỡ Brin và đi xuống đường ray, do đó có thể phán đoán xu hướng.

Khi đường đánh giá xu hướng hiện tại cao hơn đường đánh giá xu hướng trước, nó cho thấy hiện tại đang trong xu hướng tăng; khi đường đánh giá xu hướng hiện tại thấp hơn đường đánh giá xu hướng trước, nó cho thấy hiện đang trong xu hướng giảm.

Theo xu hướng, chiến lược này có thể được thực hiện nhiều lần.

Phân tích lợi thế

  • Động thái điều chỉnh xu hướng phán đoán đường, có thể linh hoạt nắm bắt xu hướng giá
  • Kết hợp với các chỉ số BRI, có thể đánh giá được sự thay đổi của xu hướng khi giá vượt qua
  • Các tham số ATR được đưa ra để lọc các tín hiệu đột phá giả

Phân tích rủi ro

  • Không chọn đúng các tham số của vùng Brin, có thể dẫn đến các đột phá giả thường xuyên
  • Chọn tham số ATR quá lớn có thể dẫn đến cơ hội đảo chiều xu hướng bị bỏ lỡ
  • Cần cân nhắc dừng lỗ để ngăn chặn thiệt hại từ các hoạt động cực đoan

Có thể tránh một số rủi ro bằng cách điều chỉnh tham số, giới thiệu dừng để tránh rủi ro. Ngoài ra, có thể kết hợp với các chỉ số khác để lọc, tăng hiệu quả của đột phá.

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

  • Tối ưu hóa các tham số của Brinband và ATR để tìm cấu hình tối ưu
  • Thêm các chỉ số khác để lọc các đột phá giả mạo
  • Chu kỳ Brin và chu kỳ ATR được chọn cho các loại giao dịch cụ thể

Tóm tắt

Chiến lược theo dõi đường hướng là một chiến lược theo dõi xu hướng hiệu quả. Nó có thể thu được lợi nhuận tốt thông qua điều chỉnh và tối ưu hóa các tham số. Tuy nhiên, cũng cần xem xét kiểm soát rủi ro và phòng chống phá vỡ giả.

Mã nguồn chiến lược
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Dreadblitz
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

strategy(title = " Strategy Follow Line Indicator ",
         shorttitle = "S-FLI",
         overlay = true,
         precision = 8,
         calc_on_order_fills = true,
         calc_on_every_tick = true,
         backtest_fill_limits_assumption = 0,
         default_qty_type = strategy.fixed,
         default_qty_value = 2,
         initial_capital = 10000,
         pyramiding=1,
         currency = currency.USD,
         linktoseries = true)

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)

FromMonth         = input(defval = 1, title = "Month", minval = 1)
FromDay           = input(defval = 1, title = "Day", minval = 1)
FromYear          = input(defval = 2014, title = "Year", minval = 2000)

backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth           = input(defval = 31, title = "Month", minval = 1)
ToDay             = input(defval = 12, title = "Day", minval = 1)
ToYear            = input(defval = 9999, title = "Year", minval = 2000)

Config            = input(title = "══════════════ Config ══════════════", defval = true, type = input.bool)
BBperiod          = input(defval = 21,     title = "BB Period",    type = input.integer, minval = 1)
BBdeviations      = input(defval = 1.00,     title = "BB Deviations",    type = input.float, minval = 0.1, step=0.05)
UseATRfilter      = input(defval = true, title = "ATR Filter",  type = input.bool)
ATRperiod         = input(defval = 5,     title = "ATR Period",    type = input.integer, minval = 1)
hl                = input(defval = false, title = "Hide Labels",  type = input.bool)


backTestPeriod() => true

//
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations
BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations
//
TrendLine = 0.0
iTrend = 0.0
buy = 0.0
sell = 0.0
//
BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0
// 
if BBSignal == 1 and UseATRfilter == 1
    TrendLine:=low-atr(ATRperiod)
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
    TrendLine:=high+atr(ATRperiod)
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
    TrendLine:=TrendLine[1]
//
if BBSignal == 1 and UseATRfilter == 0
    TrendLine:=low
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
    TrendLine:=high
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
    TrendLine:=TrendLine[1]
//
iTrend:=iTrend[1]
if TrendLine>TrendLine[1] 
    iTrend:=1
if TrendLine<TrendLine[1] 
    iTrend:=-1
//
buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na
sell:=iTrend[1]==1 and iTrend==-1? 1 : na
//
plot(TrendLine, color=iTrend > 0?color.blue:color.red ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") 
plotshape(buy == 1 and hl == false? TrendLine-atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 and hl == false ?TrendLine+atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto)

// Strategy Entry
if (backTestPeriod())
    strategy.entry("long", true, 1, when = buy == 1)
    strategy.entry("short", false, 1, when = sell == 1)