常见的量化交易平台:米筐,BigQuant,优矿,聚宽,掘金。

本文简单介绍其中的米筐量化交易平台。米筐支持Python,Java编写交易策略进行回测。

一、平台使用

1. 注册账号

平台网址:米筐量化平台

平台的帮助文档见网站【支持】页面:

2.  进入界面

打开右上角的【产品——米筐量化协作平台】进入策略编写界面,然后点击【新建策略】的【代码策略】,当然,也可以使用向导策略。

3. 编写策略

在左侧编写策略,点击右侧的【编译策略】

4. 运行回测

编译通过后,点击最右侧的【运行回测】,模拟交易策略的结果。

二、常用函数

1. init()

策略启动运行时首先执行的函数,只执行一次。其中context参数可理解为全局变量,可在各个函数中使用,以传递参数。

# 可以导入常见的numpy,pandas等库,以及米筐自带的talib库# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):# 在context中保存全局变量context.s1 = "000001.XSHE"# 实时打印日志logger.info("RunInfo: {}".format(context.run_info))

2. handle_bar()

股票数据有更新时会自动执行该函数,用于编写量化策略的主要逻辑和触发交易动作。

# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):# 开始编写你的主要的算法逻辑# bar_dict[order_book_id] 可以拿到某个证券的bar信息# context.portfolio 可以拿到现在的投资组合信息# 使用order_shares(id_or_ins, amount)方法进行落单# TODO: 开始编写你的算法吧!order_shares(context.s1, 1000)

3. before_training()

每天策略开始交易前自动触发的函数。具体触发事件取决于交易策略的执行事件。

4. after_training()

每天收盘后组东触发的函数。

5. 交易函数

order_percent():按目前总资产的百分比金额买入或买出。如:

order_percent('000651.SZ', 1)    # 全仓买入格力
order_percent('000651.SZ', 0.5)    # 半仓买入格力order_percent('000651.SZ', -1)    # 清仓格力
order_percent('000651.SZ', -0.5)    # 减半仓格力

order_shares:按若干股(必须是1手的倍数,A股中,1手=100股)的数量交易。如:

order_shares('000651.SZ', 200)    # 买入200股格力
order_shares('000651.SZ', -100)    # 卖出100股格力

order_lots:按若干手的数量交易。如:

order_lots('000651.SZ', 2)    # 买入2手格力
order_lots('000651.SZ', -1)    # 卖出1手股格力

order_value():按金额数量交易。如

order_value('000651.SZ', 100000)    # 买入共1w人民币的格力
order_value('000651.SZ', -100000)    # 卖出共1w人民币的格力
order_value('000651.SZ', 0)    # 清仓格力

其他还有order_target_percent、order_target_portfolio是按当前仓位百分比进行增减仓的函数等。

6. 股票筛选函数

is_st_stock(stock_code):股票是否ST

is_suspend(stock_code):是否停牌

三、策略示例

策略示例摘自李天胜《python量化交易实战》一书。

1. 策略示例1

如果空仓,直接全仓买入茅台股票。

# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
import talib
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):logger.info('init')context.s1 = "600519.XSHG"      # 茅台context.fired = False           # 是否发送了交易命令context.cnt = 1                 # 策略相关函数执行次数# 设置这个策略当中会用到的参数,在策略中可以随时调用,这个策略使用长短均线,我们在这里设定长线和短线的区间,在调试寻找最佳区间的时候只需要在这里进行数值改动context.SHORTPERIOD = 20context.LONGPERIOD = 120def before_trading(context):logger.info('before trading', context.cnt)context.cnt += 1# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):# 开始编写你的主要的算法逻辑context.cnt += 1logger.info('handle_bar', context.cnt)# bar_dict[order_book_id] 可以拿到某个证券的bar信息# context.portfolio 可以拿到现在的投资组合状态信息# 使用order_shares(id_or_ins, amount)方法进行落单# TODO: 开始编写你的算法吧!if not context.fired:order_percent(context.s1, 1)context.fired = True

回测结果:

2. 策略示例2

KDJ金叉全仓买入,KDJ死叉清仓

# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
import talib# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):# 在context中保存全局变量context.s1 = "600519.XSHG"# 实时打印日志logger.info("RunInfo: {}".format(context.run_info))context.SHORTPERIOD = 20    # MA20context.LONGPERIOD = 60     # MA60# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):pass# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):# 开始编写你的主要的算法逻辑# bar_dict[order_book_id] 可以拿到某个证券的bar信息# context.portfolio 可以拿到现在的投资组合信息# 使用order_shares(id_or_ins, amount)方法进行落单# TODO: 开始编写你的算法吧!prices = history_bars(context.s1, context.LONGPERIOD+1, '1d','close')short_avg = talib.SMA(prices, context.SHORTPERIOD)long_avg = talib.SMA(prices, context.LONGPERIOD)plot('short avg', short_avg[-1])plot('long avg', long_avg[-1])# 当前股票持有的仓位cur_position = get_position(context.s1).quantity   # 当前portfolio中现金可以买入多少股     shares = context.portfolio.cash/bar_dict[context.s1].close# 死叉,清仓if (short_avg[-1] - long_avg[-1]) < 0 and (short_avg[-2] - long_avg[-2] > 0) and cur_position > 0:order_target_value(context.s1, 0)# 金叉,加仓if (short_avg[-1] - long_avg[-1]) > 0 and (short_avg[-2] - long_avg[-2] < 0):order_shares(context.s1, shares) # after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):pass

回测结果:

002 常见量化交易平台使用相关推荐

  1. Python量化交易平台开发教程系列7-顶层GUI界面开发(1)

    原创文章,转载请注明出处:用Python的交易员 前言 终于有时间来写第一篇顶层GUI界面开发相关的教程了,之前实在是事情太多,跟各位读者抱个歉. 整合底层接口的各项功能到中层引擎中后,当我们开发顶层 ...

  2. 一文了解量化数据源—常见量化数据源对比选择

    简介 金融数据是量化的基础,没有数据量化就无从下手.随着行业竞争加剧,量化对高质量-更快更全更准数据的要求更高,毕竟搞量化不能输在起跑线上.现在各种量化数据源五花八门,发现很多朋友对这块不是很清楚,个 ...

  3. [转载]Python量化交易平台开发教程系列0-引言

    原文出处:http://vnpy.org/2015/03/04/20150304_Python%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93%E5%B9%B3%E5%8F%B ...

  4. 量化投资必备手册:史上超全量化交易平台汇总

    量化投资必备手册,分享30个量化交易平台给你们,转需,不用谢! 1. 国泰君安量化交易系统 量化交易系统网址:https://quant.gtja.com/ 2. 量化云 量化回测平台:https:/ ...

  5. Python量化交易平台:JQData | API使用文档(转)

    Python量化交易平台:JQData | API使用文档(转) #原文地址:https://www.joinquant.com/help/api/help?name=JQData JQData说明书 ...

  6. Python量化交易平台开发教程系列0-引言

    原创文章,转载请注明出处:用Python的交易员 为什么用Python来开发量化交易平台 目前本人所在的公司一共有三款平台,分别基于C++, C#和Python.其中C#和Python平台都是由交易员 ...

  7. Python量化交易平台开发教程系列4-事件驱动引擎原理和使用

    原创文章,转载请注明出处:用Python的交易员 前言 从这篇开始,后面的教程都会基于Python(终于可以跟C++说再见了). 经过上一篇复杂繁琐的API编译后,我们已经有了一个可以在Python环 ...

  8. 量化投资 | 量化交易平台工具汇总

    量化投资必备手册,分享30个量化交易平台给你们,转需,不用谢! 1. 掘金量化  量化交易系统官方网址:https://www.myquant.cn/ 2.国泰君安量化交易系统 量化交易系统网址:ht ...

  9. 量化交易平台Quantopian学习的笔记(一)

    最近对量化感兴趣,每周末带孩子上辅导班等候时在星巴克记录的一些笔记,记录一下便于以后查阅,一并分享出来希望对大家有帮助. Quantopian量化交易平台主要针对美股,国内也有几个针对A股的,对A股感 ...

最新文章

  1. 闲来无事,总结 Xcode常用快捷键
  2. Jmeter性能测试入门(一)
  3. Android快速阅读依赖的代码,Java Android快速阅读完整文件
  4. 爬虫技术python nutch_python爬虫,学习路径拆解及资源推荐(第三篇:工程化爬虫)...
  5. mysql MHA高可用架构安装
  6. POJ3178 计算几何+DP
  7. 大数据可视化面临哪些挑战
  8. mod_expires和mod_deflate的配置
  9. OFDM中的帧(frame)、符号(symbol)、子载波(subcarriers)、导频(Pilot)、保护间隔(guard)的关系图解以及代码详解--MATLAB
  10. KEGG COMPOUND 数据库
  11. 高效扫频水处理器原理介绍
  12. 细说集线器、交换机和路由器
  13. 由夏时令引起的java世界时间不一致问题
  14. 【python】文件读取写 open的方式with的方式 异常报错处理
  15. 采购系统是如何管理供应商的?
  16. 钉钉桌面版(dingtalk)介绍:支持Linux、Windows和macOS平台
  17. 图解数据分析:从入门到精通系列教程
  18. Python简单写接口
  19. 前端代码规范参考和如何保持前端代码规范
  20. 源中瑞区块链溯源系统,溯源行业生态信息化解决方案

热门文章

  1. win7桌面显示计算机的配置信息,win7电脑界面分区域如何设置?
  2. ghost的使用技巧
  3. 【CSS】<Cascading Style Sheets>CSS常用高级技巧
  4. 拼多多2020秋招【提前批】笔试
  5. AltiumDesigner工具使用
  6. Opencv 读取灰度图像会识别为3通道问题
  7. kdb的基本用法 2
  8. Elasticsearch搜索引擎第十篇-Query DSL详解
  9. 一张图告诉你246个国家最新的无人机法律
  10. 【气象】一键式发布预警信息,关键时刻GIS显身手