BacktestSyncModel#

tradeexecutor.backtest.backtest_sync.BacktestSyncModel Python class in Trading Strategy framework.

class BacktestSyncModel[source]#

Bases: SyncModel

Backtest sync model.

Simulate deposit events to the backtest wallet.

__init__(wallet, initial_deposit_amount)[source]#
Parameters:

Methods

__init__(wallet, initial_deposit_amount)

create_transaction_builder()

Backtesting does not need to care about how to build blockchain transactions.

get_hot_wallet()

Get the vault address we are using.

get_token_storage_address()

Get the address where tokens are stored.

get_vault_address()

Get the vault address we are using.

is_ready_for_live_trading(state)

Check that the state and sync model is ready for live trading.

resync_nonce()

Re-read hot wallet nonce before trade execution.

simulate_funding(timestamp, amount)

Simulate a funding flow event.

sync_initial(state)

Set up the initial sync details.

sync_treasury(strategy_cycle_ts, state[, ...])

Apply the balance sync before each strategy cycle.

Attributes

fund_flow_queue

Simulated deposit/redemption events pending to be processed

__init__(wallet, initial_deposit_amount)[source]#
Parameters:
fund_flow_queue: List[FundFlowEvent]#

Simulated deposit/redemption events pending to be processed

get_token_storage_address()[source]#

Get the address where tokens are stored.

Returns:

Vault address for enzyme, wallet address for hot wallet.

Return None for DummySyncModel e.g. in the case of unit and backtests.

Return type:

Optional[str]

sync_initial(state)[source]#

Set up the initial sync details.

For backtesting these are irrelevant.

Parameters:

state (State) –

sync_treasury(strategy_cycle_ts, state, supported_reserves=None)[source]#

Apply the balance sync before each strategy cycle.

Warning

Old legacy code with wrong return signature compared to the parent class

Parameters:
Return type:

List[BalanceUpdate]

simulate_funding(timestamp, amount)[source]#

Simulate a funding flow event.

Call for the test to cause deposit or redemption for the backtest. The event goes to a queue and is processed in next tick() through sync_portfolio().

Parameters:
  • amount (Decimal) – Positive for deposit, negative for redemption

  • timestamp (datetime) –

create_transaction_builder()[source]#

Backtesting does not need to care about how to build blockchain transactions.

Return type:

None