【发布时间】:2022-08-24 05:24:11
【问题描述】:
我正在开发一个基于盈透证券 in_insync API 的交易应用程序。
下面是我的代码,我想知道为什么我一次只能发送一个订单。一旦我打电话给地方贸易()功能订单被传输到 IB,但如果我想发送另一个订单,我只能在重新启动应用程序后执行此操作。 我在 ib_insync 文档中找不到任何信息,它说只允许 1 个订单。我怀疑这可能与 OrderID 有关,但我又不确定。
任何想法我需要怎么做才能允许多个订单?
import tkinter as tk
from tkinter import filedialog, Text
import os
from ib_insync import *
from tkinter import *
import pandas as pd
#
import ibapi
from ibapi.client import EClient
from ibapi import contract
from ibapi.order import *
import threading
import time
root = tk.Tk()
#Port 7496 for TWS Live account and 7497 for paper trading and 4002 for Gateway
ib = IB()
ib.connect(\'127.0.0.1\', 7497, clientId=1)
def definecontract():
ticker = tickerentry1.get()
exchange = \"SMART\"
currency = \"USD\"
return ticker, exchange, currency
def defineorder():
direction = tradeentry1.get()
ordersize = qtyentry1.get()
orderprice = priceentry1.get()
return direction, ordersize, orderprice
def placetrade():
ticker, exchange, currency = definecontract()
direction, ordersize, orderprice = defineorder()
contract = Stock(ticker, exchange, currency)
order = LimitOrder(direction, ordersize, orderprice)
ib.placeOrder(contract, order)
#definition of buttons
placetrade1 = tk.Button(root, text=\'Trade\', padx=10, pady=5, fg=\'white\', bg=\'grey\', command=placetrade)
placetrade1.grid(row=1, column=4)
-
为什么您认为您只能在必须重新启动之前发送一个订单?当您发送第二个订单时会发生什么?
-
什么都没有发生 :-) 它只是没有被传输。我认为这可能是由于一些延迟,但即使在几分钟后,也没有传输任何订单,而第一个订单会立即发送。
标签: python tkinter interactive-brokers