Start here: Composer overview
Hi and welcome to Composer! 👋
Composer allows you to create custom automated trading strategies. We call these strategies ‘symphonies’.
In this article, you'll learn the basics of building and backtesting symphonies in Composer.
What are the basic symphony building blocks?
Each symphony is built from a set of simple but infinitely combinable building blocks: assets, weights, conditionals, filters, and groups.
In practical terms, a symphony is a set of instructions to buy and sell assets. We plan to support many different types of assets, but we’re starting simple with individual stocks and ETFs.
You can select individual assets using a ticker search. Or, you can select a set of assets that meet criteria using a screener.
Weights determine how funds are distributed to the blocks making up your symphony. You can split the funds equally among blocks or specify the weight for each block.
There are additional weighting options for assets. You can weigh assets by their market cap, or use inverse volatility weighting to assign greater weight to less volatile assets.
An if-else conditional lets your symphony dynamically react to real-world events. Start by setting a condition that, if it is met, will trigger an outcome. Then, set what you’d like that outcome to be. Finally, set what outcome should happen if the condition is not met.
A filter allows you to sort and filter a set of assets. Start by choosing a function to sort the assets. Then, choose how the assets will be selected and how many will be selected.
Groups let you abstract by labeling and treating any set of blocks as a single unit. A group can be any size and you can name it whatever you’d like.
Combining building blocks to create a symphony
Using these nestable building blocks, you can explore and let your imagination run free.
Do you want to put a conditional inside a weight? Or a filter inside a conditional? You can do that!
We have guardrails in place to prevent combinations of building blocks that don’t work together.
If you’re looking for ideas to get started, there are symphony templates you can use as-is or modify as you’d like. If you choose to use a symphony template, the symphony will be copied to your personal symphony library.
Backtesting a symphony
Backtesting a symphony lets you model how it might have performed in the past using historical data. You can add a benchmark, or two, or more to compare with your symphony.
Use the backtest results to guide what changes you make to your symphony. Small changes can have big effects.