python - 算法交易代码中的 except 子句出错
问题描述
from ib.ext.Contract import Contract
from ib.ext.Order import Order
from ib.opt import Connection, message
#from ib.lib.overloading import overloaded
def make_contract(symbol, sec_type, exch, prim_exch, curr):
contract = Contract()
contract.m_symbol = symbol
contract.m_secType = sec_type
contract.m_exchange = exch
contract.m_primaryExch = prim_exch
contract.m_currency = curr
return Contract
def make_order (action, quantity, price = None):
if price is not None:
order = Order()
order.m_orderType = 'LMT'
order.m_totalQuantity = qiantity
order.m_action = action
order.m_lmtPrice = price
else:
order = Order()
order.m_orderType = 'MKT'
order.m_totalQuantity = qiantity
order.m_action = action
return order
#def error_handler(msg):
#print'Server Error: ',msg
#def server_handler(msg):
#print'Server Msg: ',msg.typeName,'-',msg
def main():
conn = Connection.create(port=7496, clientId=100) #clientID's given are 100 or 999
conn.connect()
oid = 1
cont = make_contract('TSLA', 'STK', 'SMART', 'SMART', 'USD')
offer = make_order('BUY', 1) #or('BUY', 1, 200)
conn.placeOrder(oid, cont, offer)
conn.disconnect()
收到此错误并且不知道为什么但是我确定我正确安装了 IBpy 库但如果我错了请纠正我:)....有什么建议吗?:
File "C:\Users\Heraaizon\Desktop\IBPy_Test.py", line 1, in <module>
from ib.ext.Contract import Contract
File "C:\Users\Heraaizon\AppData\Local\Programs\Python\Python37-32\lib\ib\ext\Contract.py", line 9, in <module>
from ib.lib.overloading import overloaded
File "C:\Users\Heraaizon\AppData\Local\Programs\Python\Python37-32\lib\ib\lib\__init__.py", line 239
except (socket.error, ), ex:
^
SyntaxError: invalid syntax
解决方案
该except
子句的语法在 Python 2 和 Python 3 之间发生了变化。
蟒蛇2:
except (socket.error, ), ex:
将在 Python 3 中:
except (socket.error, ) as ex:
您的代码似乎是为 Python 2 编写的。使用 Python 2 运行它或查找代码的更新版本。
推荐阅读
- performance - 如何清空动态数组
- symfony - 如何在没有重复代码的情况下获取 Symfony 5 页面中的当前页面?
- php - PHP - Laravel 获取表格的最后一行
- python - 由两列组成的 Pandas 回归
- php - 多张图片上传PHP限制
- javascript - 有没有办法通过 JS/CSS display none 属性禁用自动完成功能?
- python - Django不会将表单数据保存到postgres数据库
- c - 没有收到来自父进程的信号
- r - base R — 如何检测 var-args (...) 是否分配了键名(命名参数)?
- javascript - RegExp:如何只找到一个匹配项(或不匹配模式)