阿布老师您好,遇到一个BUG反馈一下,不知道是不是你这边的服务器设置了防火墙,导致现在取不到数据,代码为演示代码,代码如下:
from abupy import ABuSymbolPd
ABuSymbolPd.make_kl_df('601398').tail()
输出的信息为:
HTTPConnectionPool(host='gp.baidu.com', port=80): Max retries exceeded with url: /stocks/stockkline?from=android&os_ver=21&format=json&vv=3.3.0&uid=&BDUSS=&cuid=495ji96193yifdge083wwnyj8uilk4h69u2fw4s2&channel=default_channel&device=OPPOR9&logid=1596127723&actionid=1596127657&device_net_type=wifi&period=day&stock_code=sh601398&fq_type=front (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 159, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\util\connection.py", line 57, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "C:\ProgramData\Anaconda3\lib\socket.py", line 748, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike'
1,以上问题已有解决方案,先安装mpl_finance,然后将第256行代码改为import mpl_finance as mpf,
2,该文件头部加from matplotlib.dates import date2num
第269,278均改为d = index if minute else date2num(d)
您好,请问博客的独立页面里面的标签云怎么做的呀,能不能分享下呀?
你好,keyword = Typecho 获取所有 tag 制作标签云页面
量化课堂中的第6节 回测结果的度量里放的是第七节的内容,希望修改下。谢谢。
谢谢,已修正
你好,我可以在这里发布招聘信息吗?招量化工程师。
可以
大神,什么时候开源实盘交易系统啊~
还有一段时间
会提供历史数据接口么
有计划提供
大神,我在都您得书《量化交易之路》,后面从量化工具开始特实例讲义别有用,orz了。
本人是美双硕士毕业回国的,虽然学的金融,但量化分析没有太多接触,因工作需要才开始学习量化和python
给您得书提个小意见,您书里得一些旧的python语法需要更新一下,作为小白的的我,虽然自学了python基础,在实际输入您的给的那些指令时因为语法没有更新而报错,不得不花费很多时间到网站博客上找报错原因并修改语法。如map()函数,之前的版本可能可以直接打印显示,现在需要把map()转成list, 也就是List(map())之后才能正常显示。这对于向您一样自资深的人士可能小菜一碟,对于我这个刚入行的小学弟来说要费一番功夫查阅。
您好, 书里因为篇幅有限只显示了py2的代码片段, 书如果区分显示那得从500页变成800页, 开源的项目里面的可执行代码是同时支持py2和python3的, 不要对着书敲代码, 直接下载github上面对应章节的code直接运行
您好,我是一名大四的同学,正在完成关于量化分析方面的毕设,不知是否可以参考此项目~ 特来询问~ 感谢答复~
可以
pip instal abupy, 为何在windows下安装时,安装失败。
pip install abupy, 不建议使用pip安装, 直接下载github上面的code运行, github上面的开源代码的意义是基础教学和二次开发框架的基础, 很多基础模块可以直接二次开发直接使用
github上的代码 很多matplotlib,pandas版本比较旧而产生的问题?书籍对应的代码不再更新了吗?
详情见教程0的开发环境使用conda的特定版本, github上面的开源代码的意义是基础教学和二次开发框架的基础, 不做第三方库的版本适配
你好,官网上的个股日报,是否可用开放查看历史数据。
以后
mpl_finace已经不再维护了,新的版本交mplfinance,函数也有变动,可以更新一下吗
已解决。根据更新修改了代码
您好,我正在拜读您写的《量化交易之路》,看到300多页了,但是还是感觉对量化这块一头雾水,能否指点一下如何补充一下相关知识,还有如何系统的学习abu量化系统源码呢?万分感谢!
您好,正在拜读《量化交易之路》一书,发现choice_symbols函数并不在书中所讲的ABuSymbol.py模块下,而是在ABuMarket.py模块下,请核验一下,谢谢
您好, 建议直接从github下载源码运行其中的notebook, 这些可直接运行的nb教程已经有数千个用户运行没有问题
请问怎么切换数据源为mongodb,没有看到说明,是需要自己实现具体方式吗
可以阅读教程第19节 数据源
github下载的源码!要用什么工具运行?
github只是个仓库,建议先python入门
您好,量化交易之路的7.1.2节182页,np.log(220/218), 220/218 - 1.0 的结果(0.009132483563272472, 0.00917431192660545)并不相同,含义应该也不相同,请您再确认一下
阿布老师您好,遇到一个BUG反馈一下,不知道是不是你这边的服务器设置了防火墙,导致现在取不到数据,代码为演示代码,代码如下:
from abupy import ABuSymbolPd
ABuSymbolPd.make_kl_df('601398').tail()
输出的信息为:
HTTPConnectionPool(host='gp.baidu.com', port=80): Max retries exceeded with url: /stocks/stockkline?from=android&os_ver=21&format=json&vv=3.3.0&uid=&BDUSS=&cuid=495ji96193yifdge083wwnyj8uilk4h69u2fw4s2&channel=default_channel&device=OPPOR9&logid=1596127723&actionid=1596127657&device_net_type=wifi&period=day&stock_code=sh601398&fq_type=front (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 159, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\util\connection.py", line 57, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "C:\ProgramData\Anaconda3\lib\socket.py", line 748, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
还有一大截,但后面应该是数据娶不到,导致的错误,盼复!持续关注。
abupy是0.40版本,我电脑是win10,网络是中国电信
开源代码里面的数据源只是做为例子使用,因为爬的其它公司的数据源,所以本质上不能保证一直可用,可参考教程中关于数据源的第19节,可尝试切换数据源或者用自己的数据源,或者等待阿布量化后面会推出数据源服务
用腾讯的数据源可以:abupy.env.g_market_source = EMarketSourceType.E_MARKET_SOURCE_tx
你好,你有没有发现,对于腾讯源的数据源,港股数据只能取最近两年。新浪直接娶不到了,有没有可以替换的港股复权数据可以告知一下,我发现tushare也没有港股复权数据。至于腾讯元的A股数据,我是用自己的数据源了,和当时回复的那个新手的我已经不一样了
大神,安装Python需要虚拟环境吗?我用Jupyter Notebook执行您Github上的示例,显示下面错误:
KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike'
参考环境章节统一使用conda特地版本,开源的代码是15年些写的,无法持续更新,所以请参考教程第一节的环境搭建
BUG反馈;
第77页,中间偏下下方的代码,输入如下。
in【1】:df_stock0_5.head()
out【1】:
open high low close
2017-01-01 1.6115 3.2675 1.6115 3.1291
2017-01-06 2.2788 4.0364 0.9513 1.6876
2017-01-11 1.3948 3.7891 1.3948 3.7891
2017-01-16 3.4621 4.3725 2.9313 4.3725
2017-01-21 4.1577 5.9806 3.9557 5.4147
in【2】:
from abupy import ABuMarketDrawing
# 图4-2所示
ABuMarketDrawing.plot_candle_stick(df_stock0_5.index,
df_stock0_5['open'].values,
df_stock0_5['high'].values,
df_stock0_5['low'].values,
df_stock0_5['close'].values,
np.random.random(len(df_stock0_5)),
None, 'stock', day_sum=False,
html_bk=False, save=False)
out【2】:---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
~\PycharmProjects\abu\abupy\MarketBu\ABuMarketDrawing.py in _do_plot_candle(date, p_open, high, low, close, volume, view_index, symbol, day_sum, save, minute)
250 # noinspection PyUnresolvedReferences, PyDeprecation
--> 251 import matplotlib.finance as mpf
252 except ImportError:
ModuleNotFoundError: No module named 'matplotlib.finance'
During handling of the above exception, another exception occurred:
ModuleNotFoundError Traceback (most recent call last)
in
8 np.random.random(len(df_stock0_5)),
9 None, 'stock', day_sum=False,
---> 10 html_bk=False, save=False)
~\PycharmProjects\abu\abupy\MarketBu\ABuMarketDrawing.py in plot_candle_stick(date, p_open, high, low, close, volume, view_index, symbol, day_sum, html_bk, save, minute)
186 if html_bk is False:
187 # 绘制不可交互的
--> 188 _do_plot_candle(date, p_open, high, low, close, volume, view_index, symbol, day_sum, save, minute)
189 else:
190 # 通过bk绘制可交互的
~\PycharmProjects\abu\abupy\MarketBu\ABuMarketDrawing.py in _do_plot_candle(date, p_open, high, low, close, volume, view_index, symbol, day_sum, save, minute)
253 # 2.2 才会有
254 # noinspection PyUnresolvedReferences, PyDeprecation
--> 255 import matplotlib.mpl_finance as mpf
256
257 if not g_only_draw_price:
ModuleNotFoundError: No module named 'matplotlib.mpl_finance'
出问题处函数的代码为:
# 需要内部import不然每次import abupy都有warning,特别是子进程很烦人
try:
# noinspection PyUnresolvedReferences, PyDeprecation
import mpl_finance as mpf
except ImportError:
# 2.2 才会有
# noinspection PyUnresolvedReferences, PyDeprecation
import mpl_finance as mpf
我不知道为什么已经try,except,还会有这个报错。python,3.7.4,已经再次安装mpl_finance,abupy为0.4.0,系统为win10
1,以上问题已有解决方案,先安装mpl_finance,然后将第256行代码改为import mpl_finance as mpf,
2,该文件头部加from matplotlib.dates import date2num
第269,278均改为d = index if minute else date2num(d)
参考环境章节统一使用conda特地版本,开源的代码是15年些写的,无法持续更新,所以请参考教程第一节的环境搭建
BUG反馈,由于现在取的数据的date格式有变,所以ABuMarketDrawing.py文件的第220行至224行要改为,
p.segment(date, high, date, low, color="black")
# noinspection PyUnresolvedReferences
p.rect(date[inc], mids[inc], w, spans[inc], fill_color=__colorup__, line_color=__colorup__)
# noinspection PyUnresolvedReferences
p.rect(date[dec], mids[dec], w,spans[dec],fill_color=__colordown__,line_color=__colordown__)
方可顺利运行代码
BUG反馈,由于pands中取消了rolling_mean等模块,并且取消了rolling模块,书中P109页中的代码应该改写为,方可在pandas0.25版本中运行。
tsla_df.close.plot()
# ma 30
tsla_df.close.rolling(30).mean().plot()
# ma 60
tsla_df.close.rolling(60).mean().plot()
# ma 90
tsla_df.close.rolling(90).mean().plot()
# loc=‘best’即自动寻找合适的位置
plt.legend(['close', '30 mv', '60 mv', '90 mv'], loc='best')
BUG反馈,书中P146页,原代码
# 针对幸福感可变序列使用了np.power4,即变化速度比sqrt快
happiness_days = np.power(days, 4)
实际运行报出数值溢出,应改为
happiness_days = np.power(days, 4, dtype=np.int64)
给各位其他读者一个建议,anaconda版本不宜过高,我现在自己安装anaconda3-5.2.0就很舒服,python3.6.5,第六章的很多代码都可以直接运行,上面反馈的BUG也不会再重现。
麻烦问下,这些量化结果的分析源数据是来自哪里的?
参考数据源中的介绍,目前百度的源不能用,腾讯的可以
阿布老师,我已经将书读完了,目前正在准备将自己的mysql数据源接入abupy系统,遇到了一个问题。19章的示例,展示了期货和虚拟币的外部数据源接口,分别基于FuturesBaseMarket,TCBaseMarket,我想了解下,如果是国内A股市场和港股,是哪两个父类。非常感谢您能将abupy分享出来,真的很不容易!
已经找到,StockBaseMarket
阿布老师,我在第27-狗股选股策略与择时策略的配合中看到你提到了
狗股理论使用的是参考值为股息率,很多基于狗股理论的选股策略进行了基因变种,如使用PEG替换股息率进行选股,或者直接使用上一年度的涨幅值做为选股参数,基于基本面数据进行选股的示例将在之后的章节进行示例,本节首先基于涨幅值做为狗股选股的参数。
但是我未在后续章节中找到有关利用基本面数据选股的教程例子,不知道abupy系统能否支持引入市盈率,市净率等基本面指标的选股例子。请指教,盼复!
请问有支持黄金T+D的计划吗?我是否有机会加入开发,在黄金T+D方面贡献些力量,谢谢阿布。
ABU老师,基础库代码找不到'toolz'模块,是我环境问题吗?谢谢
---> 10 from toolz import valmap
11 from functools import wraps
12
ModuleNotFoundError: No module named 'toolz'
已经解决,打扰啦