like Thomas says you can get multiple signals which complicates things. In the 
code below I remove all signals in the waitPeriod after you get the first 
signal. Maybe a bit of a tough solution but I can only think of using a loop to 
get rid of these additional signals, I would not know how to do it using array 
based calculations (see chart for result). 

SetBarsRequired(10000,10000); 

triggerPercentage = 1.03; 
waitPeriod = 15; 

Setup = C < BBandBot(C,20,2); 

for (i = 0; i < BarCount - waitPeriod; i++) { 

   if (Setup[ i ]) { 

      for (j = i + 1; j < i + waitPeriod; j++) { 
       
         Setup[ j ] = 0; 
       
      } 

      i = j; 

   } 

} 

BarssinceSetup = BarsSince(Setup); 
SetupPrice = ValueWhen(Setup,H) * triggerPercentage; 
SetupPrice = IIf(BarssinceSetup < waitPeriod,SetupPrice,Null); 

Buy = Cross(H,SetupPrice) AND !IsNull(SetupPrice); BuyPrice = IIf(O > 
SetupPrice,O,SetupPrice); 

SetChartOptions(0, chartShowDates); 
GraphXSpace = 5; 
Plot(C,"C",1,64); 
Plot(BBandBot(C,20,2),"",colorGold,1); 
Plot(SetupPrice,"",colorLightBlue,1); 
PlotShapes(IIf(Setup,shapeSmallCircle,0),colorYellow, layer = 0, yposition = L, 
offset = 0 ); 







  ----- Original Message ----- 
  From: Thomas Z. 
  To: [email protected] 
  Sent: Wednesday, March 21, 2007 8:08 AM
  Subject: RE: [amibroker] Hold and Valuewhen functions


  I think you are wondering because setups on following bars overwrite the
  first setup and therefore they are producing new "setup prices".

  Thomas
  www.patternexplorer.com

  From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
  Of bernardedmond01
  Sent: Wednesday, March 21, 2007 4:15 AM
  To: [email protected]
  Subject: [amibroker] Hold and Valuewhen functions

  I wondered whether you could tell me where I'm wrong with this basic 
  formula. I want it to hold my setup for 5 bars and then buy once the 
  high is more than 15% higher than the setup price. I'm having 
  difficulty with the hold and value when functions.
  Thanks in advance.

  Setup = C<BBandBot (C,20,2);
  Buyzone= Hold(Setup,5); //What I'm trying to say here is once I have a 
  setup, hold it up to 5 periods//
  SetupPrice = ValueWhen (Setup,H); //What I'm trying to say here is the 
  setup price is the high of the setup//
  Buy = Buyzone AND H>SetupPrice*1.15;
  Sell = 0;



   

Attachment: trig.png
Description: PNG image

Reply via email to