Mike,

Thanks alot.  It really helped me understand arrays.

-Ron

--- In [email protected], "Mike" <sfclimb...@...> wrote:
>
> It might help if you gave some actual code (e.g. what event?). But, if I 
> understand you correctly, then I believe that ValueWhen is the function that 
> you want.
> 
> http://www.amibroker.com/guide/afl/afl_view.php?id=163
> 
> It will cause all elements from the event onwards to reflect the value at the 
> time of the event, until the next time the event occurs.
> 
> Mike
> 
> --- In [email protected], "rselmanl" <no-cents-inv@> wrote:
> >
> > 
> > 
> > 
> > Want to fill myArray with a certain value after an event.  So far either 
> > increments or just places zero.  The goal is to take the value of the 
> > previous myArray value and place it in the current myArray value.  Want it 
> > to continue until value changed.  Hope this is explained reasonably.
> > 
> > While in Commentary / Interpration window it might be slower.  But don't 
> > want to use loops in backtesting etc.   
> > 
> > Your assistance is appreciated!
> > 
> > myArray[0] = 3.0;
> > myArray[1] = 6.0;
> > myArray[2] = 9.0; //I want to fill myArray with the last entered value
> > "BarIndex() = " + WriteVal(BarIndex()); //To show index only. 
> > 
> > printf("Before If statement: myArray = %f\n", LastValue(myArray, False));
> > if(LastValue(BarIndex(), False) >= 2)
> > {
> >     myArray = Ref(myArray, -1); //commented stuff is same result.
> >     //myArray[BarCount - 1] = myArray[BarCount - 2];
> >     //myArray[LastValue(BarIndex())] = myArray[LastValue(BarIndex()) - 1];
> > 
> >     printf("\nInside If statement: myArray = %f\n", LastValue(myArray, 
> > False));
> >     printf("\n");
> > }
> > 
> > printf("Outside If statement: myArray = %f\n", LastValue(myArray, False));
> > 
> > --- In [email protected], "Mike" <sfclimbers@> wrote:
> > >
> > > See Ref function in the user guide.
> > > http://www.amibroker.com/guide/afl/afl_view.php?name=ref
> > > 
> > > MyArray = Ref(whatever, -1); // Copy previous bar's values.
> > > 
> > > Mike
> > > --- In [email protected], "rselmanl" <no-cents-inv@> wrote:
> > > >
> > > > Can someone help?
> > > > 
> > > > I want to copy the previous bars value into the current bar.  E.G.  
> > > > myArray[BarCount - 1] = myArray[BarCount - 2]; 
> > > > This starts incrementing the array value.
> > > > Of course I wait until there are enough values to make the move.
> > > > Please see below (the last couple of lines especially).
> > > > 
> > > > Your help is appreciated!
> > > > 
> > > > -Ron
> > > > 
> > > > "BarCount() = " + WriteVal(BarCount); //Not relevant ~16K bars...
> > > > "BarIndex() = " + WriteVal(BarIndex());  //Think this is location in 
> > > > array.
> > > >         
> > > > myArray[0] = 2.0;
> > > > myArray[1] = 2.0;
> > > > myArray[2] = 2.0;
> > > > myArray[3] = 2.0;
> > > > myArray[4] = 1.0;
> > > > myArray[5] = 1.0;
> > > > myArray[6] = 1.0;
> > > > myArray[7] = 5.0;
> > > > myArray[8] = 5.0;
> > > > myArray[9] =  myArray[4];
> > > > myArray[10] = 5.0;
> > > > myArray[11] = 5.0;
> > > > myArray[12] = 5.0;
> > > > myArray[13] = 5.0;
> > > > myArray[14] = 5.0;
> > > > myArray[15] = 5.0;
> > > > myArray[16] = 5.0;
> > > > myArray[17] = 5.0;
> > > > myArray[18] = 5.0;
> > > > myArray[19] = 5.0;
> > > > myArray[20] = 1.0; //above is okay it seems.
> > > > 
> > > > 
> > > > if(LastValue(BarIndex(), False) > 15)
> > > > {  //printf statements seem to work.  
> > > >         printf("\nmyArray[Lastvalue(BarIndex(), False) - 3] = %f\n", 
> > > > myArray[LastValue(BarIndex(), False) - 3]);
> > > >         printf("myArray[Lastvalue(BarIndex(), False) - 2] = %f\n", 
> > > > myArray[LastValue(BarIndex(), False) - 2]);
> > > >         printf("myArray[Lastvalue(BarIndex(), False) - 1] = %f\n", 
> > > > myArray[LastValue(BarIndex(), False) - 1]);
> > > >         printf("myArray[Lastvalue(BarIndex(), False) - 0] = %f\n", 
> > > > myArray[LastValue(BarIndex(), False) - 0]);
> > > >         myArray[BarCount - 1] = myArray[BarCount - 2]; //same problem 
> > > > on next line.
> > > > //      myArray[LastValue(BarIndex())] = myArray[LastValue(BarIndex()) 
> > > > - 1];
> > > > }
> > > > //a plot statement will also increment and then drop to zero.
> > > > printf("\nLastValue(myArray, False) = %f\n\n", LastValue(myArray, 
> > > > False));
> > > >
> > >
> >
>


Reply via email to