续前贴,在前面的基础上弄了一个简单的程序化交易框架 easyquant 开源在 github 上,欢迎大家 star & fork。下面是简单介绍:

交易模块 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 的文档

如果你觉得我的文章不错的话,(≧﹏ ≦)

基于python的股票程序化交易软件_程序化交易(三):基于 Python 的股票程序化交易/量化框架 easyquant...相关推荐

  1. 会python的人多吗_为什么很多人喜欢 Python?

    对于这个问题,汇智妹为大家请来了我们汇智动力的技术大咖--贵哥,贵哥从事近20年的软件开发.测试工作,今天就让他来为我们谈谈Python这门计算机语言. 福贵哥作为一个多年在IT界摸爬滚打的老兵,因项 ...

  2. python泰坦尼克号生存预测论文_泰坦尼克号生存率预测(基于Python)

    背景:泰坦尼克号(RMS Titanic)是英国白星航运公司下辖的一艘奥林匹克级邮轮,于1909年3月31日在爱尔兰贝尔法斯特港的哈兰德与沃尔夫造船厂动工建造.她是当时世界上体积最庞大.内部设施最豪华 ...

  3. python复杂网络点图可视化_数据分析:R与Python怎么选?

    作者介绍 知春里@伟仔 不知名数据科学家. 持续写<数据分析>和<数据产品>的系列文章,欢迎关注. 01 选R还是Python? "球鞋是买阿迪还是买耐克?" ...

  4. python 结构体数组 定义_一篇文章弄懂Python中所有数组数据类型

    前言 数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种"数组"类型的实现. list tuple array.array str bytes bytearr ...

  5. python从基础到进阶_无需编程基础,Python从入门到进阶大法

    deffactorial(n): ifn==0: return1 else: returnn * factorial(n-1) 13. 框架与栈调用 Python代码载入框架,框架位于栈中. 函数与参 ...

  6. python做自动化测试的优点_乐搏讲自动化测试-python语言特点及优缺点(5)

    相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...

  7. 32岁了学python来的及吗_现在27岁学python来得及吗?

    答案是肯定的,27岁学习Python语言是来得及的. 学习Python语言是当前一个比较好的选择,原因有以下几点: 第一,Python语言有健全的生态.Python语言虽然在最近几年被广泛关注,但是P ...

  8. python手机编译器可以干什么_世界上最好的Python编辑器是什么?

    在这种情况下,你需要使用一个 IDE(集成开发环境)或专用的代码编辑器.由于 Python 是最流行的编程语言之一,IDE 的选择也非常多.那么问题来了:「究竟什么样的 IDE 最适合 Python? ...

  9. python人工智能方向怎么学_人工智能方向需要学习python或是深度学习呢?

    要回答这个问题,首先,我们先了解一下什么是Python和深度学习,各用于什么领域?了解了这两个问题,对于人工智能方向是需要学什么?先学什么?都会有一台清晰的答案. 一.Python Python是一种 ...

最新文章

  1. Github火爆的项目,用聪明的方式学习Vim!
  2. 对使用Jolt调用Tuxedo的一个简单的封装
  3. “停课不停学”,线上填报如何逼疯老师
  4. mycncart操作使用教程 - 横幅广告
  5. GitHub 建立远程仓库
  6. EventBus使用实例,观察者模式
  7. python实现学生成绩聚类分析_聚类分析Python实现
  8. android开源2016_Google 2016年开源版本浏览
  9. 60秒计时器的仿真电路_DS1302的电子万年历,时间、闹钟可调,带温度农历显示,原理图、仿真和代码...
  10. python连接mysql代码_Python连接MySQL的实例代码
  11. java原码、补码、反码总结
  12. 《Unix传奇》:众神的创世记
  13. HTML图片动画特效
  14. 论文笔记 Question Answering over Freebase via Attentive RNN with Similarity Matrix based CNN
  15. 针式 PKM 个人知识管理软件 帮助
  16. 教你用OpenCV 和 Python给证件照换底色(蓝底 <->红底->白底)
  17. 自动化代码审查平台: 基于Docker Compose整合Jenkins + SonarQube
  18. android虚拟内置sd卡,安卓虚拟器bluestacks虚拟sd卡打开方法【图解】
  19. CSDN开发云-优雅使用云容器服务
  20. 太戈编程 1072. 优惠促销 答案及讲解

热门文章

  1. 模拟 python用redis有序集合实现手机销量排名
  2. 同时使用有线网上内网、无线网上外网
  3. matlab normpdf用法,matlab-ksdensity用法
  4. Windows11怎么打开设备管理器
  5. 行业分析| 为什么uni-app在音视频领域这么火?
  6. [RK3568 Android11] 开发之系统动态隐藏导航栏(三)
  7. 德国康巴赫牵手德国Carl Mertens,力争全球“锅具之王”
  8. 在Excel中创建汇总
  9. SpringBoot + Spring Security 学习笔记(一)自定义基本使用及个性化登录配置
  10. 如何用雷达触控系统代替油墨导电系统?