While you're at it, you might want to consider declaring variables used within 
the function as local so that they do not inadvertently overwrite global 
variables.

e.g.

function Fast_EMA( period ) { 
local i;
local EMA_fast;
...
}

Mike

--- In [email protected], "Markus Witzler" <funny...@...> wrote:
>
> Thanks, Mike!
> 
> 
>   ----- Original Message ----- 
>   From: Mike 
>   To: [email protected] 
>   Sent: Thursday, November 19, 2009 8:26 PM
>   Subject: [amibroker] Re: Referencing values of a function and optimizing it
> 
> 
>     
>   If you want to reference an element, within the resulting array, outside of 
> the function, then simply assign the result to a variable first.
> 
>   fast = fast_EMA(period);
>   value = fast[i]; // where i is the desired element index
> 
>   And yes, your usage of Optimize is correct.
> 
>   Mike
> 
>   --- In [email protected], "Markus Witzler" <funnybiz@> wrote:
>   >
>   > Hello,
>   > 
>   > I designed the following function which creates an exponential moving 
> average:
>   > 
>   > function Fast_EMA( period ) 
>   > { 
>   > EMA_fast[ 0 ] = close[ 0 ]; seed value is being set
>   > 
>   > for( i = 1; i < BarCount; i++ ) 
>   > { 
>   > EMA_fast[ i ] =EMA_fast[i-1]+(close[i]-EMA_fast[i-1])*2/(period+1); 
>   > } 
>   > 
>   > return EMA_fast; 
>   > } 
>   > 
>   > 
>   > Now, when I later want to reference a value of the function, do I use 
> this: EMA_fast[i]
>   > 
>   > And when want to optimize the length of my exp. moving average, do I use 
> this:
>   > 
>   > period=Optimize ("Fast EMA length", 50, 10, 150, 10);
>   > 
>   > fast_EMA( period ); 
>   > 
>   > 
>   > Thanks for clarifying
>   > 
>   > Markus
>   >
> 
> 
> 
>   
> 
>   __________ Information from ESET Smart Security, version of virus signature 
> database 4623 (20091119) __________
> 
>   The message was checked by ESET Smart Security.
> 
>   http://www.eset.com
>


Reply via email to