[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Number of consecutive days a stock closes above a pivot point MA



PureBytes Links

Trading Reference Links

Paul   - See if this helps.  The clip looks back to the last time AboveMA was == to zero
Doing type of explore helps me see how the values in the arrays like AboveMA and Consdays. 
Then there's the function ValueWhen  where you can lookback for the Nth occurence of the condition
it that might help you also. 

Joe L. 
pd = (H+L+C)/3; 

ppMA=MA(pd,3);

AboveMA = C>ppma; Consdays[1]= 1; 

Consdays= BarsSince(AboveMA==0); 

Filter =1; 

AddColumn(AboveMA,"Above MA array"); 

AddColumn(ConsDays,"Cons Days"); 


  ----- Original Message ----- 
  From: seegerp2000 
  To: amibroker@xxxxxxxxxxxxxxx 
  Sent: Tuesday, February 13, 2007 5:18 PM
  Subject: [amibroker] Number of consecutive days a stock closes above a pivot point MA


  I'm trying to create a simple indicator that tells me the number of
  days a stock has closed above or below a pivot point moving average.
  At least it sounded simple when I started. Everything works great
  except for the portion of the indicator that computes the total number
  of days. 

  Basically, if a stock closes above a pivot point MA that's 1 day. If
  the stock closed above the pivot point MA the previous day that would
  be todays value (1 day) Plus yesterdays value (1 day)=2 days. If on
  the third day the stock closed above the pivot point MA that would be
  yesterdays value (2 in this case) plus 1 for today =3. 

  So, here's the code: (I left out the indicator portion of the code)

  *************************************

  day_h=H[BarCount-1];
  day_l=L[BarCount-1];
  day_c=C[BarCount-1];

  ConsDays[1]=0; //initialize the consecutive days array...first value is 0
  Temp1=0;
  Temp2=0;

  /*--------------------------------------*/
  // day
  DH=day_h;
  DL=day_l;
  DC=day_c;

  // DAY PIVOT Calculation

  pd = ( H+ L + C )/3;
  sd1 = (2*pd)-H;
  sd2 = pd -H + L;
  rd1 = (2*pd)-L;
  rd2 = pd +H -L;
  ppMA=MA(pd,3);

  AboveBelowMA=IIf(C>=Ref(ppMA,-1),(C-Ref(ppMA,-1)),(C-Ref(ppMA,-1)));
  //AboveBelowpp=IIf(C>=Ref(pd,-1),(C-Ref(pd,-1)),(Ref(pd,-1)-C));

  /*The following code takes the data from the array above and adds a +1
  to the ConsDays array from yesterday
  if the AboveBelowMA is positive. If the value for ConsDays (from
  yesterday) is a positive value and today the value is below the MA
  (resulting from a reversal or a price move that results in a close
  below the MA) then the ConsDays value is reset to 0
  */

  ConsDays=Ref(ConsDays,-1)+IIf(AboveBelowMA>=0,1,-1); 

  **************************

  For whatever reason the AFL is seeing the Ref(ConsDays,-1) as Zero
  each time...I'm not sure why it's doing that. For whatever reason
  trying to add a value from yesterday to a value from today is not
  functioning. 

  Any ideas?

  Paul 



   
Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.441 / Virus Database: 268.17.37/682 - Release Date: 2/12/2007 1:23 PM