728x90

import pandas_datareader.data as web

import datetime

import matplotlib.pyplot as plt

from zipline.api import order, symbol

# order : zipline 백테스팅 시뮬레이션 주문 실행 함수

# symbol : 참조할 데이터에 대한 심볼 등록

#from zipline.algorithm import TradingAlgorithm

from zipline import run_algorithm

from zipline.utils.factory import create_simulation_parameters

# create_simulation_parameters : 초기 금액 설정에 사용

def initialize(context):

pass

def handle_data(context, data):

# order을 통해 AAPL 심볼 주식을 1주 매수

order(symbol('AAPL'), 1)

start = datetime.datetime(2010, 1, 2)

end = datetime.datetime(2016, 3, 19)

data = web.DataReader("AAPL", "yahoo", start, end)

# 새로운 dataframe 객체 만들기

data2 = data[['Adj Close']]

# dataframe의 column의 이름 바꾸기

data2.columns = ['AAPL']

data2 = data.tz_localize("UTC")

data2.head()

# sim_params = create_simulation_parameters(capital_base=100000000)

algo = run_algorithm(start = data2.index[0], end = data2.index[-1], capital_base = 1000000, initialize=initialize, handle_data=handle_data)

plt.plot(algo.index, algo.portfolio_value)

plt.show()

-----

파이썬으로 배우는 알고리즘 트레이딩에 있는 예제에서 변경,

Tradingalgorithm 함수는 과거의 zipline api의 함수인 것으로 확인,

run_algorithm으로 변경

algo = run_algorithm(start = data2.index[0], end = data2.index[-1], capital_base = 1000000, initialize=initialize, handle_data=handle_data)

맨 끝에 data = data 를 추가했을 경우에는 에러 발생.

이것에 대한 이유는 차차 확인해보기로.

 

[출처] Zipline 1.4.1 버전 오류 해결|작성자 PKB

반응형

+ Recent posts