使用Python将许多实时股票报价检索到一个CSV文件

时间:2019-06-17 14:22:45

标签: python

此代码使用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()

如何设置引号,以便所有四个引号都在同一文件中?

1 个答案:

答案 0 :(得分:0)

使用f = open('spy-price.csv','w+')附加到文件 w =写 w+ =追加