Ai
1 Star 1 Fork 3

云金杞/ib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
messagetools.py 1.48 KB
一键复制 编辑 原始数据 按行查看 历史
云金杞 提交于 2023-04-03 10:45 +08:00 . copy from ibpy2
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import (absolute_import, division, print_function,
unicode_literals)
from functools import partial, wraps
from ib.ext.TickType import TickType
##
# To programmatically generate the TickType filters, use something like this sketch:
#
# vs = [(name, value) for name, value in [(name, getattr(TickType, name))
# for name in dir(TickType)] if type(value)==int]
# titlevalues = [(title[0].lower()+title[1:], value)
# for title in [''.join([part.title() for part in name.split('_')])
# for name, value in vs]]
def messageFilter(function, predicate=lambda msg:True):
@wraps(function)
def inner(msg):
if predicate(msg):
return function(msg)
return inner
askSizeFilter = partial(messageFilter, predicate=lambda msg:msg.field==TickType.ASK_SIZE)
askPriceFilter = partial(messageFilter, predicate=lambda msg:msg.field==TickType.ASK)
bidSizeFilter = partial(messageFilter, predicate=lambda msg:msg.field==TickType.BID_SIZE)
bidPriceFilter = partial(messageFilter, predicate=lambda msg:msg.field==TickType.BID)
lastSizeFilter = partial(messageFilter, predicate=lambda msg:msg.field==TickType.LAST_SIZE)
lastPriceFilter = partial(messageFilter, predicate=lambda msg:msg.field==TickType.LAST)
# We don't need functions for filtering by message type because that's
# what the reader/receiver/dispatcher already does.
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yunjinqi/ib.git
git@gitee.com:yunjinqi/ib.git
yunjinqi
ib
ib
master

搜索帮助