On 3/10/2016 3:02 PM, 'U.Mutlu' um4711@mutluit.com [amibroker] wrote:
I think of all the presented functions here (btw many thx to all),
the function in the original posting seems to be the most accurate one
as sometimes the difference can be about a whoppy 1%...
Here's an extended and optimized version of it:
function my_vola(APriceArr, APeriod, ADaysInYear)
{ // DaysInYear should be 252 for stocks
return StDev(ln(APriceArr) - ln(Ref(APriceArr, -1)), APeriod)
/ sqrt(1 / ADaysInYear) * 100;
}
rosenberggregg@yahoo.com [amibroker] wrote on 03/10/2016 05:16 PM:
> Hi, it's not built in. Below is the function I use. It's a little more flexible than yours and will be quicker because it uses the built-in ROC function instead of looping. You can add in ln yourself to wrap the ROC.
>
> function Volatility_afl(watchListName, sourceArray, measurePeriod, reportPeriod) { //begin Volatility
> //Calculates volatility over a measuring period and reports it back scaled to reporting period
>
> dailyChg = ROC(sourceArray, 1, true);
> result = StDev(dailyChg, measurePeriod)*sqrt(reportPeriod);
>
>
> return Nz(result);
> } //end Volatility
Posted by: Alan <alan@thenorthams.us>
Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (11) |
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
EmoticonEmoticon