본문으로 건너뛰기

첫 번째 전략 작성

타임퍼센트에서 첫 번째 퀀트 투자 전략을 작성해보겠습니다.

전략이란?​

전략은 시장 데이터를 분석하고 거래 신호를 생성하는 Python 코드입니다. 타임퍼센트는 전략을 실행하고 자동으로 주문을 처리합니다.

간단한 이동평균 전략​

가장 기본적인 이동평균 교차 전략을 만들어보겠습니다.

1. 전략 파일 생성​

my_first_strategy.py 파일을 생성합니다:

from timepercent import Strategy, Order
from timepercent.indicators import SMA

class MovingAverageStrategy(Strategy):
"""
이동평균 교차 전략
- 단기 이동평균이 장기 이동평균을 상향 돌파하면 매수
- 단기 이동평균이 장기 이동평균을 하향 돌파하면 매도
"""

def initialize(self):
# 전략 파라미터 설정
self.short_window = 20 # 단기 이동평균 기간
self.long_window = 50 # 장기 이동평균 기간

# 거래할 종목 설정
self.symbol = "AAPL"

# 이동평균 계산
self.short_ma = SMA(self.short_window)
self.long_ma = SMA(self.long_window)

def on_data(self, data):
"""
새로운 시장 데이터가 들어올 때마다 호출됩니다
"""
# 현재 가격 데이터 가져오기
price = data[self.symbol].close

# 이동평균 계산
short_ma_value = self.short_ma.update(price)
long_ma_value = self.long_ma.update(price)

# 이동평균이 아직 계산되지 않았으면 대기
if short_ma_value is None or long_ma_value is None:
return

# 현재 포지션 확인
position = self.get_position(self.symbol)

# 매수 신호: 단기 이동평균이 장기 이동평균을 상향 돌파
if short_ma_value > long_ma_value and position.quantity == 0:
self.order_target_percent(self.symbol, 1.0) # 전체 자금의 100% 투자

# 매도 신호: 단기 이동평균이 장기 이동평균을 하향 돌파
elif short_ma_value < long_ma_value and position.quantity > 0:
self.order_target_percent(self.symbol, 0.0) # 전체 포지션 청산

2. 전략 업로드​

타임퍼센트 대시보드에서 전략을 업로드합니다:

  1. "전략" > "새 전략 생성" 클릭
  2. 전략 파일을 업로드하거나 코드를 직접 입력
  3. 전략 이름과 설명을 입력
  4. "저장" 클릭

3. 전략 실행​

전략을 실행하기 전에 백테스팅으로 검증하는 것을 권장합니다.

전략 구조 이해하기​

initialize() 메서드​

전략이 시작될 때 한 번만 실행됩니다. 여기서:

  • 전략 파라미터를 설정합니다
  • 기술적 지표를 초기화합니다
  • 거래할 종목을 지정합니다

on_data() 메서드​

새로운 시장 데이터가 들어올 때마다 호출됩니다. 여기서:

  • 시장 데이터를 분석합니다
  • 거래 신호를 생성합니다
  • 주문을 실행합니다

다음 단계​

전략을 작성했으니 백테스팅으로 검증해보세요.