Hey everyone. I've been working on building an indicator and have been unable 
to get it to work.I've been using AB mostly for charting ,explorations,etc,and 
have only built a couple of very simple indicators up to this point,so I'm 
having a bit of a hard time with this and am hoping someone can point me in the 
right direction.

Basically, I'd like to look at the Dow and find what % of the volume at the end 
of each day is negative and what % of the point change is negative and plot it 
as a line on a 0-100 scale.(it would look similar to an RSI).

Each day,the indicator would tally up all of the negative point changes,and all 
the positive changes and find what % of the points were negative.It would also 
do the same for the vol.

For example,  pnp=tnp/(tpp+tnp)* 100;  represents ,"the % of neg. points = 
total neg. pts / (total positive pts + total neg. points)*100"

I'd would do the same for the volume and plot each line seperately on the same 
graph.

I started by assigning each symbol in the Dow a variable,
   v_aa=Foreign("AA","V",1); (for the volume)
   p_aa=Foreign("AA","C",1); (for the points)

I then used IIF to find which stocks closed lower than yesterday and assigned 
it a variable depending on whether it was positive or negative.
   np_aa=  IIf (p_aa<Ref(p_aa,-1),Ref(p_aa,-1) - p_aa, 0);

"  /*if todays close is < yesterdays close,subtract todays close from 
yesterdays and assign it the varible "np_aa", else nothing*/"

..and again for positive close.
   pp_aa=  IIf (p_aa<Ref(p_aa,-1),0,p_aa-Ref(p_aa,-1)  );

"/*if todays close is < yesterdays close,do nothing, else subtract yesterdays 
close from todays and assign it the varible "pp_aa"*/  "

 So now I have a two lists of  Dow stocks that have closed up for the day,  
closed down,and I add each list up to come up with a total of up points and a 
total of down points.

   /* find total up points. tpp="total positive points"*/

tpp =(pp_aa+ pp_axp+ pp_ba+ pp_bac+ pp_c+ pp_cat+ pp_cvx+ pp_dd+ pp_dis+ pp_ge+ 
pp_gm+ pp_hd+ pp_hpq+ pp_ibm+ pp_intc+ 
      pp_jnj+ pp_jpm+ pp_kft+ pp_ko+ pp_mcd+ pp_mmm+ pp_mrk+ pp_msft+ pp_pfe+ 
pp_pg+ pp_t+ pp_utx+ pp_vz+ pp_wmt+ pp_xom);

   /* find total down points. tnp="total negative points"*/

tnp=(np_aa+ np_axp+ np_ba+ np_bac+ np_c+ np_cat+ np_cvx+ np_dd+ np_dis+ np_ge+ 
np_gm+ np_hd+ np_hpq+ np_ibm+ np_intc+ 
     np_jnj+ np_jpm+ np_kft+ np_ko+ np_mcd+ np_mmm+ np_mrk+ np_msft+ np_pfe+ 
np_pg+ np_t+ np_utx+ np_vz+ np_wmt+ np_xom);

I use the same method for finding the up and down volume.

Then I find the % of the total points that is negative..

      /* find the percentage of negative points. pnp="percentage of 
neg.points"*/

pnp=tnp/(tpp+tnp)* 100;

Again I do the same for the volume.

Now I have two seperate values that I want to plot on the same graph with a 
0-100 scale,which I tried do this way...

    SetChartOptions(0,0,chartGrid10|chartGrid90);
Plot(pnp,"% of neg. pts.",colorYellow);
Plot(pnv,"% of neg. vol.",colorBlue);

First,the header,or title (I'm not sure of the correct term) lists the stock 
which is displayed in the chart above the indicator.I thought using the foreign 
function would allow me to plot an indicator based on data other than the 
symbol that is being currently displayed.

Also I have no data showing up in the indicator window. It says "empty" for 
both vol. and points.

Sorry for the long post,I just wanted to give enough info.I hope I've been 
clear enough for people to have an idea what I'm trying to do.I'm sure I'm 
making this a lot more complicated than it needs to be,but like I said I'm 
still trying to get the hang of programming.If anyone could give me a few 
pointers and a nudge in the right direction it would be greatly appreciated. 
Thanks .   -jim 



   

 


              

 

Reply via email to