dev progress
This commit is contained in:
parent
842eb3ec62
commit
4bf1d46208
@ -1,6 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Callable, Coroutine, List
|
from typing import Callable, Coroutine, List
|
||||||
|
import aiohttp.web as web
|
||||||
|
|
||||||
from cvttpy_tools.app import App
|
from cvttpy_tools.app import App
|
||||||
from cvttpy_tools.config import Config
|
from cvttpy_tools.config import Config
|
||||||
@ -8,6 +9,8 @@ from cvttpy_tools.base import NamedObject
|
|||||||
from cvttpy_tools.config import CvttAppConfig
|
from cvttpy_tools.config import CvttAppConfig
|
||||||
from cvttpy_tools.logger import Log
|
from cvttpy_tools.logger import Log
|
||||||
from cvttpy_tools.settings.cvtt_types import BookIdT
|
from cvttpy_tools.settings.cvtt_types import BookIdT
|
||||||
|
from cvttpy_tools.web.rest_service import RestService
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
from cvttpy_trading.trading.instrument import ExchangeInstrument
|
from cvttpy_trading.trading.instrument import ExchangeInstrument
|
||||||
from cvttpy_trading.trading.mkt_data.md_summary import MdTradesAggregate
|
from cvttpy_trading.trading.mkt_data.md_summary import MdTradesAggregate
|
||||||
@ -17,11 +20,6 @@ from pairs_trading.lib.pt_strategy.live.live_strategy import PtLiveStrategy
|
|||||||
from pairs_trading.lib.live.mkt_data_client import CvttRestMktDataClient
|
from pairs_trading.lib.live.mkt_data_client import CvttRestMktDataClient
|
||||||
from pairs_trading.lib.live.ti_sender import TradingInstructionsSender
|
from pairs_trading.lib.live.ti_sender import TradingInstructionsSender
|
||||||
|
|
||||||
# import sys
|
|
||||||
# print("PYTHONPATH directories:")
|
|
||||||
# for path in sys.path:
|
|
||||||
# print(path)
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
config http://cloud16.cvtt.vpn/apps/pairs_trading
|
config http://cloud16.cvtt.vpn/apps/pairs_trading
|
||||||
'''
|
'''
|
||||||
@ -36,6 +34,7 @@ class PairsTrader(NamedObject):
|
|||||||
|
|
||||||
live_strategy_: PtLiveStrategy
|
live_strategy_: PtLiveStrategy
|
||||||
pricer_client_: CvttRestMktDataClient
|
pricer_client_: CvttRestMktDataClient
|
||||||
|
rest_service_: RestService
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.instruments_ = []
|
self.instruments_ = []
|
||||||
@ -105,7 +104,16 @@ class PairsTrader(NamedObject):
|
|||||||
|
|
||||||
|
|
||||||
# # ------- CREATE REST SERVER -------
|
# # ------- CREATE REST SERVER -------
|
||||||
# URGENT CREATE REST SERVER for dashboard communications
|
self.rest_service_ = RestService(
|
||||||
|
config_key=f"/api/REST"
|
||||||
|
)
|
||||||
|
|
||||||
|
# --- Strategy Handlers
|
||||||
|
self.rest_service_.add_handler(
|
||||||
|
method="POST",
|
||||||
|
url="/api/strategy",
|
||||||
|
handler=self._on_api_request,
|
||||||
|
)
|
||||||
|
|
||||||
async def subscribe_md(self) -> None:
|
async def subscribe_md(self) -> None:
|
||||||
for exch_inst in self.instruments_:
|
for exch_inst in self.instruments_:
|
||||||
@ -124,6 +132,9 @@ class PairsTrader(NamedObject):
|
|||||||
# Snapshot or update?
|
# Snapshot or update?
|
||||||
await self.live_strategy_.on_mkt_data_hist_snapshot(hist_aggr=history)
|
await self.live_strategy_.on_mkt_data_hist_snapshot(hist_aggr=history)
|
||||||
|
|
||||||
|
async def _on_api_request(self, request: web.Request) -> web.Response:
|
||||||
|
return web.Response() # TODO add API request handler implementation
|
||||||
|
|
||||||
async def run(self) -> None:
|
async def run(self) -> None:
|
||||||
Log.info(f"{self.fname()} ...")
|
Log.info(f"{self.fname()} ...")
|
||||||
pass
|
pass
|
||||||
|
|||||||
@ -12,6 +12,7 @@ from cvttpy_tools.app import App
|
|||||||
from cvttpy_tools.config import Config
|
from cvttpy_tools.config import Config
|
||||||
from cvttpy_tools.settings.cvtt_types import IntervalSecT
|
from cvttpy_tools.settings.cvtt_types import IntervalSecT
|
||||||
from cvttpy_tools.timeutils import SecPerHour
|
from cvttpy_tools.timeutils import SecPerHour
|
||||||
|
from cvttpy_tools.logger import Log
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
from cvttpy_trading.trading.instrument import ExchangeInstrument
|
from cvttpy_trading.trading.instrument import ExchangeInstrument
|
||||||
@ -117,27 +118,36 @@ class PtLiveStrategy(NamedObject):
|
|||||||
self, hist_aggr: List[MdTradesAggregate]
|
self, hist_aggr: List[MdTradesAggregate]
|
||||||
) -> None:
|
) -> None:
|
||||||
# Log.info(f"on_mkt_data_hist_snapshot: {aggr}")
|
# Log.info(f"on_mkt_data_hist_snapshot: {aggr}")
|
||||||
# await self.pt_mkt_data_.on_mkt_data_hist_snapshot(snapshot=aggr)
|
if not self._is_md_actual(hist_aggr=hist_aggr):
|
||||||
pass # URGENT PtiveStrategy.on_mkt_data_hist_snapshot()
|
return
|
||||||
|
|
||||||
# if market_data_df is not None:
|
market_data_df: Optional[pd.DataFrame] = self._create_md_pdf(hist_aggr=hist_aggr)
|
||||||
# self.trading_pair_.market_data_ = market_data_df
|
if market_data_df is None:
|
||||||
# self.model_data_policy_.advance()
|
Log.warning(f"{self.fname()} Unable to create market data df")
|
||||||
# prediction = self.trading_pair_.run(
|
return
|
||||||
# market_data_df, self.model_data_policy_.advance()
|
|
||||||
# )
|
|
||||||
# self.predictions_ = pd.concat(
|
|
||||||
# [self.predictions_, prediction.to_df()], ignore_index=True
|
|
||||||
# )
|
|
||||||
|
|
||||||
# trading_instructions: List[TradingInstruction] = (
|
self.trading_pair_.market_data_ = market_data_df
|
||||||
# self._create_trading_instructions(
|
self.model_data_policy_.advance()
|
||||||
# prediction=prediction, last_row=market_data_df.iloc[-1]
|
prediction = self.trading_pair_.run(
|
||||||
# )
|
market_data_df, self.model_data_policy_.advance()
|
||||||
# )
|
)
|
||||||
# if len(trading_instructions) > 0:
|
self.predictions_df_ = pd.concat(
|
||||||
# await self._send_trading_instructions(trading_instructions)
|
[self.predictions_df_, prediction.to_df()], ignore_index=True
|
||||||
# # trades = self._create_trades(prediction=prediction, last_row=market_data_df.iloc[-1])
|
)
|
||||||
|
|
||||||
|
trading_instructions: List[TradingInstruction] = (
|
||||||
|
self._create_trading_instructions(
|
||||||
|
prediction=prediction, last_row=market_data_df.iloc[-1]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if len(trading_instructions) > 0:
|
||||||
|
await self._send_trading_instructions(trading_instructions)
|
||||||
|
|
||||||
|
def _is_md_actual(self, hist_aggr: List[MdTradesAggregate]) -> bool:
|
||||||
|
return False # URGENT _is_md_actual
|
||||||
|
|
||||||
|
def _create_md_pdf(self, hist_aggr: List[MdTradesAggregate]) -> Optional[pd.DataFrame]:
|
||||||
|
return None # URGENT _create_md_pdf
|
||||||
|
|
||||||
def interval_sec(self) -> IntervalSecT:
|
def interval_sec(self) -> IntervalSecT:
|
||||||
return self.interval_sec_
|
return self.interval_sec_
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user