I would like to calculate with R the inverse return of Bitcoin. My objective is to simulate the historical price and return of a short position opened in Bitcoin.

The first method is to cumulate the 1-dailyReturn of the Bitcoin price and the second option is to calculate the return of 1/(BTC/USD).

Both give slighty different result and I'm not sure which one I must use.

Here are the two options written in R and the results:

> dailyReturn(cumprod(1-dailyReturn(BTC_USD)))["2015-11-23::"]
2015-11-23   0.007114063
2015-11-24   0.004140197
2015-11-25  -0.046087480
2015-11-26  -0.024507073

> dailyReturn(1/BTC_USD)["2015-11-23::"]
2015-11-23   0.007165035
2015-11-24   0.004157409
2015-11-25  -0.044057004
2015-11-26  -0.023920843

1 Answer 1


The first method gives the performance when rebalancing the position every day so you have a constant dollar exposure, the second is the result of shorting USD 1 and then keeping the position open, i.e. a short-and-hold return. They can be quite different in the long run and if there is high volatility. I recommend the short-and-hold with, possibly, rebalancing once a quarter or once a year only. Daily rebalancing is not very realistic unless you can trade very cheaply (I am not an expert in Bitcoin but I thought it was difficult to short). Inverse ETFs use daily rebalancing, but they are designed for short term holding only and oare not recommended for long term hold.

  • $\begingroup$ Thank you Alex I'll choose the first option as it is designed to short term exposure. $\endgroup$
    – Florent
    Nov 27, 2015 at 21:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.