Quanta Docs

Tài liệu Quanta hoàn chỉnh cho Quant Studio

Bài họcrecipelesson/pivot-trendline-chart

Bài 6 — Pivot high + trendline trên chart (tránh lỗi valuewhen)

ffill pivot với `valuewhen(ph, …)`; hai anchor `trendline`; `safediv` slope; peak exit + mark.

Xem chi tiết lý do tại concept/ai-codegen-pitfalls. Skeleton chạy được:

quanta
strategy "Pivot TL Demo"
    @regime     "trending"
    @style      "breakout, swing"
    @detail "Trendline từ swing high đã xác nhận; thoát khi chạm peak gần nhất."

params:
  pivot_lookback = 5 in [3..12]
  exit_lookback = 20 in [10..60]

detect:
  c = market.close
  h = market.high
  ph = swinghigh(h, pivot_lookback, pivot_lookback)
  ph_h = valuewhen(ph, h)
  ph_t = valuewhen(ph, bar.time)
  ph_i = valuewhen(ph, bar.index)
  p1_h = valuewhen(ph, ph_h[1])
  p1_t = valuewhen(ph, ph_t[1])
  p1_i = valuewhen(ph, ph_i[1])
  p2_h = ph_h
  p2_t = ph_t
  p2_i = ph_i
  slope = safediv(p2_h - p1_h, p2_i - p1_i, 0.0)
  current_tl = p2_h + slope * (bar.index - p2_i)
  peak_exit = hhv(h, exit_lookback)
  buy_sig = c crossover current_tl
  sell_sig = h crossover peak_exit[1]

act:
  when buy_sig and not position.is_long:
    enter long with wnav 5pct tag "tl breakout"
  when sell_sig and position.is_long:
    close long tag "peak touch"

render:
  panel main:
    line peak_exit as "Recent peak" in orange dashed
    trendline [p1_t, p1_h] to [p2_t, p2_h] in yellow with width 2 with extend right limit by 5
    mark buy_sig as "Long" at below_bar in lime shaped arrow_up
    mark sell_sig as "Exit" at above_bar in red shaped arrow_down
  • Cần ít nhất 2 pivot đã xác nhận trong lịch sử thì trendline mới có anchor hợp lệ.
  • Không dùng valuewhen(ph, bar.time, 0) — sẽ làm anchor thời gian 0 và chart bỏ qua đường.
  • get x when cond tương đương valuewhen(cond, x); bài này giữ valuewhen vì neo pivot trước (ph_h[1]) dễ viết nhầm.
  • safediv tránh chia 0 khi hai pivot trùng bar.index.
#intermediate#plot#pivot#trendline#valuewhen
Trợ lý Quanta"Học nhanh hơn, hiệu quả hơn cùng AI"

Xin chào! Tôi là trợ lý học ngôn ngữ Quanta. Hỏi tôi về cú pháp, hàm, hoặc cách viết một chiến lược cụ thể (ví dụ: "Làm sao để xác định đỉnh đáy để vẽ trendline?").