콘텐츠로 이동

데이터 접근

시장 데이터는 chart()로 얻는 ScaleChart 객체로 접근합니다.

c = chart("1D")
m5 = chart("5T")

지원 타임프레임

1T, 3T, 5T, 10T, 15T, 30T, 60T, 1H, 4H, 1D, 1W

  • 60T1H는 둘 다 60분봉을 뜻하는 hourly class입니다.
  • Studio/runtime 차트의 정렬, 기본 preload/window, 기본 날짜 범위 계산도 두 표기를 같은 hourly 계열로 취급합니다.
  • 따라서 chart("60T")를 써도 분봉 기본 범위로 축소되지 않고, 1H와 같은 hourly 기본 범위를 사용합니다.

ScaleChart 속성

OHLCV

  • c.open, c.high, c.low, c.close, c.volume -> TSeries

파생 시계열

  • c.hl2 -> (high + low) / 2
  • c.hlc3 -> (high + low + close) / 3
  • c.ohlc4 -> (open + high + low + close) / 4
  • c.tr -> True Range
  • c.bar_index -> 봉 인덱스 TSeries (스칼라 int 아님)

스칼라

  • c.bars -> 봉 개수 (int)
  • c.scale -> 타임프레임 문자열 (str)
  • c.bar_status -> 현재 구현에서는 항상 "completed"

TSeries 규칙

  • [0]은 최신값, [1]은 1봉 전
  • 범위를 벗어나면 기본 모드에서 0.0 반환
  • 비교 연산(>, <, ==)은 최신값 기준
c = chart("1D")

current = c.close[0]
prev = c.close[1]

if c.close > ta.sma(c.close, 20):
    log("현재가가 SMA20 위")

유용한 메서드

  • series.is_valid(i)
  • series.get_or_default(i, default)
  • series.cross_up(other), series.cross_down(other)
  • series.to_list(length=0)

차트 오버레이

chart()로 받은 객체에서 오버레이 메서드를 사용할 수 있습니다.

  • line(name, value, color="#2196f3")
  • histogram(name, value, color="#4caf50")
  • hline(name, value=0, color="#ff9800")
  • vline(name, color="#9c27b0")
  • marker(text="", color="#f44336", position="above", shape="circle")
  • status_marker(text="", color="#f44336", position="above", shape="circle")
  • arrow_up_marker(text="", color="#f04452")
  • arrow_down_marker(text="", color="#3182f6")
  • circle_marker(text="", color="#f44336", position="above")
  • square_marker(text="", color="#f44336", position="above")
  • pane(name)

관련 문서