业余学习量化交易在股票中的应用(基础)

背景

复工复工,工没了,所以复工无望了,在家研究研究,看看能否辅助自己,增加点收入。不是正路子,仅供参考娱乐。囧

必要知识储备

相关软件

1.Pandas 官方文档 https://pandas.pydata.org/
2.Backtrader 官方文档https://www.backtrader.com/
3.Ta-lib 官方文档 https://www.ta-lib.org/
4.Anaconda 官方文档 https://www.anaconda.com/
5.Matplotlib 官方文档 https://matplotlib.org/
6.任意金融数据源

金融数据源

国外数据源

global financial data:全球财经数据库,同时提供相关的数据服务
quandl:比较全面的金融数据api网站
IMF: 国际货币基金组织统计数据库
UNdata:联合国数据库,官方统计数据
World Bank: 世界银行,有统计数据库
OCED:财经数据库

国内数据源

综合数据库类:Wind、巨灵、国泰安、高校财经数据库、中国资讯行、CEIC全球经济数据库
阿里云:api数据市场,含金融api
数粮:数据交易平台,有各行业api
新浪财经:财经数据
统计局:宏观数据
Tushare:免费财经数据接口
比如,开盘价,收盘价,成交价,成交量,超卖,超卖等等这些交易的基本概念,要是不知道的自己去问度娘了。这里不再复述了。

来源网络的上的一张概况图

image.png

基本构思

量化系统要解决的问题


1.jpg

环境搭建

框架目前有很多,我尝试了几个,最终选了backtrader。之所以选这个,好多代码要自己实现,这样的框架比较自由,除了用再股票上,其他的比如股指,期货,反正类似交易这种的都能根据实际情况自己实现想要的功能。
这里推荐window环境安装,整体比较顺畅。
第一步:安装anaconda(里面已经有numpy,pandas,matpoltlib等)

  • 进入Anaconda的官网进行下载
  • 选择想下载的Python版本,这里我们选择的是Python3.6
  • 选择你的操作系统和位数,这里我们选择的是Windows64位
  • 然后点击Download按钮就开始下载了
  • 下一步下一步~完事

第二步:安装财经数据接口(我用的tushare)

  • 在开始菜单找到 Anaconda Powershell Prompt
  • 进入命令行模式
  • 执行pip命令安装tushare : pip install --upgrade tushare
    第三步:安装backtrader
  • 在开始菜单找到 Anaconda Powershell Prompt
  • 进入命令行模式
  • 执行pip命令安装backtrader: pip install --upgrade backtrader

环境测试

测试数据获取

# -*- coding: utf-8 -*-
"""
测试模块
"""
#############################################################
#import
#############################################################
import tushare

if __name__ == '__main__':
    print(tushare.__version__)

如果输出版本号就说明正常了。

测试backtrader

# -*- coding: utf-8 -*-
"""
测试模块
"""
#############################################################
#import
#############################################################
from __future__ import (absolute_import, division, print_function,
                        unicode_literals)

import backtrader as bt

if __name__ == '__main__':
    cerebro = bt.Cerebro()
    cerebro.broker.setcash(100000.0)

    print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())

    cerebro.run()

    print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())

会输出Final Portfolio Value: 100000.00,标识正常运作

项目计划

目的:
1 选股:每日通过自定义的策略,选出推一些可以购买的股票
2 买卖:通过策略判断是否已经到了买和卖点
3 回测:通过对历史数据的回测,达到策略调整和优化
目录:


1.jpg

后面围绕着自己想构建的量化系统,计划每天学一些相关的知识。计划从pandas和backtrader开始。pandas会整理一些使用遇到问题解决的方法,backtrader晚上资料不多,准备读官方的英文文档,逐步实践。

自己逐步实践整理

第一弹:量化交易交易回测框架Backtrader初识
第二弹:量化交易回测框架Backtrader策略Strategy
第三弹:量化交易回测框架Backtrader给策略增加买卖逻辑
第四弹:量化交易回测框架Backtrader给策略增加买卖手续费
第五弹:量化交易回测框架Backtrader使用框架的Sizers和自定义参数
第六弹:量化交易回测框架Backtrader使用框架的技术指标(indicators)
第七弹:量化交易回测框架Backtrader使用plot画图
第八弹:量化交易回测框架Backtrader使用optstrategy优化

你可能感兴趣的:(业余学习量化交易在股票中的应用(基础))