用Python编写的交易平台Degiro的非官方API

degiroapi的Python项目详细描述


德吉罗阿皮

一个用Python编写的交易平台Degiro的非官方API

入门

安装

pip install degiroapi

依赖性

^{pr2}$

进口

import degiroapi
from degiroapi.product import Product
from degiroapi.order import Order
from degiroapi.utils import pretty_json

登录您的帐户

degiro = degiroapi.DeGiro()
degiro.login("username", "password")

注销

degiro.logout()

可用功能

  • 登录
  • 注销
  • 获取数据
  • 搜索产品
  • 产品信息
  • 交易
  • 命令
  • 删除订单U
  • 实时价格
  • 获取库存清单
  • 买单
  • 卖方订单

获取数据

打印您当前的cach基金:

cashfunds = degiro.getdata(degiroapi.Data.Type.CASHFUNDS)
for data in cashfunds:
    print(data)

打印当前公文包时,参数True筛选出大小为0的产品,False或no参数显示全部:

portfolio = degiro.getdata(degiroapi.Data.Type.PORTFOLIO, True)
for data in portfolio:
    print(data)

搜索产品

搜索产品:

products = degiro.search_products('Pfizer')
print(Product(products[0]).id)

产品信息

正在打印指定产品ID的信息:

info = degiro.product_info(331823)
print(info["id"], info["name"], info["currency"], info["closePrice"])

交易

打印给定时间间隔内的事务:

from datetime import datetime, timedelta

transactions = degiro.transactions(datetime(2019, 1, 1), datetime.now())
print(pretty_json(transactions))

命令

打印订单历史记录(最长时间跨度为90天) 参数为True时,此函数只返回未结订单

from datetime import datetime, timedelta

orders = degiro.orders(datetime.now() - timedelta(days=90), datetime.now())
print(pretty_json(orders))

orders = degiro.orders(datetime.now() - timedelta(days=90), datetime.now(), True)
print(pretty_json(orders))

删除订单

删除订单ID为的未结订单

orders = degiro.orders(datetime.now() - timedelta(days=1), datetime.now(), True)
degiro.delete_order(orders[0]['orderId'])
degiro.delete_order("f278d56f-eaa0-4dc7-b067-45c6b4b3d74f")

实时价格

获取股票的实时价格和历史数据:

products = degiro.search_products('nrz')
# Interval can be set to One_Day, One_Week, One_Month, Three_Months, Six_Months, One_Year, Three_Years, Five_Years, Max
realprice = degiro.real_time_price(Product(products[0]).id, degiroapi.Interval.Type.One_Day)

# getting the real time price
print(realprice[0]['data']['lastPrice'])
print(pretty_json(realprice[0]['data']))

# getting historical data
print(realprice[1]['data'])

获取库存清单

获取标准普尔500指数股票的符号:

sp5symbols = []
products = degiro.get_stock_list(14, 846)
for product in products:
    sp5symbols.append(Product(product).symbol)

得到德国30支股票的符号:

daxsymbols = []
products = degiro.get_stock_list(6, 906)
for product in products:
    daxsymbols.append(Product(product).symbol)

买单

下采购订单取决于订单类型:

限价指令

你必须设置一个订单执行的限价。 arguments:订单类型、产品id、执行时间类型(1表示“每日有效”,3表示无限、大小、限制(限价)

degiro.buyorder(Order.Type.LIMIT, Product(products[0]).id, 3, 1, 30)

止损指令

当达到止损价时设置一个限价单(不超过止损价的限额买入): arguments:订单类型、产品id、执行时间类型(1表示“每日有效”,或3表示“无限”)、大小、限制(限价)、止损(止损价)

degiro.buyorder(Order.Type.STOPLIMIT, Product(products[0]).id, 3, 1, 38, 38)

市场秩序

按市价购买: arguments:订单类型、产品id、执行时间类型(1表示“每天有效”,3表示“无限”),大小

degiro.buyorder(Order.Type.MARKET, Product(products[0]).id, 3, 1)

止损令

止损价格必须高于当前价格,当当前价格达到止损价格时,下订单: arguments:订单类型、产品id、执行时间类型(1表示“每天有效”,3表示“无限”),大小

degiro.buyorder(Order.Type.STOPLOSS, Product(products[0]).id, 3, 1, None, 38)

卖方订单

下销售订单取决于订单类型: 相当于采购订单:

^{pr21}$
degiro.sellorder(Order.Type.STOPLIMIT, Product(products[0]).id, 3, 1, 37, 38)
degiro.sellorder(Order.Type.MARKET, Product(products[0]).id, 3, 1)
degiro.sellorder(Order.Type.STOPLOSS, Product(products[0]).id, 3, 1, None, 38)

使用

有关文档化的示例,请参见examples.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ws-consumer服务地址中的java动态属性   java如何比较整数列表,然后按升序排序?   javascript我正在使用java脚本调用一个函数,但它没有调用代码下面的方法,也没有调用secretitnames()函数   在文本窗格中多次使用Java insertIcon图标   JavaMSAL安卓。AuthenticationActivity完成,但用于身份验证请求的线程池线程仍处于等待状态   if语句中的java多范围比较   java toString()表示输出   java如何在jcstrest测试中生成指令重新排序   java我怎样才能运行它?   web应用程序中使用Hibernate和Spring的java问题   如何将字符串数据写入Java文本文件   如何在java命令提示符下运行已签名的jar文件?   java从我的菜单调用RCP应用程序   java如何等待Canvas/GraphicsContext完成任务,然后再继续执行代码块?