Ниже приведен мой код, и мне интересно, почему я могу отправлять только один ордер за раз. Как только я вызываю функцию placetrade(), ордер передается в 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)
Подробнее здесь: https://stackoverflow.com/questions/720 ... -at-a-time