掘金量化平台初探 python
量化分析包括:策略研发、策略回测、仿真交易、实盘交易、实盘盘后优化。
主要想使用掘金的平台来做策略回测和仿真交易两个环节的功能。
对比了下主流的云平台JoinQuant、Uquant、Ricequant缺点是不落地,所有策略在云平台上跑,编程体验也不如本地平台。pyalgotrade等开源本地平台原本都是基于美股的,即使改成A股回测也只能做一些粗糙的的策略回测,没办法把策略做细致,比如股价的前后复权,期货对冲和止盈止损。最终选择尝试一下掘金的免费版个人的平台进行回测。
DEMO源码分析
1 - 导入SDK
自己写的策略类应继承自StrategyBase基类,
并以方法重写的方式满足策略开发需求。
# !/usr/bin/env python
# -*- coding: utf-8 -*-
from gmsdk.api import StrategyBase
from gmsdk import to_dict
2 - 编写策略
MyStrategy继承StrategyBase类,on_bar或on_tick是必须重写的类函数。
class MyStrategy(StrategyBase):
def __init__(self, *args, **kwargs):
super(MyStrategy, self).__init__(*args, **kwargs)
self.oc = True
def on_bar(self, bar):
if self.oc:
# 开多仓 买入1000股 sec_id
self.open_long(bar.exchange, bar.sec_id, 0, 1000)
else:
# 平多仓 卖出 1000股 sec_id
self.close_long(bar.exchange, bar.sec_id, 0, 1000)
self.oc = not self.oc
# 回测结束事件,在回测结束时触发
def on_backtest_finish(self, indicator): #indicator为回测的绩效
print('backtest finished', to_dict(indicator))
3 - 配置和运行策略
if __name__ == '__main__':
# 初始化策略配置
mystrategy = MyStr