Ed, 
  
Thank you...The code below is doing what is 
supposed to happen...still 
curious what is wrong with the formula I 
posted...any ideas ? 
  
Anthony 
  
  ----- Original Message -----  
  
  
  Sent: Saturday, January 23, 2010 8:19 
  AM 
  Subject: Re: [amibroker] Help with 
  formula 
  
    
  
  
   have a look at code below Anthony. I guess it 
  could be programmed using arrays only, not sure, 
    
  regards, Ed 
    
    
    
  function 
  cccc(Buy,Sell)  { 
  CumCst = Null; 
  for (i = 
  1; i < BarCount; i++)  { 
     if(Buy[i])     { 
  
        CumCst[i]=0.10; 
  
        for (j = i + 
  1; j < BarCount; j++)        { 
          
            if (Sell[ j ] ) 
            { 
               i 
  = j - 1; 
               break; 
                
            }       
            else if(C[j] > 
  C[j-1])           { 
             
               CumCst[j] 
  = Min(CumCst[j-1] + 0.003,0.13);            
            } 
            else if(C[j] <= 
  C[j-1])           { 
             
               CumCst[j] 
  = CumCst[j-1];          
             
            } 
            else if (j == 
  BarCount - 1)           { 
                            
               i 
  = BarCount; 
               break; 
                            
            } 
          
         } 
     } 
      else if(Sell[i])     { 
  
        CumCst[i]=0.10; 
  
        for (j = i + 
  1; j < BarCount; j++)        { 
          
            if (Sell[ j ] ) 
            { 
               i 
  = j - 1; 
               break; 
                
            }       
            else if(C[j] < 
  C[j-1])           { 
             
               CumCst[j] 
  = Min(CumCst[j-1] + 0.003,0.13);            
            } 
            else if(C[j] >= 
  C[j-1])           { 
             
               CumCst[j] 
  = CumCst[j-1];          
             
            } 
            else if (j == 
  BarCount - 1)           { 
                            
               i 
  = BarCount; 
               break; 
                            
            } 
          
         } 
  
     }    
  } 
  return CumCst; 
  } 
  Buy=Cross(C,EMA(C,19)); 
   Sell=Cross(EMA(C,19),C) ; 
  CumCst = cccc(Buy,Sell); 
  per=19;  Smth = 2/(per+1)+CumCst; 
  
  MovAvg = AMA(C,Smth); 
  Plot(movavg,"",colorBlue,1);  Plot(C,"",1,64); 
  PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20);  PlotShapes(Sell* shapeDownArrow,colorRed,0,H,-20); 
  Title="cumulative value = "+WriteVal(Cumcst,1.3); 
   
    
    
    
  
    ----- Original Message -----  
    
    
    Sent: Saturday, January 23, 2010 1:47 
    PM 
    Subject: Re: [amibroker] Help with 
    formula 
    
    
    
    
     Keith, 
      
    Have you tried the formula ? I made the 
    adjustments as you stated still does not work...although 
    I had them the way you suggested earlier...I 
    have been trying but something is not working properly. 
      
    Description: 
    When there is a new buy or sell signal the 
    cumCst will reset to 0.10 and increment by 0.003 
    until it gets to a maximum of 0.13, this is not 
    happening with the formula below....I can not 
    see the error, can anyone ? 
      
    Here is the complete formula 
      
    
    Buy=Cross(C,EMA(C,19)); 
    Sell=Cross(EMA(C,19),C) ;  
    CumCst=0.00; 
    poslong=0; 
    posshort=0; 
    for (i=1; i 
    < BarCount; i++) 
    { 
    if(Buy[i]) 
    { 
    poslong=1; 
    posshort=0; 
    CumCst[i]=0.10; 
    } 
    if(Sell[i]) 
    { 
    poslong=0; 
    posshort=1; 
    CumCst[i]=0.10; 
    } 
      
    if(posshort) 
    { 
    if(C[i] < C[i-1]) 
    CumCst[i] = CumCst[i-1] + 0.003; 
    else 
    CumCst[i] = CumCst[i-1]; 
    } 
    if(poslong) 
    { 
    if(C[i] > C[i-1]) 
    CumCst[i] = CumCst[i-1] + 0.003; 
    else 
    CumCst[i] = CumCst[i-1]; 
    } 
    if(CumCst[i] > 0.13) 
    CumCst[i] = 0.13; 
    } 
    per=19; 
    Smth=2/(per+1)+CumCst; 
    MovAvg=AMA(C,Smth); 
    Plot(movavg,"",colorBlue,1); 
    Plot(C,"",1,64); 
      
    PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20); 
    PlotShapes(Sell* 
    shapeDownArrow,colorRed,0,H,-20); 
    Title="cumulative value = "+WriteVal(Cumcst,1.3);  
    
      ----- Original Message -----  
      
      
      Sent: Saturday, January 23, 2010 1:37 
      AM 
      Subject: Re: [amibroker] Help with 
      formula 
      
    
      
      Anthony --
  I have 
      added comments to your code below: // 
      Anthony.afl
  Buy=Cross(C,EMA(C,19)); Sell=Cross(EMA(C,19),C) 
      ; CumCst=0.00; poslong=0; posshort=0; for (i=1; i < 
      BarCount; i++) {     if(Buy[i])     
      {     poslong==1;    // == doesn't set 
      poslong to 1, it stays 0     posshort==0;   
      //  use = to set value     
      CumCst[i]=0.10;     }
      
      if(Sell[i])     {     
          poslong==0;         
      posshort==1;    // == doesn't set posshort to 1, it stays 
      0         CumCst[i]=0.10;  
      //  use = to set 
      value     
      }
      if(posshort) // posshort is 0 and code below 
      is never executed     {     
          if(C[i] < C[i-1])     
              CumCst[i] = CumCst[i-1] + 
      0.003;         else     
              CumCst[i] = 
      CumCst[i-1];     }
      if(poslong) 
      // poslong is 0 and code below is never executed     
      {         if(C[i] > 
      C[i-1])             
      CumCst[i] = CumCst[i-1] + 0.003;         
      else             CumCst[i] 
      = CumCst[i-1];     } 
         
        
        
        Keith, 
          
        Thanks...but that does not seem to be the 
        problem..when there is a signal 
        buy or sell...cumCST starts at 0.10 and 
        increments by 0.003 as per the 
        formula...that is not happening....it 
        must be something else 
          
        Anthony 
          
          
          
          
        
          ----- 
          Original Message -----  
          
          
          Sent: 
          Friday, January 22, 2010 10:35 PM 
          Subject: 
          Re: [amibroker] Help with formula 
          
    
          
          In four places you 
          used == where you should have used > Anthony 
          Faragasso wrote:  
            
            
            
            Hello, 
            Could someone look at this please...I can not see the 
            error... 
            The cumCST should increment up to .13 but it is not 
            happening.. 
              
            Thank you 
            Anthony 
              
            Buy=Cross(C,EMA(C,19)); 
            Sell=Cross(EMA(C,19),C) ;  
            CumCst=0.00; 
            poslong=0; 
            posshort=0; 
            for 
            (i=1; i 
            < BarCount; 
            i++) 
            { 
            if(Buy[i]) 
            { 
            poslong==1; 
            posshort==0; 
            CumCst[i]=0.10; 
            } 
            if(Sell[i]) 
            { 
            poslong==0; 
            posshort==1; 
            CumCst[i]=0.10; 
            } 
              
            if(posshort) 
            { 
            if(C[i] 
            < C[i-1]) 
            CumCst[i] 
            = CumCst[i-1] + 0.003; 
            else 
            CumCst[i] 
            = CumCst[i-1]; 
            } 
            if(poslong) 
            { 
            if(C[i] 
            > C[i-1]) 
            CumCst[i] 
            = CumCst[i-1] + 0.003; 
            else 
            CumCst[i] 
            = CumCst[i-1]; 
            } 
            if(CumCst[i] 
            >= 0.13) 
            CumCst[i] = 
            0.13; 
            } 
            per=19; 
            Smth=2/(per+1)+CumCst; 
            MovAvg=AMA(C,Smth); 
            Plot(movavg,"",colorBlue,1); 
            Plot(C,"",1,64); 
              
            PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20); 
            PlotShapes(Sell* 
            shapeDownArrow,colorRed,0,H,-20); 
            Title="cumulative 
            value = "+WriteVal(Cumcst,1.3);        
        
      
   
 
    
    
 
__._,_.___
  
**** IMPORTANT PLEASE READ **** 
This group is for the discussion between users only. 
This is *NOT* technical support channel. 
 
TO GET TECHNICAL SUPPORT send an e-mail directly to  
SUPPORT {at} amibroker.com 
 
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at 
http://www.amibroker.com/feedback/ 
(submissions sent via other channels won't be considered) 
 
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: 
http://www.amibroker.com/devlog/ 
 
  
     
    
 
      
   
__,_._,___
  |