rendered paste bodyimport Buffer
import ThreadedBuffer
from System.Threading import *
import tickData
class AssetManager:
def __init__(self, bufferManager):
self.exchanges = {}
self.exchangeSymbols = {}
tickData.registerExchangeList(self.onExchangeList)
tickData.registerSymbolList(self.onSymbolList)
tickData.requestListExchanges()
self.bufferManager = bufferManager
def onExchangeList(self,exchanges):
for exchange in exchanges:
if exchange.Available:
self.exchangeSymbols[exchange.Code] = []
symbolRequestId = tickData.requestListSymbols(exchange.Code)
self.exchanges[symbolRequestId] = exchange.Code
def onSymbolList(self,symbols):
for symbol in symbols:
#for now, USD only
if symbol.Currency == "USD":
self.exchangeSymbols[self.exchanges[symbol.RequestId]] += symbol.Code
bufferName = tickData.requestStream(tickData.requestEntity(self.exchanges[symbol.RequestId],symbol.Code))
bufferManager.AddBuffer(bufferName,Buffer.Buffer(bufferName, 10))
bufferManager.AddListenerToBuffer(bufferName, self.onBufferUpdate)
#print self.exchanges[symbol.RequestId]+":"+symbol.Code
def onBufferUpdate(self, buffer):
print buffer.GetLastItem()
def mainThread():
def onQuote(quote):
bufferManager.AddItemToBuffer(quote.RequestId, quote.AskPrice)
tickData.registerRealTimeQuote(onQuote)
def onLogin():
assetManager = AssetManager(bufferManager)
tickData.registerOnLogin(onLogin)
tickData.tickDataLogin()
bufferManager = ThreadedBuffer.ThreadedBufferManager()
main = Thread(ThreadStart(mainThread))
main.Start()
Thread.Sleep(10000)