Rx - 触发股票价格的实时变化?

时间:2016-11-02 04:17:47

标签: python finance reactivex google-finance rx-py

作为课程的一个例子,我试图找出最有效的方法来创建一个热门Observable,它可以为给定的股票代码发出当前价格,但只有在它发生变化时才会发出价格。我自己想出的最好的方法是创建一个间隔来源Observable,它会每隔3秒查询一次Google财经,解析价格,只有在价值通过distinct_until_changed()更改后才推送它。

from threading import Semaphore

from rx import Observable
from googlefinance import getQuotes
import json


Observable.interval(3000) \
    .map(lambda i: json.dumps(getQuotes('AAPL'))) \
    .map(lambda s: json.loads(s)[0]) \
    .map(lambda dict: float(dict["LastTradePrice"])) \
    .distinct_until_changed() \
    .subscribe(print)

sema = Semaphore(0)

sema.acquire()

有没有人知道更有效的方法,而不是必须在一定时间间隔重新查询,而是在价格实际发生变化时触发源?如果它过于复杂并需要一些专门的库,我会坚持我所拥有的。我觉得我错过了一个更好的方法来做到这一点......

0 个答案:

没有答案