Share Repurchases, more commonly known as “share buybacks”, are when a company buys its own shares from the market. While there are number of ways to perform a buyback (tender offer, buying from market, ASRs), companies tend to perform share repurchases because they believe their shares are undervalued. So by buying back shares, this corporate action reduces the number of shares outstanding, increasing EPS (earnings per share) tends to along with share price.
We’ve done some prior research on buyback announcements and are now announcing it’s availability through pipeline. Buyback announcements for 4,000+ listed companies are now available from EventVestor.
For those who’ve thought about using buyback announcements in their algorithms, I’ve created a sample algorithm for you to get started with. It’s a simple drift strategy that holds securities for 5 days after a new buyback announcement versus a repeat buyback announcement.
- Datafeed: Buyback Authorizations by EventVestor
- Weights: The weight for each security is determined by the total number of longs we have in that current day. So if we have 2 longs, the weight for each long will be 50% (1.0/number of securities). This is a rolling rebalance at the beginning of each day according to the number of securities currently held and to order.
- Capital base: $1,000,000
- Days held: Positions are currently held for 5 days but are easily changeable by modifying 'context.days_to_hold'
- Trade dates: All trades are made 1 business day AFTER a buyback announcements
- Slippage and commissions in this backtest are default backtester settings
Here are the available fields from the Buyback Authorizations dataset:
previous_date (datetime64[ns]) - The datetime that the last buyback announcement was made previous_type (string) - Possible values are (u'Suspends', u'Reduction', u'Additional', u'Reinstates', u'New') previous_amount (float64) - Amount of buyback. See previous_unit for measurement. previous_unit (string) - Possible values are (u'EURM', u'DKK', u'Mshares', u'%', u'CAD', u'NaN', u'GBPM', u'$M')
For more examples using data, visit the data factor library.
|Returns||1 Month||3 Month||6 Month||12 Month|
|Alpha||1 Month||3 Month||6 Month||12 Month|
|Beta||1 Month||3 Month||6 Month||12 Month|
|Sharpe||1 Month||3 Month||6 Month||12 Month|
|Sortino||1 Month||3 Month||6 Month||12 Month|
|Volatility||1 Month||3 Month||6 Month||12 Month|
|Max Drawdown||1 Month||3 Month||6 Month||12 Month|