TOM, short for Trading Object Model, is the underlying data structure used to define and execute a backtest in the Allasso Backtesting Tool. It represents all strategy components—option legs, rolling rules, equity assumptions, signals, and hedging—in a single, flexible, and machine-readable format.
🖥️ How to View TOM in the App
You can view the TOM generated by your strategy setup by clicking the "Show TOM" button in the Backtester interface. This will display the full TOM configuration for your current backtest.
What you're seeing is exactly what the frontend sends to the backend API to run the simulation.
⚙️ Why TOM Matters
TOM is a universal and transparent format, expressed in JSON, which allows you to:
- See exactly how your strategy is defined under the hood
- Reproduce and share strategies easily
- Bypass the UI and run backtests directly via API
- Integrate backtesting into your scripts or platforms (e.g., Python, R, JavaScript)
The Allasso frontend is simply a visual builder that constructs a TOM and submits it to the API when you hit "Recalculate".
🧪 Learn by Doing
If you're new to TOM, we recommend:
- Use the frontend to set up a strategy as usual
- Click "Show TOM" to inspect how your settings are encoded
- Modify or reuse the TOM for your programmatic workflows
This is a great way to get comfortable with the model and gradually shift toward API-based backtesting for automation and scaling.
📄 Example TOM
Below is a sample TOM for a simple 25/5 delta short put spread on E-mini S&P 500:
{
"strategy_id": "Custom Structure",
"signals": "no",
"hedge": "no",
"dte_roll": "yes",
"inherit_first_leg_rolls": "no",
"initial_equity": 1000000,
"same_option_future_expiries": {},
"option_expiry_type": "Standard + Serial",
"close_structure_on_dte_min": "no",
"close_entire_structure_on_every_min_dte": "no",
"close_entire_structure_on_every_min_dte_value": 0,
"premium_exit": {
"use_premium_exit": "no",
"lower": 0.5,
"upper": 2
},
"equity_type": "compounding",
"from_date": "2000-01-01",
"to_date": "2025-10-07",
"legs": [
{
"id": "Leg #1",
"underlying_id": "IND.ES",
"type": "p",
"weight_type": "notional",
"weight": -1,
"expiry_dte_min": 30,
"expiry_nearest": "1",
"strike_type": "delta",
"strike_value": 0.25,
"period": "month",
"period_contract": "All",
"options_family_id": "IND.ES"
},
{
"id": "Leg #2",
"underlying_id": "IND.ES",
"type": "p",
"weight_type": "notional",
"weight": 1,
"expiry_dte_min": 30,
"expiry_nearest": "1",
"strike_type": "delta",
"strike_value": 0.05,
"period": "month",
"period_contract": "All",
"options_family_id": "IND.ES"
}
]
}📡 Ready to Go API-First?
Once you're comfortable with TOM, you can skip the frontend entirely and send TOMs directly to our Backtesting API using any programming language you prefer, enabling advanced workflows, batch tests, and integration with your tools.
Comments
0 comments
Please sign in to leave a comment.