hi,

here is 1 way of doing it, regards, Ed


// current price 
current_price = C; 

// price X days back at same time 
X = 1; // 1 day back 

// current time 
ct = LastValue(TimeNum()); 

// bar at current time 
bact = TimeNum() >= ct; bact = bact - Ref(bact,-1); 

// price at current time 
pact = ValueWhen(bact == 1,C); 

// compress to daily in order to make the shift X 
DP = TimeFrameCompress(pact, inDaily, compressLast); 

// perform the shift X days back 
DP = Ref(DP,-1 * X); 

// expand back to current time interval from daily 
cti = TimeFrameExpand( DP, inDaily, expandFirst ); 

GraphXSpace = 5; 
SetChartOptions(0, chartShowDates); 
Plot(C,"\nLast",colorWhite,64); 
Plot(cti,"\ncti",colorWhite,1); 
PlotShapes(IIf(bact == 1,shapeCircle,shapeNone),colorWhite,0,C,0); 

""; 
"Current price at time " + WriteVal(ct) + " "  + WriteVal(C); 
"Price at time " + WriteVal(ct) + " " + NumToStr(X) + " days back: " + 
WriteVal(LastValue(cti)); 



  ----- Original Message ----- 
  From: B S 
  To: [email protected] 
  Sent: Friday, January 08, 2010 10:53 PM
  Subject: [amibroker] Price at Specified Time


    

  Hi- 

  I am using intraday data and would like to be able to get the price from the 
exact same time of day as the current bar but from x days ago.  I tried to 
accomplish this with ValueWhen() but I can't think of a way to set the current 
bar time constant.  Can anyone help?

  x=2;
  CurrBarTime = TimeNum();

  ValAtTime = ValueWhen(TimeNum() == CurrBarTime,C,X);



  ...obviously the CurrBarTime just continues to roll back along with the 
ValueWhen function.  



  Also, if I can get this to work, I am likely to come across a scenario where 
there is no bar available for exactly same time on previous days.  In that 
instance I'd like to take the next closest bar...would also appreciate any 
thoughts on how to do that..  



  Thank you. 




  

Reply via email to