Questrade API配售订单

2024-03-28 12:31:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这里没有问题,但我想用Questrade API下订单。这是到目前为止我的python脚本:

import requests

uri = "https://api01.iq.questrade.com/v1/accounts/<id>/orders"

headers = {'Authorization': 'Bearer <my_bearer>'}

r = requests.post(uri, headers=headers, accountNumber=31455565, symbolId=8049, quantity=10, icebergQuantity=1, limitPrice=10, isAllOrNone=True, isAnonymous=False, timeInForce="GoodTillCanceled", primaryRoute="Auto", secondaryRoute="Auto", orderType="Limit", action="Buy")

response = r.json()

print (response)

以下是Questrade的网页请求示例:

http://www.questrade.com/api/documentation/rest-operations/order-calls/accounts-id-orders

这是我得到的错误:TypeError:request()得到了意外的关键字参数“quantity” 任何帮助将不胜感激。谢谢!在


Tags: 订单脚本comapiidautoresponseuri
2条回答

我创建了一个简单的python包装器来访问questrade API。https://github.com/antoineviscardi/questradeapi

使用它你会得到这样的结果:

import questradeapi as qapi

sess = qapi.Session(<your_bearer>)
sess.post_order(31455565, 8049, 10, 1, 10, None, True, False, "Limit", 
"GoodTillCanceled", "Buy", "Auto", "Auto)

请求的所有参数(accountNumbersymbolIdquantity,…)都是Questrade API的参数,而不是请求的post方法的参数。您需要在请求的主体中以json格式设置它们:http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests

import requests

uri = "https://api01.iq.questrade.com/v1/accounts/<id>/orders"
headers = {'Authorization': 'Bearer <my_bearer>'}

payload = {'accountNumber': 31455565, 'symbolId': 8049, 'quantity': 10, 'icebergQuantity': 1, 'limitPrice': 10, 'isAllOrNone': True, 'isAnonymous': False, 'timeInForce': "GoodTillCanceled", 'primaryRoute': "Auto", 'secondaryRoute': "Auto", 'orderType': "Limit", 'action': "Buy"}
r = requests.post(uri, headers=headers, json=payload)

response = r.json()

print (response)

相关问题 更多 >