用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
- 项目
标签: