Merge pull request #2087 from MarvelousPeach/bitstamp_gateway

Bitstamp gateway
This commit is contained in:
vn.py 2019-09-11 19:37:34 +08:00 committed by GitHub
commit 27099ebb7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 1294 additions and 5 deletions

View File

@ -14,7 +14,7 @@
vn.py是一套基于Python的开源量化交易系统开发框架于2015年1月正式发布在开源社区5年持续不断的贡献下一步步成长为全功能量化交易平台目前国内外金融机构用户已经超过300家包括私募基金、证券自营和资管、期货资管和子公司、高校研究机构、自营交易公司、交易所、Token Fund等。 vn.py是一套基于Python的开源量化交易系统开发框架于2015年1月正式发布在开源社区5年持续不断的贡献下一步步成长为全功能量化交易平台目前国内外金融机构用户已经超过300家包括私募基金、证券自营和资管、期货资管和子公司、高校研究机构、自营交易公司、交易所、Token Fund等。
**傻瓜式入门教程**已经在官方微信公众号[**vnpy-community**]全新上线,新手使用过程中有任何疑问看这个解决是最快的,后续会不断增加进阶经验、发布公告、活动报名等功能,请扫描下方二维码关注 全新的《vn.py全实战进阶》在线课程已经在官方微信公众号[**vnpy-community**]上线50节内容覆盖从策略设计开发、参数回测优化到最终实盘自动交易的完整CTA量化业务流程。购买请扫描下方二维码关注后点击菜单栏的【进阶课程】按钮即可
<p align="center"> <p align="center">
<img src ="https://vnpy.oss-cn-shanghai.aliyuncs.com/vnpy_qr.jpg"/> <img src ="https://vnpy.oss-cn-shanghai.aliyuncs.com/vnpy_qr.jpg"/>

View File

@ -0,0 +1 @@
from .bitstamp_gateway import BitstampGateway

File diff suppressed because it is too large Load Diff

View File

@ -68,11 +68,14 @@ EXCHANGE_VT2IB = {
EXCHANGE_IB2VT = {v: k for k, v in EXCHANGE_VT2IB.items()} EXCHANGE_IB2VT = {v: k for k, v in EXCHANGE_VT2IB.items()}
STATUS_IB2VT = { STATUS_IB2VT = {
"Submitted": Status.NOTTRADED, "ApiPending": Status.SUBMITTING,
"Filled": Status.ALLTRADED,
"Cancelled": Status.CANCELLED,
"PendingSubmit": Status.SUBMITTING, "PendingSubmit": Status.SUBMITTING,
"PreSubmitted": Status.NOTTRADED, "PreSubmitted": Status.NOTTRADED,
"Submitted": Status.NOTTRADED,
"ApiCancelled": Status.CANCELLED,
"Cancelled": Status.CANCELLED,
"Filled": Status.ALLTRADED,
"Inactive": Status.REJECTED,
} }
PRODUCT_VT2IB = { PRODUCT_VT2IB = {
@ -357,9 +360,13 @@ class IbApi(EWrapper):
orderid = str(orderId) orderid = str(orderId)
order = self.orders.get(orderid, None) order = self.orders.get(orderid, None)
order.status = STATUS_IB2VT[status]
order.traded = filled order.traded = filled
# To filter PendingCancel status
order_status = STATUS_IB2VT.get(status, None)
if order_status:
order.status = order_status
self.gateway.on_order(copy(order)) self.gateway.on_order(copy(order))
def openOrder( # pylint: disable=invalid-name def openOrder( # pylint: disable=invalid-name