Back to Community
Futures Allocation Criteria

Recently, we gave advice about how you can get an allocation from Quantopian. That advice can essentially be summarized as 1) write an algorithm using futures or 2) write an algorithm that uses alternative data. This post is about futures and the high-level criteria that we intend to use in order to make allocations to strategies that trade futures.

Here are some things that we are looking for in futures strategies:

  • Consistent Profitability. We are looking for strategies that generate consistent, positive returns. The higher the sharpe, the
    better (in general).
  • Trades Actively. Evaluates trading opportunities frequently, preferably every day. We are looking for strategies that place many independent bets. An independent bet is a bet that either takes a new position, or reverses your direction (long/short) in an existing position.
  • Controlled Risk.
    • Expected shortfall (explored in detail below) is a good approximation for the risk associated with a particular futures
      portfolio. We are looking for strategies that do not exceed a daily expected shortfall of 1.5% of the portfolio value.
    • Have low exposure to the equity market (low beta-to-SPY). This is also something we look for in equity strategies.
    • Have low directional exposure to any particular underlying. This is the same idea as position concentration, where we are looking for strategies that are not vulnerable to big price movements in any single asset. With futures, we are looking for algorithms that are not over exposed to any particular underlying or any single contract. One way to lower this type of risk is to diversify across many instruments and trade many futures in different sectors. Another way is to offset contracts on the same chain in such a way that your net risk exposure is close to zero (e.g., curve momentum, term structure). Pairs strategies and strategies that capitalize on economic upstream/downstream relationships also fall into this category.

Here are some things that we are not looking for:

  • Long-term trend-following algos; aka “CTA-style” trend-following algos. Risk-Premia capture, or passive algos attempting to take
    advantage of structural risk premia. For example, no net short VIX futures algos; no FX carry.
  • Static exposure to any root symbol. We are not looking for strategies that hold a particular position for a long period of time.
  • Holding a static position in a particular root symbol and rolling from one month to the next at expiration is still a static position.

In addition, the criteria on the allocations page still apply to futures strategies.

More specifically, just like with equities, we are looking for futures strategies that:

  • Have low exposure to the equity market (low beta-to-SPY).
  • Have high capacity. Choosing a liquid universe can help increase capacity.
  • Are driven by underlying economic reasoning.
  • Are driven by original insights.

And we explicitly are not looking for:

  • Strategies that are overfit.
  • Ideas that depend on data snooping, forward lookahead bias, or spurious correlations.
  • Infringing or misappropriated content.

If you would like more color on any of these criteria, we encourage you to check out the allocations page. We will be adding more detail on the futures-specific criteria soon.

Keep in mind that these criteria apply to both futures-only strategies as well as strategies that trade both equities and futures. If you have a strategy that depends on the relationships between equities and futures, we will evaluate the strategy as a single algorithm. However, if you believe that you have two independent strategies - one for equities and one for futures - running in the same algorithm, we encourage you to split them into the component strategies so that they can be evaluated separately.

Of course, we will base our evaluations primarily on the out-of-sample performance of a strategy. Similar to equities, we expect to evaluate most futures strategies on 6 months of out-of-sample performance. As we mentioned in another post, any time you run a backtest, we save a code snapshot and automatically evaluate it in 6 months. The performance between the in-sample (backtest) and out-of-sample (6 months of data after the backtest is run) periods should be consistent. It does not need to be paper traded, live traded, or entered into the contest to be evaluated.

We haven’t yet allocated to any futures strategies, so the ‘correlation to peers’ is as low as it’s going to get.


Expected Shortfall

Expected Shortfall, or Conditional Value at Risk (CVaR) can be used to estimate the risk of a particular portfolio of assets. When it comes to allocations, we are looking for strategies that keep their expected shortfall below 1.5% of their portfolio value each day. (i.e., 1-day 95% CVaR < 1.5% of portfolio value each day). With diversified equity long/short strategies, “risk” is reasonably well defined by gross leverage since the assets are all reasonably self-similar; risk as defined by gross leverage is comparable across equity long/short strategies. The same cannot be said for multi-asset class portfolios, and futures are multi-asset class. As such, just like the futures exchanges and brokers themselves, we need to use a “portfolio risk-based capital utilization measure”; we have chosen Expected Shortfall as that measure.

We are working on adding a function to the API that computes expected shortfall. We’re also planning to add it as a built-in metric in the backtester and Pyfolio. Until those functions are available in the API, the CVaR function in the lecture series is the best tool for you to use.


Futures Contest

We are actively working on a new contest for futures strategies. I don’t have any further details at this point, but you should expect something similar to the current Quantopian Open.

Entering the contest is not required in order for an algorithm to be evaluated for an allocation, but we think that it helps to provide you with direction in terms of what types of strategies we are looking for.


Futures Algorithm Analysis Tool

We are planning to build out analysis tools so that you can get more insight into the risk profile and performance of your futures strategies. Right now, you have Pyfolio for equity strategies. We are looking to build something similar for futures, or extend Pyfolio. Stay tuned for updates.

Disclaimer

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.

6 responses

You are writing Futures Allocation Criteria, as if everything is ready. I would think implementing futures for live trading as well as together with pipeline support should be of first priority. When this would be implemented? Are you planning to finally implement long requested by the community Indices support? Strange, but why this takes so long. Interestingly, even mentioning continuous_futures in the comment section of the algorithm doesn't allow this algorithm to live trade.
Just mine 2 cents, but I just can't imagine leading quant site, without support for RT Indices, without basically any real technical explanation of why this couldn't be done!

@jamie I am starting to look into futures tutorials and get ramped up pretty quickly. I'd like some guidance (precise numbers) published by Quantopian on futures regarding Maxiumum Drawdown (this is 5% in equities), Max Position concentration (I didn't see an upper threshold number in your post like 5% or 10% etc., I believe the theoretical upper limit in equities you are okay with is 10%). What does liquid universe mean in futures (any numbers to support what we are looking at in terms of liquidity (stocks has volume) - do we have distribution of futures by volume and any custom factors to filter out low liquidity futures?). In terms of strategies are we looking at price/technical and chart related strategies - in equities it was specified that alternate data is preferred - do we have alternate data concept for futures Precog/Morning Star/Estimize etc. - if so what data streams are those. What type of returns is Quantopian targetting for futures allocation ( I have seen some posts stating alpha of 0.05 is good enough for equities - do we have any guidance on futures specific numbers)..

Leo:

Like with equities, we are looking for Sharpe (risk adjusted returns) > 1 and Calmar (Drawdown/ Returns) > 1.

Position concentration is a little bit different. For futures, we will be looking at the Expected Shortfall (sometimes known as CVAR), instead of looking at position concentration. Because of the extremely high correlation between several contracts, like those on the same future chain, position concentration will sometimes not be a good approximation of position risk. Expected Shortfall should do a better job. We're working on adding this metric into the app.

For liquidity, futures are a little bit different than equities on Quantopian. We added all 8000+ US equities to the platform, and so it's very important to do liquidity filtering. The majority of these equities are not very liquid. With futures, however, it's a subset of futures traded across several of the major exchanges. Most of these names should be pretty liquid. There are certainly some that you may no longer want to trade, or some that may no longer be trading (included to avoid survivorship bias). To identify these, you can use volume as you do with equities. At some point, we'd like to add open interest data as another measure of liquidity, but we don't have that yet. Volume should be used in the meantime. Unfortunately, I don't have a hard number for you to use as a minimum threshold yet. It's a very good question. I expect most of the futures should be liquid enough to trade. What I'm less sure about is whether the 7th or 8th back contract is something that is feasible to trade on all of the future chains. We'll have to do some research.

Regarding the types of strategies, this is touched on a bit in the original post on this thread. The main objective is to find returns that are not correlated to any common risk factor (alpha). We're working on a risk model to help you get better insight into what that number is. With equity strategies, we are asking the community to use data because we believe that using data is the most likely path to finding these original return streams. With futures, using alternative data is a good way to find alpha, but you can certainly find it using pricing and volume data. Some general ideas that might be interesting are described in the original post on this thread. We'd certainly like to make alternative data available to futures algos, and it's on our to-do list. Economic release calendars, weather data, machine learning signals, and more have all been requested, so they are on our list. In the meantime, we are interested in futures strategies that use pricing data to produce alpha.

Let me know if this helps.

@Jamie, thanks. Very helpful.

@Jamie,
What period of time will Quantopian use to calculate the CVaR? In the CVaR tutorial they use ~500 days of data.
If you paper trade an algo for six months, you will only get 180 days. Is that what will be used to calculate CVaR?

When 2 years of data is available, that's what will be used. If you paper trade a strategy, the algo will still have access to history before the paper trading began. There are exceptions to this like if you are trading a future within 2 years of it's start date. We can certainly release the details around these edge cases when the tool is released. From what I know now, if there's >= 1 year of data, that's what will be used (up to 2 years), and if less than 1 year is available, something else will be used as a proxy.