1、量化交易简介
1.2 量化交易(投资)分类
- 趋势性交易:适合主观交易高手、技术指标,很少编程—— [金融专业出生]
- 期货CTA
-
市场中性 (量化分析):量化交易人员,alpha因子,超额收益—— [计算机专业出生,擅长编程、机器学习技术、数据挖掘等]
- Alpha 策略
- 对冲
- 量化选股、择时
- 统计套利
- Alpha 策略
- 高频交易—— [非常擅长算法编程,c/c++ 做交易]
- 程序化交易
金融产品以及衍生品投资策略:
- 股票:市场中性,少量趋势
- 期货:趋势,少量市场中性
研究流程:
获取数据 数据挖掘 构建策略 策略回测 策略分析 模拟交易 实盘交易
2、量化回测框架介绍
ricequant, joinquant —— 数据质量不好,指标不完整;策略在远端服务器,一般在本地运行,不给别人看的
米筐提供:策略研究、历史回测、模拟交易、米筐数据(质量不是很好)
2.2 策略运行流程
- 初始运行信息
- 起始日期:回测区间(5~10年)
- 初始资金:有多少钱用于策略投资
- 回测频率(日,分,市场中性周期更长)
- 编写策略逻辑
- 运行顺序
都有一个context参数,全局变量,用于传参 - 策略结果分析
2.3 数据获取接口
数据获取API、回测交易API
- 数据获取:指定行业、板块股票列表
- index_components("")
- history_bars - 指定股票合约历史数据(行情数据、交易信息
- history_bar(order_book_id, bar_count, frequency, fields=, ...) 不能在init中调用
- 把频率改成1m, 回测频率必须为分钟回测
- his = history_bars(context.s1, 5, '1m', ['open','close'])
- bar_dict对象也可以获取行情数据
-
get_fundamentals - 查询财务数据(基本面数据、公司数据)
- 回测的时候主要拿来去选股
-
q = query(fundamentals.eod_derivative_indicator.pe_ratio)
过滤指标条件:- query().filter:过滤大小
- query().order_by:排序
- query().limit():限制数量
- fundamentals.stockcode.in_():在指定的股票池当中过滤
- 按 月、周 获取:scheduler 定时器
- 必须在init当中使用
- scheduler.run_daily - 天
- scheduler.run_weekly - 周
- scheduler.run_monthly - 月
- scheduler.run_monthly(get_data, tradingday=1)
- def get_data(context, bar_dict):
2.4 回测交易接口
- 交易逻辑
2.5 策略评价指标
- 年化收益:正常在15~30%较好
- 最大回撤:最好不超过30%
- 夏普比率:1.5以上较好