tradingstrategy-ai / trade-executor

A Python framework for managing positions and trades in DeFi
https://tradingstrategy.ai
Other
101 stars 28 forks source link

Repair command doesn't work with frozen credit position #1023

Closed hieuh25 closed 1 month ago

hieuh25 commented 1 month ago

The command crashed with exception:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.10/site-packages/typer/main.py", line 326, in __call__
    raise e
  File "/usr/local/lib/python3.10/site-packages/typer/main.py", line 309, in __call__
    return get_command(self)(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/typer/core.py", line 723, in main
    return _main(
  File "/usr/local/lib/python3.10/site-packages/typer/core.py", line 193, in _main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/typer/main.py", line 692, in wrapper
    return callback(**use_params)
  File "/usr/src/trade-executor/tradeexecutor/cli/commands/repair.py", line 179, in repair
    repair_tx_not_generated(state, interactive=True)
  File "/usr/src/trade-executor/tradeexecutor/state/repair.py", line 462, in repair_tx_not_generated
    repair_trades_generated = [repair_tx_missing(portfolio, t) for t in tx_missing_trades]
  File "/usr/src/trade-executor/tradeexecutor/state/repair.py", line 462, in <listcomp>
    repair_trades_generated = [repair_tx_missing(portfolio, t) for t in tx_missing_trades]
  File "/usr/src/trade-executor/tradeexecutor/state/repair.py", line 144, in repair_tx_missing
    c = make_counter_trade(portfolio, p, t)
  File "/usr/src/trade-executor/tradeexecutor/state/repair.py", line 67, in make_counter_trade
    position, counter_trade, created = portfolio.create_trade(
  File "/usr/src/trade-executor/tradeexecutor/state/portfolio.py", line 493, in create_trade
    trade = position.open_trade(
  File "/usr/src/trade-executor/tradeexecutor/state/position.py", line 982, in open_trade
    assert reserve, "You must give reserve"
AssertionError: You must give reserve