In [4]:
from rqalpha.api import *
import traceback
from datetime import *
import pymysql
import pandas as pd
from rqalpha.utils.logger import user_log
def dependency():
return ["testFactor"]
def compute(startdt,enddt,context):
from rqalpha.mod.rqalpha_mod_alphaStar_factors.factor_data import DependingData
dData = DependingData(context)
return dData.getDependingData("testFactor",startdt,enddt)
if __name__ == "__main__":
#仅展示怎么测试计算逻辑
from rqalpha.utils import RqAttrDict
config= {"factor_data_path":"E:\\evilAlpha\\test","factor_data_init_date":"2017-01-01","extra":{"jydb":"172.18.44.5"}}
conf = RqAttrDict(config)
from rqalpha.mod.rqalpha_mod_alphaStar_factors.factor_context import FactorContext
context = FactorContext(conf)
context.registerDepending(dependency())
fValue = compute(datetime(2017,6,8),datetime(2017,7,1),context)
# _fValue_aDay = fValue.iloc[0]
print(fValue)
print(fValue.index)
000001.XSHE 000002.XSHE 000004.XSHE 000005.XSHE 000006.XSHE \
date
2017-06-08 NaN 11.0313 74.6204 53.0669 14.3318
2017-06-09 NaN 11.0313 74.6204 53.2679 14.7690
2017-06-12 NaN 11.4700 74.6204 51.6598 14.4775
2017-06-13 NaN 11.6286 74.6204 52.8659 14.5423
2017-06-14 NaN 11.2850 74.6204 52.3634 14.4127
2017-06-15 NaN 11.1211 67.1584 53.2679 14.4775
2017-06-16 NaN 11.0683 60.4425 53.5694 14.1536
2017-06-19 NaN 11.0894 55.9653 54.7755 14.3318
2017-06-20 NaN 11.1159 56.0275 54.7755 14.3642
2017-06-21 NaN 11.1211 55.0740 54.0720 14.1860
2017-06-22 NaN 11.5651 53.9961 53.5694 13.7650
2017-06-23 NaN 12.7227 52.6903 52.9664 13.9107
2017-06-26 NaN 13.9966 54.1620 53.3684 14.0889
2017-06-27 NaN 13.4997 53.8511 53.0669 14.1212
2017-06-28 NaN 13.2143 53.7889 52.5644 14.1051
2017-06-29 NaN 13.2989 52.9598 52.7654 14.3642
2017-06-30 NaN 11.9982 66.1924 -153.7430 12.8424
000007.XSHE 000008.XSHE 000009.XSHE 000010.XSHE 000011.XSHE \
date
2017-06-08 77.8426 39.1940 68.7342 92.1288 18.3552
2017-06-09 77.8426 39.4643 68.9158 92.8254 19.4547
2017-06-12 77.8426 39.2481 67.2814 89.3423 18.7368
2017-06-13 77.8426 39.4643 69.5514 90.7356 18.6732
2017-06-14 77.8426 39.6806 70.8225 90.2131 18.0553
2017-06-15 77.8426 39.7346 70.7317 91.7805 18.1825
2017-06-16 77.8426 39.7346 70.8225 91.6063 18.1007
2017-06-19 77.8426 40.0590 71.0949 91.2580 19.0639
2017-06-20 77.8426 39.9509 71.9121 91.6063 19.4092
2017-06-21 77.8426 39.8427 71.3673 91.0839 19.1457
2017-06-22 77.8426 39.1399 70.0961 89.1681 18.3824
2017-06-23 77.8426 38.8696 71.2765 88.1232 18.5914
2017-06-26 77.8426 39.9509 74.4545 89.3423 18.7641
2017-06-27 77.8426 39.6265 73.0925 89.3423 19.0457
2017-06-28 77.8426 39.3021 73.0017 88.1232 18.7731
2017-06-29 77.8426 39.1940 73.0017 88.6457 18.3370
2017-06-30 62.2812 38.1776 72.1653 -129.3607 16.4530
... 603987.XSHG 603988.XSHG 603989.XSHG 603990.XSHG \
date ...
2017-06-08 ... 51.6006 233.7065 38.8069 70.4559
2017-06-09 ... 49.5705 233.9646 39.4571 68.9226
2017-06-12 ... 47.6616 232.2318 39.5725 66.5863
2017-06-13 ... 49.1160 234.0015 40.5794 67.7909
2017-06-14 ... 48.5706 234.8863 40.0969 68.1377
2017-06-15 ... 49.6311 239.0155 40.2647 69.7805
2017-06-16 ... 49.0857 238.4994 40.2438 70.3281
2017-06-19 ... 48.9948 238.8681 40.2018 70.1273
2017-06-20 ... 48.9948 239.3105 39.9291 70.5654
2017-06-21 ... 48.8433 238.2413 40.9884 75.2627
2017-06-22 ... 47.5707 234.0752 39.6459 73.5455
2017-06-23 ... 47.0253 231.5682 40.2333 71.9021
2017-06-26 ... 47.4192 231.3838 41.3660 72.1606
2017-06-27 ... 47.7828 231.3838 41.4709 71.9390
2017-06-28 ... 46.8435 230.0197 41.8275 71.7544
2017-06-29 ... 46.6011 229.9091 41.9114 71.3112
2017-06-30 ... 44.7973 214.8588 41.2032 64.6018
603991.XSHG 603993.XSHG 603996.XSHG 603997.XSHG 603998.XSHG \
date
2017-06-08 79.0908 48.4260 42.9950 37.7319 84.2009
2017-06-09 79.6351 48.7744 42.7216 36.2035 83.1152
2017-06-12 75.8059 49.0066 42.2494 35.1288 82.6327
2017-06-13 80.5098 52.2582 42.9453 35.0333 83.1755
2017-06-14 82.3757 52.8389 42.8956 34.6512 83.5374
2017-06-15 84.3972 53.6518 42.1997 34.7706 82.9343
2017-06-16 81.1123 58.5292 42.4482 34.1020 82.5724
2017-06-19 80.9763 57.4841 42.4731 34.2452 82.9343
2017-06-20 83.6392 57.7163 42.3488 34.8661 87.7595
2017-06-21 83.3671 57.8325 41.9512 34.8184 86.0104
2017-06-22 76.9721 56.4389 41.4293 34.7467 84.4422
2017-06-23 76.1363 56.0905 40.3109 34.7229 84.6231
2017-06-26 76.1363 56.5550 41.6032 34.6512 84.0199
2017-06-27 80.0044 57.1357 41.6281 34.6035 84.5628
2017-06-28 79.0519 56.2066 42.1749 34.6512 83.4168
2017-06-29 77.0499 57.7163 43.1441 34.6512 83.0549
2017-06-30 80.3493 64.6718 42.1228 33.4757 76.6954
603999.XSHG
date
2017-06-08 67.4683
2017-06-09 66.9036
2017-06-12 64.7111
2017-06-13 66.7375
2017-06-14 68.5646
2017-06-15 75.4078
2017-06-16 72.5177
2017-06-19 73.1821
2017-06-20 73.0160
2017-06-21 72.0526
2017-06-22 70.8567
2017-06-23 71.1889
2017-06-26 71.7536
2017-06-27 73.6471
2017-06-28 72.5177
2017-06-29 73.7136
2017-06-30 73.6309
[17 rows x 3489 columns]
DatetimeIndex(['2017-06-08', '2017-06-09', '2017-06-12', '2017-06-13',
'2017-06-14', '2017-06-15', '2017-06-16', '2017-06-19',
'2017-06-20', '2017-06-21', '2017-06-22', '2017-06-23',
'2017-06-26', '2017-06-27', '2017-06-28', '2017-06-29',
'2017-06-30'],
dtype='datetime64[ns]', name='date', freq=None)
In [5]:
# evaluateFileDemo
from rqalpha.mod.rqalpha_mod_alphaStar_factors import evaluate_file
config = {
"base": {
"start_date": "2017-06-01",
"end_date": "2017-7-01",
},
}
factor_file_path = "./testDependency.ipynb"
evaluate_file(factor_file_path=factor_file_path,config=config,config_file = "../config_factor.yml")
[2018-03-06 16:36:48.508945] DEBUG: system_log: evaluateRun
Traceback (most recent call last):
File "D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\evaluate.py", line 71, in evaluateRun
fValue = getFactorsTmp(env,config=config)
File "D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\evaluate.py", line 229, in getFactorsTmp
user_factor = Factor(scope,FactorContext(config.mod.alphaStar_factors))
File "D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\factor.py", line 18, in __init__
self._ucontext.registerDepending(self.dependency())
File "D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\factor.py", line 21, in dependency
if not self._dependency:
AttributeError: 'Factor' object has no attribute '_dependency'
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\evaluate.py in evaluateRun(fname, config)
70 else:
---> 71 fValue = getFactorsTmp(env,config=config)
72 system_log.info("get factor value success")
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\evaluate.py in getFactorsTmp(env, config)
228 scope = env.strategy_loader.load(scope)
--> 229 user_factor = Factor(scope,FactorContext(config.mod.alphaStar_factors))
230
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\factor.py in __init__(self, scope, ucontext)
17 self._compute = scope.get('compute',None)
---> 18 self._ucontext.registerDepending(self.dependency())
19
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\factor.py in dependency(self)
20 def dependency(self):
---> 21 if not self._dependency:
22 return []
AttributeError: 'Factor' object has no attribute '_dependency'
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
<ipython-input-5-f05e1fa7e4d5> in <module>()
11 factor_file_path = "./testFactor.ipynb"
12
---> 13 evaluate_file(factor_file_path=factor_file_path,config=config,config_file = "../config_factor.yml")
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\__init__.py in evaluate_file(factor_file_path, config, config_file)
99 fname = os.path.basename(factor_file_path).split(".")[0]
100 clear_all_cached_functions()
--> 101 evaluateRun(fname,config)
102
103
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\mod\rqalpha_mod_alphaStar_factors\evaluate.py in evaluateRun(fname, config)
90 user_exc = create_custom_exception(exc_type, exc_val, exc_tb, config.base.factor_file)
91
---> 92 code = _exception_handler(user_exc)
93 mod_handler.tear_down(code, user_exc)
94 else:
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\rqalpha-3.0.9-py3.5.egg\rqalpha\main.py in _exception_handler(e)
326
327 def _exception_handler(e):
--> 328 better_exceptions.excepthook(e.error.exc_type, e.error.exc_val, e.error.exc_tb)
329 user_system_log.error(e.error)
330 if not is_user_exc(e.error.exc_val):
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\better_exceptions-0.1.8-py3.5.egg\better_exceptions\__init__.py in excepthook(exc, value, tb)
342 def excepthook(exc, value, tb):
343 formatted = format_exception(exc, value, tb)
--> 344 write_stream(formatted)
345
346
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\better_exceptions-0.1.8-py3.5.egg\better_exceptions\__init__.py in write_stream(data)
323
324 if PY3:
--> 325 STREAM.buffer.write(data)
326 else:
327 STREAM.write(data)
D:\Program Files\Anaconda3\envs\rqalpha\lib\site-packages\colorama\ansitowin32.py in __getattr__(self, name)
35
36 def __getattr__(self, name):
---> 37 return getattr(self.__wrapped, name)
38
39 def write(self, text):
AttributeError: 'OutStream' object has no attribute 'buffer'
Content source: xclxxl414/rqalpha
Similar notebooks: