同步操作将从 yutiansut/QUANTAXIS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
In [2]: import QUANTAXIS as QA
In [3]: user1= QA.QA_User(username='yutiansut',password='940809')
In [4]: user1
Out[4]: < QA_USER USER_b87YCy3U with 1 portfolio: {'RB_PORTFOLIO': < QA_Portfolio RB_PORTFOLIO with 3 Accounts >} >
In [5]: user1.portfolio_list
Out[5]: {'RB_PORTFOLIO': < QA_Portfolio RB_PORTFOLIO with 3 Accounts >}
In [6]: user1['RB_PORTFOLIO']
Out[6]: < QA_Portfolio RB_PORTFOLIO with 3 Accounts >
In [7]: user1['RB_PORTFOLIO'].accounts
Out[7]:
{'test1': < QA_Account test1 market: stock_cn>,
'test2': < QA_Account test2 market: stock_cn>,
'test3_future': < QA_Account test3_future market: stock_cn>}
In [8]: user1['RB_PORTFOLIO']['test1']
Out[8]: < QA_Account test1 market: stock_cn>
迁移目录:
现在的quantaxis log 会以这个模式作为name:
'quantaxis_{}-{}-.log'.format(get_config(), os.sep, os.path.basename(sys.argv[0]).split('.py')[0], str(datetime.datetime.now().strftime(
'%Y-%m-%d-%H-%M-%S')))
在期货的保证金模型中:
开仓会冻结保证金到frozen里面, 这时钱并未参与结算/ 需要先在每日结算时结转冻结的保证金 4. 增加了QA_Account的 history_table字段,增加了一个 frozen字段, 用于记录历史的保证金增加 5. 大幅删减QA_Account的 receive_deal 精简代码 直接调用receive_simpledeal方法 6. QADATASTRUCT 增加一个 kline_echarts 方法 直接返回 echarts.kline类 可以在jupyter notebook中直接显示 7. QALog模块的默认输出为warning级别, 减少别的模块的无聊输出(点名: 尤其是macropy 疯狂输出)
plot的图示例:
pip install pyecharts -U -i https://pypi.doubanio.com/simple
)PS: 真丢人 年末写个bug 2333
#在QA_Account的初始化的时候带上 allow_margin=True
acc=QA.QA_Account(allow_sellopen=True,init_cash=10000,allow_t0=True,allow_margin=True,account_cookie='future_test',market_type=QA.MARKET_TYPE.FUTURE_CN,frequence=QA.FREQUENCE.FIFTEEN_MIN)
#快速撮合接口的测试
acc.reset_assets(init_cash=10000)
acc.receive_simpledeal(code='RB1901', trade_price=3420, trade_amount=1, trade_towards=QA.ORDER_DIRECTION.BUY_OPEN, trade_time='2018-12-28 09:30:00')
acc.receive_simpledeal(code='RB1901', trade_price=3425, trade_amount=1, trade_towards=QA.ORDER_DIRECTION.SELL_CLOSE, trade_time='2018-12-28 09:45:00')
acc.receive_simpledeal(code='RB1901', trade_price=3435, trade_amount=1, trade_towards=QA.ORDER_DIRECTION.SELL_OPEN, trade_time='2018-12-28 09:55:00')
acc.receive_simpledeal(code='RB1901', trade_price=3420, trade_amount=1, trade_towards=QA.ORDER_DIRECTION.BUY_CLOSE, trade_time='2018-12-28 10:45:00')
acc.history_table
"""
datetime code price amount cash order_id realorder_id trade_id account_cookie commission tax message
0 2018-12-28 09:30:00 RB1901 3420 1 6918.580 None None None future_test 3.420 0 None
1 2018-12-28 09:45:00 RB1901 3425 -1 10038.155 None None None future_test 3.425 0 None
2 2018-12-28 09:55:00 RB1901 3435 -1 6943.220 None None None future_test 3.435 0 None
3 2018-12-28 10:45:00 RB1901 3420 1 10166.300 None None None future_test 3.420 0 None
"""
acc.frozen
"""
{'RB1901': {2: {'money': 0, 'amount': 0}, -2: {'money': 0, 'amount': 0}}}
"""
mongo文档参见 https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/#return-the-specified-fields-and-the-id-field-only
为1.1.8的released版本
不兼容修改:
QAWeb 中/accounts/all 返回值修改 为list(之前是dict)
[released] 版本的版本号记错了 实际为1.1.9
to do:
增加对于list获取的支持:
QA_fetch_index_list()
QA_fetch_index_list_adv()
QA_fetch_future_list()
QA_fetch_future_list_adv()
优化 QA_DataStruct的返回Series的名称
删除实盘易broker的TRADE_Event(已弃用)
修复index_cn的列表获取
增加save index_list和save future_list 选项
[QAFetch]
[QAData]
[QAData]
[QAMarket]
[QARisk]
[test_backtest]
[QAARP]
[QAData]
[test_backtest]
[QAData]
[QAAnalysis]
[QAData]
[QAMARKET]
[QAEngine]
[QAARP]
[QASU]
[QAUtil]
[QAWEB]
released in 2018/08/23
更新了财务方法/财务类 QA_DataStruct_Financial
其中, report_date 是需要手动指定的财务时间, 可以是单个时间,也可以是一列时间:
'2018-03-31' 或者['2017-03-31','2017-06-30','2017-09-31','2017-12-31','2018-03-31'] 此方法的意义在于指定特定的财务时间(如年报)
返回的是一个MultiIndex的dataframe
支持随意的跨时间索引, start 和end不用刻意指定
如果end不写,则start参数等同于report_date的用法
返回的是QA_DataStruct_Financial 类
QDF.get_report_by_date(code,date) 返回某个股票的某个时间点的财报
QDF.get_key(code,date,key) 返回某个股票某个时间点的财报的某个指标
更改了两个财务字段:
使用md5计算财报数据包的更新状况,确保财报是最新状态
DataStruct 更新自动降采样字段:
直接调用以后及可返回,如果失败,则返回None
QADataStruct.pivot代码更新
QADataStruct.to_qfq/hfq 更新
( 此处切记:: 使用groupby之后的 data的index 一定要先做 remove_unused_levels()!!!)
released in : July 19, 2018
dev1 released in : July 20, 2018
released in : JULY 17, 2018
# 给一个完整版的 (包含 DataStruct合并, DataStruct包装, DataStruct_Realtime采样)
QA.concat([QA.QA_DataStruct_Stock_min(QA.QA_DataStruct_Stock_realtime(QA.QA_fetch_quotation('000636')).resample('1min')),
QA.QA_DataStruct_Stock_min(QA.QA_DataStruct_Stock_realtime(QA.QA_fetch_quotation('000001')).resample('1min'))])
released in : JULY 17, 2018
save stock_block
中released in : JULY 15, 2018
set_config
函数, 用于设置config.ini的值released in : JULY 11, 2018
released in : JULY 9, 2018
QA_DataStruct_Indicator 类增加 groupby
函数和 add_func
函数 ,用法和QA_DataStruct_xxxx_DAY/MIN 一致
QA_DataStruct_Block 增加两个视图 view_code
和 view_block
QA_DataStruct_xxx_Day/Min 增加一个 fast_moving(pct)
函数, 用于表达bar的快速涨跌幅(返回series)
QA_Data 增加一个 QA_DataStruct_Series() 类, 用于分析行情的series数据
QA_DataStruct_Block 重写, 改成Multiindex驱动的数据格式
实现了一个快速分析全市场一段时间内异动的代码
# 引入QUANTAXIS
import QUANTAXIS as QA
# 获取全市场版块
block=QA.QA_fetch_stock_block_adv()
# 获取全市场股票
code=QA.QA_fetch_stock_list_adv().code.tolist()
# 获取全市场2018-07-05的1分钟线
min_data=QA.QA_fetch_stock_min_adv(code,'2018-07-05','2018-07-05','1min')
# 查找1分钟线bar涨幅超过3%的股票
L=min_data.fast_moving(0.03)
# 使用SeriesDataStruct加载结果
L1=QA.QA_DataStruct_Series(L)
# 查看某一个时刻的股票代码
L1.select_time('2018-07-05 09:33:00').code
# 使用版块查找这个时段的代码归属版块
block.get_code(L1.select_time('2018-07-05 09:31:00').code).view_block
block.get_code(L1.select_time('2018-07-05 09:31:00','2018-07-05 09:41:00').code).view_block
返回
blockname
IP变现 [300426]
ST板块 [000953]
上周强势 [300547]
两年新股 [002808, 300547]
低市净率 [002541]
军民融合 [300265]
创业300 [300278, 300426]
参股金融 [000953]
国防军工 [300265, 300278]
小盘股 [002808, 300265]
已高送转 [002541, 300547]
户数减少 [300042]
户数增加 [300278, 300547]
新能源车 [300547]
昨日振荡 [300265]
昨日涨停 [300426]
昨曾涨停 [300265]
昨高换手 [601990]
智能机器 [300278]
次新开板 [601990]
次新股 [601990]
皖江区域 [002541]
破净资产 [002541]
股权激励 [300278, 300547]
股权转让 [000953, 300042]
近期新低 [002541]
送转潜力 [300042]
送转超跌 [002808, 300426]
高质押股 [300042, 300265, 300278]
修复了save financialfiles的代码
修复了QAWEB在非windows机器上的bug
添加了 save option_day 保存50etf期权的命令到数据库中
增加了config文件的 update_all.py 和 update_x.py 文件, 用于自动化任务管理
增加QASetting模块, 用于QUANTAXIS的设置/配置/任务管理
released in : JULY 8, 2018
QA_MARKET 增加订单查询子线程函数start_order_threading
,线程名称('ORDER') (如股票无回报,需要另外开线程查询是否成交)[如果需要在初始化的时候开启: if_start_orderthreading=True]
threading.enumerate()
[<_MainThread(MainThread, started 23780)>,
<Thread(Thread-4, started daemon 4504)>,
<Heartbeat(Thread-5, started daemon 7760)>,
<HistorySavingThread(IPythonHistorySavingThread, started 23764)>,
<ParentPollerWindows(Thread-3, started daemon 17028)>,
<Thread(pymongo_server_monitor_thread, started daemon 20440)>,
<Thread(pymongo_kill_cursors_thread, started daemon 20216)>,
<QA_ENGINE with ['ORDER', 'SPE_BROKER', 'BACKTEST_BROKER'] kernels>,
<QA_ThreadORDER id=2226925613408>,
<QA_ThreadSPE_BROKER id=2226855623648>,
<QA_ThreadBACKTEST_BROKER id=2226925616992>]
QA_ORDER 增加一个 realorder_id
用于记录订单在报给交易所后返回的order_id
修复了QA_fetch_get_exchangerate_list的bug
released in : JULY 4, 2018
max_holdmarketvalue 最大持仓市值,min_holdmarketvalue 最小持仓市值, average_holdmarketvalue 平均持仓市值 max_cashhold 最大闲置现金, min_cashhold 最小持仓现金, average_cashhold 平均持仓现金
win_rate(methods='FIFO') 胜率 average_profit(methods='FIFO') 平均利润
增加QA_Trade模块,QATrade_Realtime类(未完成)
支持 期权数据/ 港股数据获取/ 部分美股数据/ 国际期货数据/ 宏观指标/ 汇率数据/
QA_fetch_get_option_list 获取期权列表(郑州商品期权/大连商品期权/上海商品期权/中金所期权/上海股票期权)
QA_fetch_get_globalfuture_list 获取国际期货列表(伦敦金属/伦敦石油/纽约商品/纽约石油/芝加哥谷/东京工业品/纽约期货/新加坡期货/马来期货)
QA_fetch_get_hkstock_list 获取香港主板/创业板股票
QA_fetch_get_hkfund_list 获取香港基金列表
QA_fetch_get_hkindex_list 获取香港指数列表
QA_fetch_get_usstock_list 获取美股股票列表
QA_fetch_get_macroindex_list 获取宏观指数列表
QA_fetch_get_exchangerate_list 获取汇率数据(基础汇率/交叉汇率)
QA_fetch_get_option_day 获取期权(郑州商品期权/大连商品期权/上海商品期权/中金所期权/上海股票期权)日线
QA_fetch_get_globalfuture_day 获取国际期货日线(伦敦金属/伦敦石油/纽约商品/纽约石油/芝加哥谷/东京工业品/纽约期货/新加坡期货/马来期货)
QA_fetch_get_hkstock_day 获取香港主板/创业板股票日线
QA_fetch_get_hkfund_day 获取香港基金日线
QA_fetch_get_hkindex_day 获取香港指数日线
QA_fetch_get_usstock_day 获取美股股票日线
QA_fetch_get_macroindex_day 获取宏观指数日线
QA_fetch_get_exchangerate_day 获取汇率数据(基础汇率/交叉汇率)日线
QA_fetch_get_option_min 获取期权(郑州商品期权/大连商品期权/上海商品期权/中金所期权/上海股票期权)分钟线
QA_fetch_get_globalfuture_min 获取国际期货分钟线(伦敦金属/伦敦石油/纽约商品/纽约石油/芝加哥谷/东京工业品/纽约期货/新加坡期货/马来期货)
QA_fetch_get_hkstock_min 获取香港主板/创业板股票分钟线
QA_fetch_get_hkfund_min 获取香港基金分钟线
QA_fetch_get_hkindex_min 获取香港指数分钟线
QA_fetch_get_usstock_min 获取美股股票分钟线
QA_fetch_get_macroindex_min 获取宏观指数分钟线
QA_fetch_get_exchangerate_min 获取汇率数据(基础汇率/交叉汇率)分钟线
released in : JULY 4, 2018
修改了DataStruct的high_limit和low_limit的计算方式
修改了groupby写法, 增加的QADataStruct的groupby参数
修改了前复权等各种涉及groupby('code')可能报错的情况,改成level层面的操作,以后不会出现warning
released in : JUNE 27, 2018
released in : JUNE 27, 2018
connection timeout
问题account.get_history(start,end)
获取历史成交,hold_table
修改去除0持仓的股票 )risk.daily_market_value
每日总市值)优化了save financialfiles 的逻辑 released in : JUNE 18, 2018
优化了save financialfiles 的逻辑 released in : JUNE 17, 2018
优化了save financialfiles 的逻辑 released in : JUNE 17, 2018
released in : JUNE 17, 2018
released in : JUNE 14, 2018
released in : JUNE 14, 2018
released in : JUNE 14, 2018
released in : JUNE 12, 2018
released in : JUNE 12, 2018
released in : JUNE 11, 2018
因此先用set_index去重做一次index
影响的有selects,select_time,select_month,get_bar,select_code
released in :JUNE 03, 2018
因此先用set_index去重做一次index 影响的有selects,select_time,select_month,get_bar
released in :JUNE 03, 2018
released in :JUNE 03, 2018
released in :JUNE 01, 2018
@QDS_StockDayWarpper
@QDS_StockMinWarpper
import QUANTAXIS as QA
import tushare as ts
@QA.QDS_StockDayWarpper
def get_stockday_adv(code,start,end):
return QA.QA_fetch_get_stock_day('tdx',code,start,end)
@QA.QDS_StockDayWarpper
def get_stockday_ts(code,start,end):
return ts.get_k_data(code,start,end)
print(get_stockday_adv('000001','2018-05-01','2018-05-21'))
print(get_stockday_ts('000001','2018-05-01','2018-05-21'))
released in :May 30, 2018
released in :May 28, 2018
released in :May 24, 2018
released in :May 23, 2018
released in :May 22, 2018
对于策略示例做了一些适当性的调整
released in :May 21, 2018
受影响的方法/属性
released in :May 21, 2018
1.0.34会在本地创建一个.quantaxis目录,用于存储设置等
同时可以对于.quantaxis/setting/config.ini进行修改,配置默认数据库
released in :May 19, 2018
released in :May 18, 2018
感谢@尧 zhongjy1992@outlook.com 对于该版本做出的巨大贡献
released in :May 17, 2018
1.0.31 更新了关于DATAStruct的易用性
[In1]: datafq.split_dicts
{'000014': < QA_DataStruct_Stock_day with 1 securities >,
'000037': < QA_DataStruct_Stock_day with 1 securities >,
'000555': < QA_DataStruct_Stock_day with 1 securities >,
'000670': < QA_DataStruct_Stock_day with 1 securities >,
'000677': < QA_DataStruct_Stock_day with 1 securities >,
'000681': < QA_DataStruct_Stock_day with 1 securities >,
'000687': < QA_DataStruct_Stock_day with 1 securities >,
'000801': < QA_DataStruct_Stock_day with 1 securities >,
'000868': < QA_DataStruct_Stock_day with 1 securities >,
'002068': < QA_DataStruct_Stock_day with 1 securities >,
'002077': < QA_DataStruct_Stock_day with 1 securities >,
'002137': < QA_DataStruct_Stock_day with 1 securities >,
'002203': < QA_DataStruct_Stock_day with 1 securities >,
'002258': < QA_DataStruct_Stock_day with 1 securities >,
'002371': < QA_DataStruct_Stock_day with 1 securities >,
'002376': < QA_DataStruct_Stock_day with 1 securities >}
example:
从一个DataStruct包里面快速拿到000014的股票,选择2018-04-01以前15天的数据,计算这部分数据的MACD
R=datafq.split_dicts
R['000014'].select_time_with_gap('2018-04-01',15,'<=').add_func(QA.QA_indicator_MACD,1,2)
released in :May 15, 2018
1.0.30更新了关于回测和数据查询的代码
cash_available
结算bugreleased in :May 14, 2018
1.0.29更新了关于数据查询的代码
released in :May 14, 2018
ATTENTION CHANGELOG 1.0.28 修改了Account的send_order方法, 区分按数量下单和按金额下单两种方式
在按金额下单的时候,应给予 money参数 在按数量下单的时候,应给予 amount参数
Account=QA.QA_Account()
Order_bymoney=Account.send_order(code='000001',
price=11,
money=0.3*Account.cash_available,
time='2018-05-09',
towards=QA.ORDER_DIRECTION.BUY,
order_model=QA.ORDER_MODEL.MARKET,
amount_model=QA.AMOUNT_MODEL.BY_MONEY
)
Order_byamount=Account.send_order(code='000001',
price=11,
amount=100,
time='2018-05-09',
towards=QA.ORDER_DIRECTION.BUY,
order_model=QA.ORDER_MODEL.MARKET,
amount_model=QA.AMOUNT_MODEL.BY_AMOUNT
)
released in :May 10, 2018
2018-05-06
修改并增加了大量的公式,统一成dataframe格式返回,可以被直接concat合并出来
预计将对于indicator类进行重写并缓存/本地存储,方便快速调用
修改了QA_Account的下单模式, 修复了下单的判断bug
released in :May 10, 2018
2018-05-02
1.0.26 对于回测进行了一些优化
增加了init_assets
, last_assets
参数,更方便查看
修改了计算年化收益率的公式
simple_backtest 之前的 重设账户资金的写法错误, 已更正
simple_backtest 现在会随机下单(增加随机函数)
QADATASTRUCT
中日线结构的参数增加了 next_day_high_limit
和 next_day_low_limit
参数,方便计算,明日涨跌停
released in :May 02, 2018
2018-04-27
1.0.25 增加对于查询的优化:
当code的列表如果是[000001,000002... ]等int形式时,会出现不支持的错误,1.0.25进行了优化
常见原因是如果code从csv中取出,csv会自动讲code变成整数的形式,如果在传参之前没有进行 code.apply(str).tolist()
的话,会出现此错误
在偶见的数据库数据重复时,会对数据自动去重并返回结果
released in :Apr 27, 2018
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。