import os
os.environ['API_KEY'] = "XXX"
import qnt.ta as qnta
import qnt.data as qndata
import qnt.backtester as qnbk
import xarray as xr
def load_data(period):
data = qndata.futures_load_data(tail=period)
return data
def strategy(data):
close = data.sel(field='close')
sma200 = qnta.sma(close, 200).isel(time=-1)
sma20 = qnta.sma(close, 20).isel(time=-1)
return xr.where(sma200 < sma20, 1, -1)
qnbk.backtest(
competition_type="futures",
load_data=load_data,
lookback_period=365,
test_period=2 * 365,
strategy=strategy,
check_correlation=False
)
got error:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[1], line 5
2 os.environ['API_KEY'] = "XXX"
4 import qnt.ta as qnta
----> 5 import qnt.data as qndata
6 import qnt.backtester as qnbk
7 import xarray as xr
File ~/work/toolbox/.venv/lib/python3.10/site-packages/qnt/data/__init__.py:45
41 from .cryptodaily import load_data as cryptodaily_load_data
43 from .common import Fields, f, Dimensions, ds, get_env, deprecated_wrap
---> 45 from ..output import write as write_output
46 from ..output import normalize as sort_and_crop_output
47 from ..output import clean as clean_output
File ~/work/toolbox/.venv/lib/python3.10/site-packages/qnt/output.py:6
3 import pandas as pd
4 import gzip
----> 6 import qnt.stats as qns
7 import qnt.exposure as qne
8 from qnt.data.common import ds, f, track_event, get_env
File ~/work/toolbox/.venv/lib/python3.10/site-packages/qnt/stats.py:3
1 from .data import f, ds, stocks_load_list, get_env, futures_load_list, stocks_load_ndx_list, stocks_load_spx_list
2 from .data.common import track_event
----> 3 from .output import normalize as output_normalize
4 from qnt.log import log_info, log_err
5 import xarray as xr
ImportError: cannot import name 'normalize' from partially initialized module 'qnt.output' (most likely due to a circular import) (/Users/agorodilov/work/toolbox/.venv/lib/python3.10/site-packages/qnt/output.py)