| 
 
 ah yes I see. That shows there are many ways to 
solve a problem. Will be interesting if someone can solve it using array logic 
only.   rgds, Ed       
  ----- Original Message -----  Sent: Saturday, January 23, 2010 6:58 
  PM Subject: Re: [amibroker] Help with 
  formula 
 
  
   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/
 
 
 
 
 ![]()  
 
 __,_._,___
 |