We do the same thing.  See this screen shot:

http://www.reynacho.com/wp-content/uploads/2009/05/cse-charting.jpg

There's a lot more than just a moving average and bollinger bands there but
those are parts of it.  In order to get this data, we first tapped into a
feed which you have to pay good money for.  I believe we are using NxCore
which I think is a DTN product.  You might look into that but I know there
are others as well.

For the data, we pass data into a java library called ta-lib:
http://ta-lib.org/

It has methods for moving averages, deviations, etc.  We found that the
calculations for our app were simply too intense to be done on the client.
But, we have 5-7 years worth of data that we are looking at for calculations
so you might not run into the same bottleneck we had

-Jake

On Fri, Oct 23, 2009 at 11:49 AM, cjsteury2 <[email protected]> wrote:

>
>
>
>
> <answer>.net SQL database through Web services call to Flex...</answer>...
> would like to create a new Array based on existing Array of Ticker data..
>
> So I need to create a new Array Collection then loop through and add the
> date from the Tickers Array Collection along with the Moving 20 day average
> of the Close Price... THEN ( I have not mentioned this ) What I REALLY want
> is a Standard Deviation Calcuation against the Moving Average to plot Upper
> and Lower Bollinger Bands....
>
> Here's my initial guesstimate at building the new 20 Day Moving Average
> Array Collection from the Existing Array_Tickers ArrayCollection....
>
> [Bindable] public var Array_BBands:ArrayCollection; (new mov avg Ac)
>
> public function bld_Array_BBands():void
> {
> Array_BBands = new ArrayCollection;
> for (var i:int=0;i<Array_Tickers.length;i++) \\ loop through existing
> Array_Tickers
> {
> Array_BBands.addItem(Array_Tickers.getItemat(i).date);
> if (i>=20) \\ start at 20th row - as Moving Avg is 20 day
> {
> var mavg_tick:Int = 0; \\ create variable to hold Moving Average
> mvag_tick = Array_Tickers.getItemAt(i).close.valueof(); \\ need to pick up
> the date of the Array_Tickers
> mvag_tick += Array_Tickers.getItemAt(i-1).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-2).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-3).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-4).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-5).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-6).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-7).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-8).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-9).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-10).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-11).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-12).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-13).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-14).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-15).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-16).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-17).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-18).close.valueof();
> mvag_tick += Array_Tickers.getItemAt(i-19).close.valueof();
> var mavg:Int = (mavg_tick/20);
> Array_BBands.addItem(mavg);
> }
> }
>
> }
>
> If that works ( and I have no idea if it will ) then I need to get the
> Standard Deviation calcualted somehow. Because the Formula for what I really
> want as previously stated is The Bollinger Bands formular or (MA+K*sigma)
> Moving Average (20 period) + or - depending if it's upper or lower (2 *
> sigma) Sigma is the Standard Deviation, and I am fairly certain that
> actionscript does not calculate the Standard Deviation, so I'll need to do
> that somehow and I have no idea how to do that...
>
> This is a lot for me, and I don't expect you or others have the answers but
> I need to get the Std Deviation caclulated from the Mean Value above and
> this is how to do that...
>
> http://en.wikipedia.org/wiki/Standard_Deviation
>
> I am not sure exactly the best way to proceed, but if anyone has a
> suggestions... I guess I would take the difference of each number in the
> series above form the mean, divide the sum of the numbers by the count (20)
> and take the square root.
>
> It's a brain teaser and I am working on it a piece at a time.....
>
> If anyone has a shortcut I'd take it.
>
> --- In [email protected] <flexcoders%40yahoogroups.com>,
> "jc_bad28" <jc_ba...@...> wrote:
> >
> > How are you receiving your price data to plot? Price feed? Static file?
> What you could do is create a function to loop through the array and perform
> the moving average calculation and add the result as an extra "column" in
> the array. Are you plotting the full historic price data set? If so, your MA
> will begin at the nth bar where n is your MA period setting. eg.. a 20 day
> MA won't start until the 20th day into the data set.
> >
> > If you're using a static dataset, you could do the calculation in Excel
> and then save the entire datset as XML and just bring that into flex and
> plot the MA from the existing values.
> >
> > --- In [email protected] <flexcoders%40yahoogroups.com>,
> "cjsteury2" <craigj@> wrote:
> > >
> > > Hi all,
> > >
> > > I am stumped.
> > >
> > > If I want to add an additional data series to a HLOC Chart that is a
> line series of a simple 20 day moving average for the closing price
> ("Close") value in an array collection (Array_Tickers)... how would I
> perform that calculation in Flex?
> > >
> > > <mx:lineSeries id=mavg
> > > dataprovider="Array_Tickers"
> > > ySeries="Close" />
> > >
> > > How would I calculate "Close" as {The SUM for the Value of "Close" for
> the previous 20 days / divided by 20}...
> > >
> >
>
>  
>

Reply via email to