Hello Richard - Hope you don't think I'm talking down to you but if you're in 
this for the long run this is what I would do (I did) 

1) I purchased a product called InfoSelect  and have collected about several 
years of clips and programs that looked interesting.   IS is from Microlog. 
Has been around for many years. It's an info database and indexes every 
character of every thing you clip and paste into the system. 

2) Understand how AB stores the data, a time series or arrays.  Functions 
process and return arrays and scalars and the function description will let you 
know.  ValueWhen returns an array and LastValue returns a scalar or number as 
documented in AB.

3) Use Explore  - one of the best ways to "see" what's happening.   Like so.  

Hope this  helps
Joe 

An Exploration Example 

Filter = 1; 

Array1 = ValueWhen(Close> Open, DateTime()); 

Array2 = ( ValueWhen( Status("firstbarinrange"),BarIndex() ) );

Array3 = ( ValueWhen( Status("lastbarinrange"),BarIndex() ) );

AddColumn(DateTime(),"Date",formatDateTime); 

AddColumn( Array1, "Date when Close > Open", formatDateTime );

AddColumn(Array2,"Numb2"); 

// Meets the condition only at the last bar in the range FROM TO setting - 
change the range to demonstrate

AddColumn(Array3,"Numb3"); 

// A number and doesn't change over the Explore 

AddColumn(LastValue(DateTime()),"Last Date",formatDateTime); 

// 
====================================================================================================

1st Sample Clip 

dt = DateTime();

Price1 = LastValue( ValueWhen(dt==StrToDateTime("12/05/2005"), C ) );

Price2 = LastValue( ValueWhen(dt==StrToDateTime("1/06/2006"), C ) );

Price3 = LastValue( ValueWhen(dt==StrToDateTime("2/07/2007"), C ) );

AddColumn(Price1 ,"Dec 5, 2005");

AddColumn(Price2 ,"Jan 6, 2006");

AddColumn(Price3 ,"Feb 7, 2007");

2nd Clip Example 

// Get the start and end bar indexes

start = LastValue( ValueWhen( Status( "firstbarinrange" ), BarIndex() ) );

end = LastValue( ValueWhen( Status( "lastbarinrange" ), BarIndex() ) );



3rd Clip 

// End User Variables

// ----------------------------------

StartBar = LastValue( ValueWhen( Status("firstbarinrange"),BarIndex() ) );

FinishBar = LastValue( ValueWhen( Status("lastbarinrange"),BarIndex() ) );

  ----- Original Message ----- 
  From: richpach2 
  To: [email protected] 
  Sent: Friday, October 24, 2008 12:34 AM
  Subject: [amibroker] AFL example request


  Hello,

  Can someone please post a simple example for ValueWhen and LastValue 
  functions? I looked at the Function Reference Guide and still do not 
  get it. All AFL examples where these functions are used are too complex 
  to interpret in context of entire code. I just need something that 
  shows how to use each function and highlights the difference between 
  them.

  Kind Regards
  Richard



   

Reply via email to