python - 下期权订单
问题描述
我是 python 和编程的新手,但我正在学习。我正在尝试通过 python 发送订单以获取 TWS 的选项。我不断收到此错误消息
“服务器错误:服务器响应:错误,回溯(最近一次调用最后一次):”
我试图下一个股票订单,但它通过了,但没有用于期权
def create_contract(a,b,c,d):
contract = Contract()
contract.symbol = '%a'
contract.secType = "OPT"
contract.exchange = "SMART"
contract.order_exchange = "SMART"
contract.currency = "USD"
contract.ContractMonth = b
contract.strike = c
contract.right = '%d'
contract.multiplier = "100"
return contract
def create_order(order_type, quantity, action):
order = Order()
order.m_orderType = order_type
order.m_totalQuantity = quantity
order.m_action = action
return order
if __name__ == "__main__":
tws_conn = Connection.create("127.0.0.1", port=7495)
tws_conn.connect()
tws_conn.register(error_handler, 'Error')
tws_conn.registerAll(reply_handler)
order_id = 1
goog_contract = create_contract(tic,hup.cell(2,3).value,hup.cell(2,4).value,hup.cell(2,13).value)
goog_order = create_order('MKT', 1, 'BUY')
tws_conn.placeOrder(order_id, goog_contract, goog_order)
我希望看到期权订单通过 TWS。我也很想看到一些关于 placeorder 参数应该如何具有的适当示例。
解决方案
from ib_insync import *
util.startLoop()
ib=IB()
ib.connect("127.0.0.1", 7497, clientId=13)
contract=Option("SPY","20191016", 280,"P","SMART")
ib.qualifyContracts(contract)
order=MarketOrder("Buy",2)
trade=ib.placeOrder(contract,order)
trade
此代码将允许。2019 年 10 月 19 日到期的 280 罢工,您购买 2 次看跌期权
推荐阅读
- python - 在数据框中检测数据输入错误的问题
- arrays - 有没有一种方法可以重新计算 syms 变量并将其插入 Matlab 中的数组中?
- java - java - 如何在java android中为Gridview的父类BaseAdapter实现viewBinding?
- r - 在 R 中加载 GEOquery
- java - 如何让getMapping显示数据spring boot
- c++ - 如何将 jsoncpp 与 cmake 链接
- masstransit - 阅读消息时未设置带有quartz.net对象引用的大众运输调度程序
- azure-application-insights - 如何使用 serilog 的应用程序洞察接收器设置最小日志级别
- javascript - 如何使用填充使弹性元素更大?
- javascript - Javascript阻止HTML在画布上绘图