Short sell with backtest Engine

4 views (last 30 days)
ando
ando on 15 Jan 2021
Commented: Tim Billingsley on 31 Aug 2021
What's the most effecient way to implement short selling strategies with the backtestEngine?
Using this Matlab example as a reference: https://www.mathworks.com/help/finance/backtest-investment-strategies-with-trading-signals.html
It appears that if you change crossoverRebalanceFcn to output negative portfolio weights, for example
change
new_weights(idx) = availableCapital / uninvestedAssets;
to
new_weights(idx) = -availableCapital / uninvestedAssets;
That seems to work. Is that the correct way to implement a short? Any other considerations with this approach or is there a better approach?

Accepted Answer

Brendan
Brendan on 20 Jan 2021
hello again Ando,
Yes, that is how you take short positions using the backtestEngine. You just set a negative weight on an asset. Since the total weights should equal to 1, shorting an asset will mean you have additional weight to allocate to long positions, or else the unallocated weight will stay in cash earning the RiskFreeRate.
cheers,
-brendan
  1 Comment
Tim Billingsley
Tim Billingsley on 31 Aug 2021
Is the backtestEngine really set up to handle short positions? When I have negative weights on an asset, there are intermediate buy and sell costs and also unaccounted for Turnover values?
Regards
Tim

Sign in to comment.

More Answers (0)

Categories

Find more on Portfolio Optimization and Asset Allocation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!