Files
aiomql/tests/backtest/unit/test_deals_manager.py
T
Ichinga Samuel 1109d78218 v4
2024-11-16 09:26:10 +01:00

29 lines
1.3 KiB
Python

# noinspection PyTestUnpassedFixture
async def test_deals_manager(backtest_engine, sell_order, buy_order, period, positions):
backtest_engine.reset(clear_data=True)
await backtest_engine.setup_account(balance=100)
backtest_engine.fast_forward(steps=100)
await backtest_engine.order_send(request=sell_order)
bo = await backtest_engine.order_send(request=buy_order)
start = period["start"]
end = period["end"]
all_deals = backtest_engine.deals.get_deals_range(date_from=start, date_to=end)
assert len(all_deals) == 2
backtest_engine.fast_forward(steps=10_000)
start2 = backtest_engine.cursor.time
bo2 = await backtest_engine.order_send(request=buy_order)
backtest_engine.fast_forward(steps=50)
end2 = backtest_engine.cursor.time
deals = backtest_engine.deals.history_deals_get(date_from=start2, date_to=end2)
assert len(deals) == 1
assert deals[0].order == bo2.order
await positions.close_position_by_ticket(ticket=bo.order)
deals = backtest_engine.deals.history_deals_get(position=bo.order)
assert len(deals) <= 2
orders = backtest_engine.deals.get_deals_range(date_from=start, date_to=end)
assert (
len(orders)
== backtest_engine.deals.history_deals_total(date_from=start, date_to=end)
== len(backtest_engine.deals._data.keys())
)