콘텐츠로 이동

데이터 접근

chart() 함수로 차트 데이터를 가져옵니다. 반환된 객체로 OHLCV 데이터에 접근하고 지표를 차트에 그릴 수 있습니다.

c = chart("1D")       # 일봉
m5 = chart("5T")      # 5분봉
h1 = chart("1H")      # 1시간봉

지원 타임프레임

분류 타임프레임
분봉 1T, 3T, 5T, 10T, 15T, 30T
시간봉 60T 또는 1H (동일), 4H
일봉+ 1D, 1W

60T1H는 같은 타임프레임입니다. 어느 표기를 사용해도 동일하게 동작합니다.

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]이 한 봉 이전입니다.

c = chart("1D")

c.close[0]   # 현재 봉 종가 (오늘)
c.close[1]   # 이전 봉 종가 (어제)
c.close[2]   # 2봉 전 종가

# 시계열 직접 비교 — [0] 기준으로 자동 비교
if c.close > ta.sma(c.close, 20):
    # c.close[0] > sma[0] 과 동일
    buy(tag="이평선 위")

범위를 벗어난 인덱스는 0.0을 반환합니다. 데이터가 충분한지 먼저 확인하세요.

if c.close.is_valid(60):    # 최소 60개 데이터가 있을 때만
    sma60 = ta.sma(c.close, 60)

TSeries 메서드

메서드 설명 예시
series.is_valid(i) i번째 인덱스 데이터 유효 여부 c.close.is_valid(20)
series.get_or_default(i, default) i번째 값, 없으면 기본값 c.close.get_or_default(5, 0.0)
series.cross_up(other) 이번 봉에서 상향 교차했는지 fast.cross_up(slow)
series.cross_down(other) 이번 봉에서 하향 교차했는지 fast.cross_down(slow)
series.to_list(length) 최근 N개 값을 리스트로 c.close.to_list(5)

차트 오버레이

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)

관련 문서