| 
 PureBytes Links 
Trading Reference Links 
 | 
  
Aron, 
  
THANK YOU....that did it....I just could not see 
it... 
  
Anthony 
  
  
  ----- Original Message -----  
  
  
  Sent: Saturday, January 23, 2010 12:44 
  PM 
  Subject: Re: [amibroker] Help with 
  formula 
  
    
  
  Ah, your increment rule overwrites the reset rule. It should 
  be:
  if(posshort && !Sell[i])     
  {         if(C[i] < 
  C[i-1])         CumCst[i] = CumCst[i-1] + 
  0.003;         else     
      CumCst[i] = CumCst[i-1];     
  }     if(poslong && !Buy[i])     
  {         if(C[i] > 
  C[i-1])         CumCst[i] = CumCst[i-1] + 
  0.003;         else     
      CumCst[i] = CumCst[i-1];     
  }
 
  On 1/23/2010 6:24 PM, Anthony Faragasso wrote: 
   
    Aron, 
      
    I did what you suggested...but it just 
    stays at 0.13 does not re-set or increment . 
      
    Here is what I have: 
      
    
    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 12:16 PM 
      Subject: 
      Re: [amibroker] Help with formula [1 Attachment] 
      
    
      
      With the correction "==" to "=" your code works as it should. remove 
      it from the chart window and "apply indicator" again.
 
  On 
      1/23/2010 4:34 PM, Anthony Faragasso wrote:  
      
        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/ 
 
  
     
    
 
      
   
__,_._,___
  |   
 |