[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EquisMetaStock Group] Re: Power( DataArray, VariablePower ) MS function



PureBytes Links

Trading Reference Links


MG,Jose,

Not so quick to the cubicle!
There was a coding error. The fix is below:
y:=C;
n:=12;
x1:=Exp(Sum(Log(y),n)/n);
x2:=Exp(Mov(Log(y),n,S));
x1;x2

That being said, there is a slight difference between x1 and x2 when 
compared. Comparing that to a 12EMA of the close there is still 
another difference. From my perspective, X1 and X2 actually appear 
smoother. So we have a new way of writing an exponential moving 
average. 

Finally, MG I've used the sum method to derive a SMA before. I always 
enjoy new methods of writing moving averages. 

Thanks to both of you for the mental stimulus.

Preston


--- In equismetastock@xxxxxxxxxxxxxxx, "Jose Silva" 
<josesilva22@xxxx> wrote:
> 
> > 1000 * exp( Cum( log( y / 1000 ) ) )
> 
> In *theory*, this would be quite useful in accumulating large 
values  
> (such as Volume), but unfortunately MetaStock cannot handle large 
> values for the Exp() function, so there is no advantage here.
> 
> Here is an example:
> Exp(Cum(Log(V/1000)))*1000
> 
> 
> > Exp( Sum( Log( y ), n ) / n )
> > or simply
> > Exp( Mov( Log( y, n, S ) ) )
> 
> Neither of these is an improvement on Mov(y,n,S).
> 
> 
> MG, back to your modeling cubicle with you...
> 
> 
> jose '-)
> http://www.metastocktools.com
> 
> 
> 
> --- In equismetastock@xxxxxxxxxxxxxxx, "MG Ferreira" <quant@xxxx> 
> wrote:
> > 
> > OK, here is a quick, off the cuff example.  The Cum function
> > 
> > Cum(y)
> > 
> > gives
> > 
> > y1 + y2 + y3 + ...
> > 
> > What if you want
> > 
> > y1 * y2 * y3 * ...
> > 
> > Well, use
> > 
> > exp( Cum( log( y ) )
> > 
> > This will generally give an overflow quickly, unless you use
> > smallish values, so you may need to rescale it to get it to work,
> > ie calculate
> > 
> > 1000 * exp( Cum( log( y / 1000 ) ) )
> > 
> > If you think the Cum function is useful, then this must appeal to
> > you as well!
> > 
> > Another example, the geometric average.  The simple moving average
> > is defined as
> > 
> > ( y1 + y2 + y3 + ... + yn ) / n
> > 
> > Of course, in MSFL we all use
> > 
> > Mov(y,n,S)
> > 
> > to calculate this, but we could also use
> > 
> > Sum(y,n) / n
> > 
> > to get the answer the brute-force way.
> > 
> > The geometric moving average, which may actually be more 
applicable
> > to markets due to the exponential growth often seen in prices,
> > is defined as
> > 
> > ( y1 x y2 x y3 x ... x yn ) ^ ( 1 / n )
> > 
> > To do this in MSFL, use
> > 
> > Exp( Sum( Log( y ), n ) / n )
> > 
> > or simply
> > 
> > Exp( Mov( Log( y, n, S ) ) )
> > 
> > Regards
> > MG Ferreira
> > TsaTsa EOD Programmer and trading model builder
> > http://www.ferra4models.com
> > http://fun.ferra4models.com





------------------------ Yahoo! Groups Sponsor --------------------~--> 
What would our lives be like without music, dance, and theater?
Donate or volunteer in the arts today at Network for Good!
http://us.click.yahoo.com/Tcy2bD/SOnJAA/cosFAA/BefplB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> To unsubscribe from this group, send an email to:
    equismetastock-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/