Skip to content

Commit

Permalink
Merge pull request #149 from AsyncAlgoTrading/traderemove
Browse files Browse the repository at this point in the history
make sure only use internal orders
  • Loading branch information
timkpaine committed Jan 22, 2021
2 parents 1ffbd78 + a24b4f8 commit d4d75b5
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 12 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ fixjs: ## run clang-format
cd js; yarn fix

annotate: ## MyPy type annotation check
$(PYTHON) -m mypy --disallow-untyped-calls --disallow-untyped-defs --show-column-numbers --follow-imports=silent --ignore-missing-imports aat
$(PYTHON) -m mypy aat

type_ignore: ## Count type ignores
grep -rin "type: ignore" ./aat | wc -l
Expand Down
23 changes: 13 additions & 10 deletions aat/engine/dispatch/execution/execution.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,28 +58,28 @@ async def onTrade(self, event: Event) -> None:
"""Match trade with order"""
action: bool = False
strat: Optional[EventHandler] = None
order: Optional[Order] = None

trade: Trade = event.target # type: ignore

for order in trade.maker_orders:
if order.id in self._pending_orders:
for maker_order in trade.maker_orders:
if maker_order.id in self._pending_orders:
action = True
_, strat = self._pending_orders[order.id]
order, strat = self._pending_orders[maker_order.id]

# TODO cleaner?
trade.my_order = order
trade.id = order.id
order.filled = maker_order.filled
break

if trade.taker_order.id in self._pending_orders:
action = True
order = trade.taker_order
order, strat = self._pending_orders[trade.taker_order.id]

# TODO cleaner?
trade.my_order = order
trade.id = order.id
_, strat = self._pending_orders[order.id]
order.filled = trade.taker_order.filled

if action:
if order.side == Order.Sides.SELL:
Expand All @@ -97,13 +97,16 @@ async def onTrade(self, event: Event) -> None:
del self._pending_orders[order.id]

async def onCancel(self, event: Event) -> None:
order: Order = event.target # type: ignore
if order.id in self._pending_orders:
_, strat = self._pending_orders[order.id]
canceled_order: Order = event.target # type: ignore
if canceled_order.id in self._pending_orders:
order, strat = self._pending_orders[canceled_order.id]

# TODO second look, just in case
order.filled = canceled_order.filled

# TODO ugly private method
await self._manager._onCanceled(cast("Strategy", strat), order)
del self._pending_orders[order.id]
del self._pending_orders[canceled_order.id]

async def onOpen(self, event: Event) -> None:
# TODO
Expand Down
11 changes: 10 additions & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ max-line-length=250
per-file-ignores=
aat/core/__init__.py:F401, F403


[mypy]
python_version = 3.7
disallow_untyped_calls = True
disallow_untyped_defs = True
show_column_numbers = True
follow_imports = silent
ignore_missing_imports = True
warn_unused_configs = True

[mypy-aat.tests.*]
ignore_errors = True

0 comments on commit d4d75b5

Please sign in to comment.