1.0.0 • Published 1 month ago
@muyi086/quant-learn v1.0.0
quant-learn
学习量化的记录和尝试
总结
本项目归档于2020年,记录学习量化的一些尝试和想法,应用的技术栈有js
, nodejs
, python
最终无疾而终。量化一途,博大精深,本人越是深入和尝试,越是自认无法在这个游戏中获得优势,决定放弃。现将整理内容和代码脱敏后开源,仅供学习参考使用,请勿用于商业用途。
背景
原设想是使用 js
开发的,好上手写策略回测,可是现实很残酷,在使用了 tqsdk-js
后,发现 api
残缺不全,比 python
版tqsdk
差的不是一点半点,而且考虑到后期需要本地缓存数据,最终选用了 akshare
文档说明
交易市场
交易所 | 示例代码 | 证券名称 |
---|---|---|
上海证券交易所 | '600519.XSHG' | 贵州茅台 |
深圳证券交易所 | '000001.XSHE' | 平安银行 |
中金所 | 'IC9999.CCFX' | 中证500主力合约 |
大商所 | 'A9999.XDCE' | 豆一主力合约 |
上期所 | 'AU9999.XSGE' | 黄金主力合约 |
郑商所 | 'CY8888.XZCE' | 棉纱期货指数 |
上海能源交易所 | 'SC9999.XINE' | 原油主力合约 |
使用
# tqsdk 下载某个合约所有月份数据, 已保存csv需前往比特球-天勤数据下载
# python获取区间交易日期
https://quant.pobo.net.cn/main#/strategy/editor/52976/0
# python获取日期对应主力合约
https://quant.pobo.net.cn/main#/strategy/editor/54126/0
# python获取全市场期货合约列表
https://quant.pobo.net.cn/main#/strategy/editor/54129/0
# dealtick/src/common/trans.js node截取并存储每个交易日对应主力合约的json
# 已保存json需前往比特球-天勤数据下载
# dealtick node处理所有json并根据策略计算出'买卖标记'
# 将标记导入tqsdk,进行回测
https://www.joinquant.com/algorithm/index/edit?algorithmId=ea6c465ca56c082fddfe5373438fe32b
策略统计
统计区间 2016-09-01 至 2020-06-01 fn_15波幅最大,从浮盈2倍到负值,感兴趣可以深入研究
策略 | 盈利次数 | 亏损次数 | 次数 | 交易日 | 最大回撤 | 收益 |
---|---|---|---|---|---|---|
fn_3 | 49 | 45 | 94 | 918 | 37.38% | 18.17% |
fn_7 | 25 | 27 | 52 | 918 | 15.32% | 48.87% |
fn_8 | 27 | 17 | 44 | 918 | 10.34% | 14.38% |
fn_9 | 22 | 28 | 52 | 918 | 43.03% | 39.72% |
fn_11 | 22 | 17 | 39 | 918 | 29.99% | 13.57% |
fn_14 | 43 | 41 | 84 | 918 | 18.06% | 51.21% |
fn总 | 188 | 175 | 363 | 918 | 24.71% | 185.92% |
fn杠 | 188 | 175 | 363 | 918 | 72.37% | 523.53% |
说明
聚宽策略 fn
杠加了强制平仓后策略收益159.3%,最大回撤77.93%,相比之前,损失了许多收益,自此后续日内策略,暂不考虑强制平仓.
# 导入策略回测
https://www.joinquant.com/algorithm/index/edit?algorithmId=332d4db097ad718184b1fdca942e2bae
常见问题
node
处理数据内存耗完
// https://segmentfault.com/a/1190000010437948
node --max-old-space-size=8192 ./trans.js // MB
node --max-new-space-size=8192 ./trans.js // KB
1.0.0
1 month ago