返回首页
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
当前位置: 主页 > 股票程序化交易 >

股票程序化交易(三)

时间:2016-04-07 09:07来源:未知 作者:杨清婉 点击:
此篇在 股票程序化交易初探 的基础上,做了一个程序化交易框架 easyquant 开源在 github 上。我们简单介绍一下: 交易模块 easytrader 支持 华泰、佣金宝、银河、雪球模拟盘。 其中银河支持 Python3 / Python2。支持基金的分拆、赎回、合并。 行情模块 easyq

此篇在股票程序化交易初探的基础上,做了一个程序化交易框架 easyquant 开源在 github 上。我们简单介绍一下:

  交易模块

  easytrader

  支持 华泰、佣金宝、银河、雪球模拟盘。

  其中银河支持 Python3 / Python2。支持基金的分拆、赎回、合并。

  行情模块

  easyquotation

  支持leverfun 、腾讯财经、新浪的免费十档、集思路的分级基金以及相关套利接口。

  允许同时使用多个行情推送来源。

  允许自定义行情来源、行情推送时间。

  整个框架需要 Python 3.5+,因为只支持Python 3.5+

  策略

  以下是一个简单的策略定义

  引入策略模板

  from easyquant import StrategyTemplate

  定义策略类

  class Strategy(StrategyTemplate):

  name = 'Hello World' # 定义策略名字

  # 策略函数,收到行情推送后会自动调用

  def strategy(self, event):

  """:param event event.data 为所有股票行情的字典,结构如下

  {'162411':

  {'ask1': '0.493',

  'ask1_volume': '75500',

  'ask2': '0.494',

  ...

  'bid1': 0.492,

  'bid1_volume': 10765200,

  ....

  'buy': 0.492,

  'close': 0.499,

  'high': 0.494,

  'low': 0.489,

  'name': '华宝油气',

  'now': 0.493,

  'open': '0.490,

  'sell': '0.493',

  'turnover': 420004912,

  'volume': 206390073.351}}

  """

  # 使用 self.user 来操作账户,用法见 easytrader 用法

  # 使用 self.log.info('message') 来打印你所需要的 log

  self.log.info('策略1触发')

  self.log.info('行情数据: 万科价格: %s' % event.data['000002'])

  self.log.info('检查持仓')

  self.log.info(self.user.balance)

  # 买入

  self.user.buy('162411', price=0.444, amount=100)

  # 卖出

  self.user.sell('162411', price=0.444, amount=100)

  运行效果

  效果

  启动主引擎

  [2015-12-28 14:05:36.649599] INFO: main_engine.py: 加载策略: 策略1_Demo

  [2015-12-28 14:05:36.650250] INFO: main_engine.py: 加载策略: 策略2_Demo

  [2015-12-28 14:05:36.650713] INFO: main_engine.py: 加载策略完毕

  触发每秒定时计时器

  策略1触发

  行情数据: 万科价格: {'ask4': 0.0, 'ask1': 0.0, 'bid2_volume': 0, 'bid3': 0.0, 'bid5_volume': 0, 'name': '万 科A', 'ask4_volume': 0, 'close': 24.43, 'volume': 0.0, 'ask3_volume': 0, 'bid5': 0.0, 'bid1': 0.0, 'ask2': 0.0, 'bid4_volume': 0, 'high': 0.0, 'ask5': 0.0, 'bid4': 0.0, 'ask5_volume': 0, 'turnover': 0, 'ask2_volume': 0, 'sell': 0.0, 'open': 0.0, 'bid3_volume': 0, 'bid2': 0.0, 'bid1_volume': 0, 'buy': 0.0, 'ask3': 0.0, 'low': 0.0, 'now': 0.0, 'ask1_volume': 0}

  检查持仓

  [{'asset_balance': 2758.98, 'market_value': 2740.9, 'enable_balance': 18.08, 'current_balance': 18.08, 'money_name': '人民币', 'fetch_balance': 18.08, 'money_type': '0'}]

  策略2触发

  行情数据: 华宝油气 {'ask4': 0.5, 'ask1': 0.497, 'bid2_volume': 4594100, 'bid3': 0.494, 'bid5_volume': 851300, 'name': '华宝油气', 'ask4_volume': 15650706, 'close': 0.5, 'volume': 138149552.799, 'ask3_volume': 19611307, 'bid5': 0.492, 'bid1': 0.496, 'ask2': 0.498, 'bid4_volume': 313700, 'high': 0.501, 'ask5': 0.501, 'bid4': 0.493, 'ask5_volume': 10108300, 'turnover': 277462973, 'ask2_volume': 10747730, 'sell': 0.497, 'open': 0.5, 'bid3_volume': 997500, 'bid2': 0.495, 'bid1_volume': 5507952, 'buy': 0.496, 'ask3': 0.499, 'low': 0.495, 'now': 0.497, 'ask1_volume': 14948518}

  检查持仓

  [{'asset_balance': 2758.98, 'market_value': 2740.9, 'enable_balance': 18.08, 'current_balance': 18.08, 'money_name': '人民币', 'fetch_balance': 18.08, 'money_type': '0'}]

  结尾

  更多详细信息可以参见 easyquant 的文档

 
(责任编辑:admin)
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
------分隔线----------------------------
云量化商城
如果您会开发策略,请进!大量项目等待与您合作!
推荐内容
量化投资培训