quantopian / zipline

Zipline, a Pythonic Algorithmic Trading Library
https://www.zipline.io
Apache License 2.0
17.52k stars 4.71k forks source link

run_algorithm start and end dates not working #2800

Closed sword134 closed 3 years ago

sword134 commented 3 years ago

I am getting the following error when running

start=datetime(2018, 1, 3, 9, 33, 0, 0, pytz.utc)
end=datetime(2018, 2, 4, 9, 40, 0, 0, pytz.utc)

run_algorithm(start=start,
              end=end,
              initialize=initialize,
              capital_base=50000,
              handle_data=handle_data,
              data_frequency='daily')
Traceback (most recent call last):
  File "d:\Finansiering. Modern Portfolio Theory Projekt\ziplined.py", line 77, in <module>
    data_frequency='daily')
  File "D:\Anaconda\envs\Finansiering\lib\site-packages\zipline\utils\run_algo.py", line 409, in run_algorithm
    benchmark_spec=benchmark_spec,
  File "D:\Anaconda\envs\Finansiering\lib\site-packages\zipline\utils\run_algo.py", line 203, in _run
    data_frequency=data_frequency,
  File "D:\Anaconda\envs\Finansiering\lib\site-packages\zipline\finance\trading.py", line 38, in __init__
    assert type(start_session) == pd.Timestamp
AssertionError

My environment: alembic==1.4.3 astroid==2.3.3 autopep8==1.5.1 backcall==0.2.0 bcolz==1.2.1 Bottleneck==1.3.2 cached-property==1.5.2 certifi==2020.12.5 chardet==4.0.0 click==7.1.2 colorama==0.4.3 cvxopt==1.2.5.post1 cvxpy==1.1.7 cycler==0.10.0 decorator==4.4.2 ecos==2.0.7.post1 empyrical==0.5.5 h5py==2.9.0 highway-env @ git+https://g e8ac91f9a4763557b3 idna==2.10 intervaltree==3.1.0 ipython-genutils==0.2.0 iso3166==1.0.1 iso4217==1.6.20180829 isort==4.3.21 jedi==0.17.2 kiwisolver==1.3.1 lazy-object-proxy==1.4.3 Logbook==1.5.3 lru-dict==1.1.6 lxml==4.6.2 Mako==1.1.3 MarkupSafe==1.1.1 matplotlib==3.3.3 mccabe==0.6.1 multipledispatch==0.6.0 multitasking==0.0.9 networkx==1.11 numexpr==2.7.2 numpy==1.19.5 osqp==0.6.2 pandas==0.22.0 pandas-datareader==0.8.0 parso==0.7.1 patsy==0.5.1 pickleshare==0.7.5 Pillow==8.1.0 pygame==1.9.6 Pygments==2.6.1 pylint==2.4.4 pyparsing==2.4.7 pyportfolioopt==1.2.7 python-dateutil==2.8.1 python-editor==1.0.4 python-interface==1.6.0 pytz==2020.5 qdldl==0.1.5.post0 requests==2.25.1 scipy==1.5.4 scs==2.1.2 six==1.15.0 sortedcontainers==2.3.0 SQLAlchemy==1.3.22 statsmodels==0.12.1 tables==3.6.1 toolz==0.11.1 trading-calendars==2.1.1 traitlets==4.3.3 typed-ast==1.4.1 urllib3==1.26.2 wcwidth==0.2.5 wincertstore==0.2 yfinance==0.1.55 zipline==1.4.1

igor-i-plotnikov commented 3 years ago

try pd.to_datetime(start) same for end

sword134 commented 3 years ago

@igor-i-plotnikov same error as before

sword134 commented 3 years ago

Changing to:

start = pd.Timestamp('2015-1-1', tz='utc')
end = pd.Timestamp('2017-1-1', tz='utc')

now it works

igor-i-plotnikov commented 3 years ago

@sword134

import pandas as pd
from datetime import datetime
import pytz

a = datetime(2018,1,3,9,33,0,0,  pytz.utc)
b = pd.to_datetime(a)
c = pd.Timestamp(2018,1,3,9,33,0,0)
print(f'a: {type(a)},\nb: {type(b)},\nc: {type(c)}')

output:

a: <class 'datetime.datetime'>,
b: <class 'pandas._libs.tslibs.timestamps.Timestamp'>,
c: <class 'pandas._libs.tslibs.timestamps.Timestamp'>

I wonder what is the difference between b and c attitude?