
用Python写了个简单的股票量化交易框架
交易
支持 佣金宝 和 华泰 两家券商的自动登录和买卖。
行情
使用的是新浪的免费行情,大概一秒钟推送一次 所有的 3000 多只股票的实时数据。
也可以自己引入 tushare 这个免费的财经信息获取包 或者 引入 wind
策略
其中的事件驱动引擎 和 策略模板 是模仿的 vnpy 的框架
编写非常简单,因为功能比较有限。可以查看下面的 `策略_Demo1`
```
# 引入策略模板
from easyquant import StrategyTemplate
class Strategy(StrategyTemplate):
# 主要实现下面这个 `strategy` 函数就可以了
def strategy(self, event):
""":param event event.data 为所有股票的信息,结构如下
{'162411':
{'ask1': '0.493',
'ask1_volume': '75500',
'ask2': '0.494',
'ask2_volume': '7699281',
'ask3': '0.495',
'ask3_volume': '2262666',
'ask4': '0.496',
'ask4_volume': '1579300',
'ask5': '0.497',
'ask5_volume': '901600',
'bid1': '0.492',
'bid1_volume': '10765200',
'bid2': '0.491',
'bid2_volume': '9031600',
'bid3': '0.490',
'bid3_volume': '16784100',
'bid4': '0.489',
'bid4_volume': '10049000',
'bid5': '0.488',
'bid5_volume': '3572800',
'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 来操作账户,使用 self.user.buy() / self.user.sell() 来买卖,用法同 easytrader 用法
# 使用 self.log.info('message') 来打印你所需要的 log
print('\n\n策略1触发')
print('行情数据: 万科价格: ', event.data['000002'])
print('检查持仓')
print(self.user.balance)
print('\n')
```
Demo
运行之后基本是下面这样
```
启动主引擎
[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'}]
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在神经网络模型设计中,“隐藏层层数” 是决定模型能力与效率的核心参数之一 —— 层数过少,模型可能 “欠拟合”(无法捕捉数据 ...
2025-10-14在数字化浪潮中,数据分析师已成为企业 “从数据中挖掘价值” 的核心角色 —— 他们既要能从海量数据中提取有效信息,又要能将分 ...
2025-10-14在企业数据驱动的实践中,“指标混乱” 是最常见的痛点:运营部门说 “复购率 15%”,产品部门说 “复购率 8%”,实则是两者对 ...
2025-10-14在手游行业,“次日留存率” 是衡量一款游戏生死的 “第一道关卡”—— 它不仅反映了玩家对游戏的初始接受度,更直接决定了后续 ...
2025-10-13分库分表,为何而生? 在信息技术发展的早期阶段,数据量相对较小,业务逻辑也较为简单,单库单表的数据库架构就能够满足大多数 ...
2025-10-13在企业数字化转型过程中,“数据孤岛” 是普遍面临的痛点:用户数据散落在 APP 日志、注册系统、客服记录中,订单数据分散在交易 ...
2025-10-13在数字化时代,用户的每一次行为 —— 从电商平台的 “浏览→加购→购买”,到视频 APP 的 “打开→搜索→观看→收藏”,再到银 ...
2025-10-11在机器学习建模流程中,“特征重要性分析” 是连接 “数据” 与 “业务” 的关键桥梁 —— 它不仅能帮我们筛选冗余特征、提升模 ...
2025-10-11在企业的数据体系中,未经分类的数据如同 “杂乱无章的仓库”—— 用户行为日志、订单记录、商品信息混杂存储,CDA(Certified D ...
2025-10-11在 SQL Server 数据库操作中,“数据类型转换” 是高频需求 —— 无论是将字符串格式的日期转为datetime用于筛选,还是将数值转 ...
2025-10-10在科研攻关、工业优化、产品开发中,正交试验(Orthogonal Experiment)因 “用少量试验覆盖多因素多水平组合” 的高效性,成为 ...
2025-10-10在企业数据量从 “GB 级” 迈向 “PB 级” 的过程中,“数据混乱” 的痛点逐渐从 “隐性问题” 变为 “显性瓶颈”:各部门数据口 ...
2025-10-10在深度学习中,“模型如何从错误中学习” 是最关键的问题 —— 而损失函数与反向传播正是回答这一问题的核心技术:损失函数负责 ...
2025-10-09本文将从 “检验本质” 切入,拆解两种方法的核心适用条件、场景边界与实战选择逻辑,结合医学、工业、教育领域的案例,让你明确 ...
2025-10-09在 CDA 数据分析师的日常工作中,常会遇到这样的困惑:某电商平台 11 月 GMV 同比增长 20%,但究竟是 “长期趋势自然增长”,还 ...
2025-10-09Pandas 选取特定值所在行:6 类核心方法与实战指南 在使用 pandas 处理结构化数据时,“选取特定值所在的行” 是最高频的操作之 ...
2025-09-30球面卷积神经网络(SCNN) 为解决这一痛点,球面卷积神经网络(Spherical Convolutional Neural Network, SCNN) 应运而生。它通 ...
2025-09-30在企业日常运营中,“未来会怎样” 是决策者最关心的问题 —— 电商平台想知道 “下月销量能否达标”,金融机构想预判 “下周股 ...
2025-09-30Excel 能做聚类分析吗?基础方法、进阶技巧与场景边界 在数据分析领域,聚类分析是 “无监督学习” 的核心技术 —— 无需预设分 ...
2025-09-29XGBoost 决策树:原理、优化与工业级实战指南 在机器学习领域,决策树因 “可解释性强、处理非线性关系能力突出” 成为基础模型 ...
2025-09-29