Common Names for Option-Based Equity Hedges
Summary
The document asks what to call an equity hedge that uses options closer to the money than a tail-risk hedge, aiming for a more responsive hedge at a higher premium. The replies identify several familiar structures and terms: a protective put, a collar, and delta hedging. A collar combines a long put with a short call against an existing stock position, using the call premium to offset some of the put’s cost while limiting upside above the call strike.
A protective put generally pairs owned shares with a put option, though the hedge can be scaled below full coverage. Delta hedging is presented as a technical term that may need explanation for less technical clients. These terms describe distinct constructions or hedging approaches, rather than a single established label for every near-the-money, frequently adjusted hedge. The discussion offers terminology and basic intuition, not option-selection rules, pricing analysis, or evidence about how much drawdown a particular hedge would reduce.
Key ideas
- A protective put pairs an equity holding with a purchased put to limit downside exposure.
- A collar combines a long put and a short call against a stock position.
- Selling the call can reduce the net premium cost while capping gains above its strike.
- Protective puts can be scaled to hedge less than the full share position.
- Delta hedging is a technical term that may require explanation for some clients.
Tags
Full text
# How to compute returns from cumulative returns in Python?
# How to compute returns from cumulative returns in Python?
If X is a $T\times N$ pandas DataFrame of multivariate asset returns, the cumulative returns can be computed in python as
> (1 + X).cumprod() - 1
How can I reverse this operation so that I go backwards from cumulative returns to the original returns matrix X?
## Answer by amdopt (score 2, accepted)
https://quant.stackexchange.com/a/55960
DataFrame `df` with a few random returns that I made up:
```
import pandas as pd
df = pd.DataFrame({'rets': (.5, .5, .4, .3)})
```
Add `cum_rets` column:
```
df['cum_rets'] = (1 + df['rets']).cumprod() - 1
```
Add `inv_cum_rets` colum:
```
df['inv_cum_rets'] = ((1 + df['cum_rets']) / (1 + df['rets'])) - 1
```
If you want it lined up with your original returns, just shift it up 1 row
EDIT:
If you are missing the original returns and want to back into them from `cum_rets` you can use this:
```
df['rets_missing'] = (1 + df['cum_rets']) / (1 + df['cum_rets'].shift(1)) - 1
```Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.