此代码正确地从Interactive获得一个实时报价,然后以当前价格将其发送到csv文本文件。现在,如何使这段代码继续自动运行?我每15秒做一次睡眠命令。
import csv
from ib_insync import *
stocks = ['TVIX']
test = list()
for stock in stocks:
stock = Stock(stock, 'SMART','USD')
contract = ib.qualifyContracts(stock)
test.append(ib.reqMktData(contract[0],snapshot=True))
ib.sleep(15)
for stock in test:
f = open('tvix-price.csv','w')
f.write(str(stock.last))
f.close()下面是我到目前为止的代码..。我没有错误,这有点奇怪。什么都没发生。我将尝试重新启动我的内核,以确保我是连接的。
重新考虑一下,做一段时间真的是最好的方法吗?
while True:
stocks = ['TVIX']
test = list()
for stock in stocks:
stock = Stock(stock, 'SMART','USD')
contract = ib.qualifyContracts(stock)
test.append(ib.reqMktData(contract[0],snapshot=True))
ib.sleep(15)
for stock in test:
f = open('tvix-price.csv','w')
f.write(str(stock.last))
f.close()发布于 2019-06-14 19:24:55
您的部分代码没有正确缩进,您在循环中放错了部分。你应该做的是:
import csv
from ib_insync import *
stocks = ['TVIX']
while True:
test = list()
for stock in stocks:
stock = Stock(stock, 'SMART','USD')
contract = ib.qualifyContracts(stock)
test.append(ib.reqMktData(contract[0],snapshot=True))
ib.sleep(15)
for stock in test:
f = open('tvix-price.csv','w')
f.write(str(stock.last))
f.close()while True循环只重复缩进部分。由于代码的一部分没有缩进循环之外,所以它没有运行。希望这能有所帮助。
https://stackoverflow.com/questions/56604035
复制相似问题