By this you are operating on old data, so what do you want to achieve? Smoothing the timeseries when doing backtests? That's curve-fitting, and working with old data is IMO futile...
Old data is how you know what the new data is going to do statistically. All this nonsense talk about the past performance of price does not indicate future performance...the most successful fund did so purely on statistics...then entire industry of sports betting uses past data to set odds...in the foundation series the future could be predicted based on "psychohistory".
Do whatever works for you & be happy. My focus is on options only, with actual IVs (FYI: IV gets calculated from the Bid and Ask) as the main indicator, not any old data. Of course statistics is very interesting & useful, but in my case for other uses in trading, not for attempting to predict the future, as this is IMO impossible to do.
Oh yeah, but it's not about predicting the future so much as putting the odds in your favour. Price is not just random..it follows patterns. Like with Bitcoin right now... statistically if price doesn't break through on this first ABC, then it will complete another ABC.
Nope, that's wrong (and buggy: surely it was meaning 252, not 352, but IMO one better should use calendar days in year (ie. 365), not trade days in year (ie. 252)). Here's my C/C++ function named calc_Sx. It should be easy to port to other languages: Important: when dealing with options, then only the ATM IV should be used for AnnVolaPct, not other IVs. And in this context ATM IV means the IV for the stock price (ie. to be exact, one maybe needs to make a linear regression to calculate the "true ATM IV"... But usually it stuffices to use the IV of the nearest strike to the stock price (usually taking the avg of Call ATM IV and Put ATM IV)). Code: /* S is the stock price, DTE is time in days, AnnVolaPct is the option ATM IV (or the stock HV, ie. the historical (realized) volatility), z is the xSD (ie. -1 or +1 etc.), the DBL_EPSILON stuff means just to make it slightly > 0, ie. to avoid <= 0 (b/c otherwise NaN or DivByZero can happen), rPct is the AnnRiskFreePctRate (aka AnnEarningsYieldPct or the "drift") (pass 0 if unknown), qPct is the AnnDividendYieldPct (pass 0 if unknown) */ double calc_Sx(const double S, const double AnnVolaPct, const double DTE, const double rPct, const double qPct, const double z) { const double s = max(DBL_EPSILON, AnnVolaPct / 100.0); // the sigma; must be > 0 const double t = max(DBL_EPSILON, DTE / 365.0); // must be > 0 const double r = rPct / 100.0; // can be negative const double q = qPct / 100.0; // can be negative (CHECK) const double u = r - q; const double st = s * sqrt(t); const double ut = u * t; const double Sx_at_zSD = S * exp(z * st + ut); return Sx_at_zSD; }
I just use stock price * volatility * square root of days to expiration/365 (or 252) and I get: $4.95 TOS has: $4.78 However if I take the actual data over the past 30 days and adjust the SD for the trend then I get: $5.70/$5.48 which are probably the more realistic targets imo. I prefer this method because then I don't need to keep adding in IV manually...but as Desteiro pointed out this will skew if there are high volatility events. The maximum daily range over the last 365 days was $9.70 on Oct13 2022 so there is less than a 1% of that occurring...and about a 36% chance that the daily range will be wider than the current atr ($3.69) based on the last 365 days.
You first should clear why "352", must be a typo; it surely was supposed to mean 252. And: you should know what you are calculating Do you want to calc 1) the possible 1SD price range (ie. for -1SD and for +1SD), or 2) the theoretical price of the Call or Put option? B/c if your current stock price is 201.48 and you calculate something like 4.95, 4.78, 5.70, 5.48 etc, then this never can be the result for #1, it rather must be the theoretical option price (#2). But for that you are not using the correct formula: for it Black-Scholes must be used. IMO, you have totally messed up, man My advice: use a real programming language, not such a spreadsheet "language" like Excel or such crap