I haven't seen something for this in AFL, but that may be a reflection of experience with it. However, if it doesn't have native support, why not take advantage of the support it provides for writing plugins in, e.g, C++.
There is an outstanding, flexible, open source stats product called R (which does just about everything that the commercial Splus supports). Of course, it allows you to do everything you can imagine doing with almost any probabilistic distribution. You could therefore save yourself having to reimplement the wheel just by passing your data to R and have it do your t-test. To do it transparently, you could use on the the R packages that lets you write C++ code that passes data to R, execute the required R code, and then passes the data back to the C++ calling code. If you embed that into a C++ plug-in written for use in AmiBroker, you're set. Or, if you know the math involved in integrating one or both of the tails of a distribution function, you could write that yourself in AFL. I would poin tout that there exist many R packages that support almost the entire range of statistical analyses that can be done in econometrics, so it would be worth the effort for someone to write a plugin that facilitates passing data between R and AmiBroker and executes whatever analyses R can do that Amibroker does not natively support. I used to write stats code to do analyses not supported by the commercial products I had at my disposal. Now, there is little need to do that because products like R support so much. I therefore find ways to use it rather than being masochistic enough to write it in C++ and test it and test it and then test it some more (yes, I tend to be paranoid about the quality of code that I write). And as a software developer, I HATE reinventing the wheel. Cheers, Ted On Thu, Jan 14, 2010 at 4:10 PM, Diz <[email protected]> wrote: > > > Thank you for your response. > > I've already managed to calculate t-test (tstat) in a similar way. What I'm > trying to do now is to calculate probability itself. > > Denis. > > > --- In [email protected] <amibroker%40yahoogroups.com>, "mkecera" > <mkec...@...> wrote: > > > > Well, > > > > I have a custom backtest code with tstat as performance metric. Maybe you > can use that as starting point. But check it carefully as I havent used it > for a while and just copy/pasted it. > > > > /* First we need to enable custom backtest procedure and > > ** tell AmiBroker to use current formula > > */ > > > > SetCustomBacktestProc(""); > > > > if( Status("action") == actionPortfolio ) > > { > > > > bo = GetBacktesterObject(); > > bo.Backtest(); // run default backtest procedure > > st = bo.GetPerformanceStats(0); // get stats for all trades > > > > Sumx=0; > > smx2=0; > > > > for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() ) > > { > > x = trade.GetProfit(); > > sumx+=x; > > smx2+=x*x; > > } > > > > xpriem=st.GetValue("AllAvgProfitLoss"); > > x2priem=smx2/st.GetValue("AllQty"); > > xpriem2=st.GetValue("AllAvgProfitLoss")^2; > > standarddeviation=sqrt(x2priem-xpriem2); > > > > tstat = > (xpriem/standarddeviation)/sqrt(st.GetValue("AllQty"))*1000000;//multiplied > to be seen in report > > //custom = st.GetValue("netprofit")*st.GetValue("kratio"); > > > > bo.AddCustomMetric( "tstat", tstat ); > > //bo.AddCustomMetric( "custom", custom ); > > } > > > > Regards, > > > > MK > > > > // your trading system here > > > > --- In [email protected] <amibroker%40yahoogroups.com>, "diznyc@" > <ground@> wrote: > > > > > > Hello all, > > > > > > What is the best (easiest) way to calculate probability for the Student > t-distribution in AFL (analog of TDIST Excel function)? > > > > > > Is it possible to call Excel function somehow from AFL or other > external statistical library? > > > > > > Thank you in advance, > > > > > > Denis. > > > > > > > > -- R.E.(Ted) Byers, Ph.D.,Ed.D. [email protected] CTO Merchant Services Corp. 350 Harry Walker Parkway North, Suite 8 Newmarket, Ontario L3Y 8L3
