【发布时间】:2019-07-26 21:17:05
【问题描述】:
以下是我如何检查未平仓头寸的示例。如果不存在头寸,则创建一个 txt 文件,如果存在未平仓头寸,则删除 .txt 文件。 我的问题是我不知道如何断开它。它也输出错误 -1 见下面的脚本
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.common import *
from ibapi.contract import *
from ib.opt import ibConnection
import os.path
from os import path
class CheckPos(EClient, EWrapper):
def __init__(self):
EClient.__init__(self, self)
def nextValidId(self, orderId:int):
self.reqPositions()
def position(self, account: str, contract: Contract, position: float,
avgCost: float):
super().position(account, contract, position, avgCost)
if position >0:
try:
os.remove("noposition.txt")
except:
print("Open Positons")
else:
try:
open("noposition.txt","w+")
print("File Created Sucessfully")
except:
print("No Open Positions")
def main():
app = CheckPos()
app.connect("127.0.0.1", 7497,421 )
app.run()
if __name__ == "__main__":
main()
输出是 错误 -1 2104 市场数据农场连接正常:usfuture 错误 -1 2104 市场数据农场连接正常:usfarm 错误 -1 2106 HMDS 数据场连接正常:ushmds 文件创建成功
【问题讨论】:
-
哥们,首先是逗号。它们有助于更好地表达。其次,您是否有任何可重现的代码、输入、预期输出等?
-
好的,我们所说的可重现代码的意思是我们可以看看你的代码来调试哪里出了问题吗?
-
你真的想用 IbPy 代替 IB interactivebrokers.ca/en/index.php?f=5041 的新 api 吗?
-
我愿意使用较新的 API 并已安装,但无法理解 Ewapper 和 Eclient。
-
stackoverflow.com/a/56917618/2855515 是我使用 ib api 的最新答案,但使用的是 contractDetails 而不是职位。在这里你可以看到它几乎与位置相同。 interactivebrokers.github.io/tws-api/… 。尝试使用我的代码作为模板编写一些代码,并将合约方法替换为位置方法。编辑您的问题并发布您的代码,如果它不起作用。如果它确实有效,您可以将其发布为答案。