Thanks very much Tomasz.  Ami broker is truely the best trading 
program on earth and the support like this makes it even better.  
Thanks again.






--- In [email protected], "Tomasz Janeczko" <[EMAIL PROTECTED]> 
wrote:
>
> Hello,
> 
> One correction - since you are after finding the Shortest one then 
the loop should
> start with the SMALLEST period (not the largest as in your 
original formula).
> There were couple of other minor things that needed correction.
> 
> Here is corrected one:
> 
> // this checks whether the price is above its moving av 52 bars 
ago 
> //AND if so checks whether the Close crossed mov av during the 
last 52 
> //bars for a range of moving av periods AND return the moing av 
period 
> //value when it crosses 
> 
> function CheckMACross( period, Lookback ) 
> { 
>   result = False; 
> 
>   Cma = MA( C, period ); 
> 
>   bar = BarCount - 1 - Lookback; 
> 
>   if( Close[ bar  ] < Cma[ bar ] ) 
>   { 
>     while( bar < BarCount ) 
>     { 
>        if( Close[ bar ] > Cma[ bar ] ) 
>       { 
>          result = True; 
>       } 
> 
>       bar++; 
>     } 
>   } 
> 
>   return result; 
> } 
> 
> function WCBelowMALine() 
> { 
>  found = False; 
>  for ( period = 3; period <= 52 AND NOT found; period++) 
>  { 
>     found = CheckMACross( period, 52 );    
>  } 
>  return period; 
> } 
> 
> 
> 
> 
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
>   ----- Original Message ----- 
>   From: Tomasz Janeczko 
>   To: [email protected] 
>   Sent: Monday, March 27, 2006 1:50 PM
>   Subject: Re: [amibroker] How to code For loops without refering 
to array elements
> 
> 
>   Hello,
> 
>   AFL offers actually superset of capabilities of "general purpose"
>   language like Pascal as it allows both "normal" (i.e. scalar)
>   constructs like Pascal AND array based operations (not available 
in Pascal).
> 
>   It is UP TO YOU which one you use. There are NO limitations and
>   of course in your case j variabel CAN be used as moving average 
period.
> 
>   The only problem is YOUR SKILL, not the language.
> 
>   Correct way to code thing like this
>   "// this checks whether the price is above its moving av 52 bars 
ago 
>   and if so checks whether the close crossed mov av during the 
last 52 
>   bars for a range of moving av periods and return the moing av 
period 
>   value when it crosses"
> 
>   is ( I am showing ONE OF MANY possible ways to code this,
>   specifially I am showing the way how to code it WITHOUT REF() 
statement
>   just to show you how you can use subscript operator (as in 
Pascal))
> 
>   // this checks whether the price is above its moving av 52 bars 
ago 
>   //AND if so checks whether the Close crossed mov av during the 
last 52 
>   //bars for a range of moving av periods AND return the moing av 
period 
>   //value when it crosses 
> 
>   function CheckMACross( period, Lookback ) 
>   { 
>     result = False; 
> 
>     Cma = MA( C, period ); 
> 
>     bar = BarCount - 1 - Lookback; 
> 
>     if( Close[ bar  ] < Cma[ bar ] ) 
>     { 
>       while( bar < BarCount ) 
>       { 
>          if( Close[ bar ] > Cma[ bar ] ) 
>         { 
>            result = True; 
>         } 
>       } 
>     } 
> 
>     return result; 
>   } 
> 
>   function WCBelowMALine() 
>   { 
>    found = False; 
>    for ( period = 52; j < 3 AND NOT found; j--) 
>    { 
>      found = CheckMACross( j, 52 );    
>    } 
>    return result; 
>   } 
> 
> 
> 
> 
>   Best regards,
>   Tomasz Janeczko
>   amibroker.com
>     ----- Original Message ----- 
>     From: iceboundbug 
>     To: [email protected] 
>     Sent: Sunday, March 26, 2006 1:44 PM
>     Subject: [amibroker] How to code For loops without refering to 
array elements
> 
> 
>     Hi all 
> 
>     For up trending stoks, I want to find the shortest Simple 
moving 
>     average period values that do not cross the price within any 
52 bar 
>     period for a portfolio of securities. Obviously different 
stocks 
>     will have different period values at any given point in time 
and 
>     also they will very with time within a stock.
> 
>     I started coding the following.  But it seems the variables 
that we 
>     can use in a For loop can only be used for Array element and 
not 
>     the  way general computer languages like Pascal work.  
> 
>     I wold appreciate if someone can help me to get this code to 
work - 
>     it appears that the j variable cannot be used to increment the 
>     moving av period !!
> 
>     Thanks in advance
> 
> 
> 
>     //==================================================
>     // this checks whether the price is above its moving av 52 
bars ago 
>     and if so checks whether the close crossed mov av during the 
last 52 
>     bars for a range of moving av periods and return the moing av 
period 
>     value when it crosses
> 
>     function WCBelowMALine(C) 
>     {
>     result = 0;
>     for (j=52; j<3; j--)
>     {
>     result = IIf(Ref(C,-52) < Ref(MA(C,j),-52), -1,IIf(Hold(Cross
(MA
>     (C,J),C),52),j+1 ,9));
>     }
>     return result; 
>     } 
> 
>     //==================================================
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>     Please note that this group is for discussion between users 
only.
> 
>     To get support from AmiBroker please send an e-mail directly 
to 
>     SUPPORT {at} amibroker.com
> 
>     For other support material please check also:
>     http://www.amibroker.com/support.html
> 
> 
> 
> 
> 
> -------------------------------------------------------------------
---------
>     YAHOO! GROUPS LINKS 
> 
>       a..  Visit your group "amibroker" on the web.
>         
>       b..  To unsubscribe from this group, send an email to:
>        [EMAIL PROTECTED]
>         
>       c..  Your use of Yahoo! Groups is subject to the Yahoo! 
Terms of Service. 
> 
> 
> -------------------------------------------------------------------
---------
>






------------------------ Yahoo! Groups Sponsor --------------------~--> 
GFT Forex Trading Accounts As low as $250 with up to 400:1 Leverage. Free Demo.
http://us.click.yahoo.com/lpv1TA/jlQNAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

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

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

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



Reply via email to