此代码使用ib_insync正确打印来自Interactive Brokers的所有四个实时股票报价。 Stock是ib_insync中的导入功能。
stocks = ['SPY','ANGL','GDX','TMV']
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(1)
for stock in test:
print(stock.last)
下面的这段代码将只打印列表中的最后一个引号,在这种情况下为TMV。我相信这是因为每次循环运行时,“ w”都会覆盖整个文件吗?还是循环设置不正确。
import csv
from ib_insync import *
stocks = ['SPY','ANGL','GDX','TMV']
stocks = ['SPY', '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('spy-price.csv','w')
f.write(str(stock.last))
f.close()
如何设置引号,以便所有四个引号都在同一文件中?
答案 0 :(得分:0)
使用f = open('spy-price.csv','w+')
附加到文件
w
=写
w+
=追加