Skip to content

Commit

Permalink
adding last price
Browse files Browse the repository at this point in the history
  • Loading branch information
timkpaine committed May 29, 2019
1 parent 52cf350 commit 878345c
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
4 changes: 4 additions & 0 deletions aat/query.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ def _paginate(self, instrument: Instrument, lst: list, lst_sub: list, page: int
return lst[from_:to_] \
if page > 1 else lst[from_:]

def query_lastpriceall(self) -> List[MarketData]:
return [m for exs in self._last_price_by_asset_and_exchange.values()
for m in exs.values()]

def query_lastprice(self,
instrument: Instrument,
exchange: ExchangeType = None) -> MarketData:
Expand Down
30 changes: 30 additions & 0 deletions aat/ui/handlers/last_price.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import tornado.gen
from .base import HTTPHandler
from tornado.concurrent import run_on_executor
from perspective import PerspectiveHTTPMixin


class LastPriceHandler(PerspectiveHTTPMixin, HTTPHandler):
'''Server Handler
Extends:
HTTPHandler
'''
def initialize(self, trading_engine, **psp_kwargs):
self.te = trading_engine
self.psp_kwargs = psp_kwargs

@run_on_executor
def get_data(self, **psp_kwargs):
msgs = [s.to_dict(True, True) for s in self.te.query().query_lastpriceall()]
if len(msgs) > 0:
for msg in msgs:
msg['underlying'] = msg['instrument']['underlying']
msg['instrument'] = msg['instrument']['underlying'] + ',' + msg['instrument']['type']

super(LastPriceHandler, self).loadData(data=msgs, **psp_kwargs)
return super(LastPriceHandler, self).getData()

@tornado.gen.coroutine
def get(self):
dat = yield self.get_data(**self.psp_kwargs)
self.write(dat)
4 changes: 4 additions & 0 deletions aat/ui/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from .handlers.accounts import AccountsHandler
from .handlers.exchanges import ExchangesHandler
from .handlers.instruments import InstrumentsHandler
from .handlers.last_price import LastPriceHandler
from .handlers.strategies import StrategiesHandler
from .handlers.strategy_trade_request import StrategyTradeRequestHandler
from .handlers.strategy_trade_response import StrategyTradeResponseHandler
Expand Down Expand Up @@ -51,6 +52,9 @@ def __init__(self,
'psp_kwargs': {'view': 'hypergrid'}}),
(r"/api/v1/json/strategy-trade-responses", StrategyTradeResponseHandler, {'trading_engine': trading_engine,
'psp_kwargs': {'view': 'hypergrid'}}),
(r"/api/v1/json/last-price-all", LastPriceHandler, {'trading_engine': trading_engine,
'psp_kwargs': {'view': 'hypergrid'}}),

(r"/api/v1/json/trades", TradesHandler, {'trading_engine': trading_engine,
'psp_kwargs': {'view': 'hypergrid', 'limit': 100}}),
(r"/static/(.*)", tornado.web.StaticFileHandler, {"path": static}),
Expand Down

0 comments on commit 878345c

Please sign in to comment.