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

[amibroker] Re: Can be coded without loop?



PureBytes Links

Trading Reference Links

For the record. 
I have corrected a glitch in the Dynamic Highest Peak (Pivot Point) 
code.
I have also added the simpler Dynamic Highest Value.

Please note that my code examples in this post where specifically 
intended for use as visual aids in charts.
They may have uses in other modes but might need modification as 
they do involve references to *future* bars.

/*PLOTDYNHI*/

/*DYNAMICALLY PLOTS HIGHEST VALUE FOR THE PERIOD*/


/*Suitable for overlaying price(C)charts*/
/*DoubleClick left mouse button on any bar in the chart to select 
the period*/
/*DoubleClick left mouse button on space to the right of the chart 
to deselect the period*/
/*If no period is selected the default is all bars*/



P = (LastValue(BarIndex()) - BeginValue(BarIndex())) + 1;//Periods
PH = HHV(C,P);//PeriodHigh
SD = IIf(DateNum() < BeginValue(DateNum()), Null, LastValue
(PH));//SelectedDate //(unwrap back to SD)

Plot(SD, "PeriodHi",34,8);

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

/*PLOTDYNHIPEAK*/

/*DYNAMICALLY PLOTS HIGHEST PEAK VALUE FOR THE PERIOD*/


/*Suitable for overlaying price(C)charts*/
/*DoubleClick left mouse button on any bar in the chart to select 
the period*/
/*DoubleClick left mouse button on space to the right of the chart 
to deselect the period*/
/*If no bar is selected the defaults is all bars*/
/*Caution: it will not see peaks with flat tops (two or more equal 
closes)*/
/*Caution:if there is no peak within the selected period the most 
recent peak will be indicated*/ 

PK = C > Ref(C,-1) AND Ref(C,1) < C;//Peak
PKV = IIf(PK == 1, ValueWhen(PK,C,1), ValueWhen(PK,C,0));//PeakValue
P = (LastValue(BarIndex()) - BeginValue(BarIndex())) + 1;//Periods
HPK = HHV(PKV,P);//HighestPeakValue
SD = IIf(DateNum() < BeginValue(DateNum()), Null, LastValue
(HPK));//SelectedDate //(unwrap back to SD)

Plot(SD, "PeriodHiPeak",34,8);


BrianB2


--- In amibroker@xxxxxxxxxxxxxxx, "brian.z123" <brian.z123@xxx> 
wrote:
>
> Hello John,
> 
> I came out of weekly hibernation on account of you being a 
gentleman 
> and a scholar.
> 
> Here is a small suite that fits nicely with Prakash's example.
> I modified his code to make it consistent with my style (I prefer 
> bar charts to candlestick and generally overlay for this type of 
> *indicator*).
> I haven't got around to doing the troughs.
> They are the introductory modules for some higher level indicators 
> (still in the pipeline).
> 
> I hope they offer some help or stimulate some ideas that lead to 
> resolutions for you.
> 
> ----------------------------------------------------------------
> //PLOTSRCHANNEL
> 
> //Plots a support and resistance channel
> //Top Band looks back X periods and plots a new recent HHV each 
time 
> the Close crosses above the MA
> //Bottom Band looks back X periods and plots a new recent LLV each 
> time Close crosses below the MA
> //Suitable for overlaying on charts
> 
> /* Modified from AFL Code by Prakash Shenoi */
> 
> P= Param("Periods",10,1,30,1);//Periods
> R=ValueWhen(Cross(C,MA(C,P)),HHV(H,P),1);//Resistance
> S=ValueWhen(Cross(MA(C,P),C),LLV(L,P),1);//Support
> Plot (R,"Res",34,8+16);
> Plot (S,"Supp",32,8+16);
> 
> ----------------------------------------------------------------
> 
> //PLOTALLPEAKS
> 
> //PLOTS ALL PEAK RESISTANCE LINES
> 
> //Suitable for overlaying charts
> //Best viewed with chart in colorBlack, styleLine view
> //This example is for use with Price(C) charts
> //Peaks can be defined for any array 
> //A Peak is defined as the Highest High central to any three bars
> /*Alternative Peak definitions can use more bars 
> AND/OR allow for equal highs on consecutive bars*/
> /*Green is chosen as the Resistance line color to 
> standardise ProfitStop lines for Bull trades*/
> /*Red is chosen as the Support line color to 
> standardise StopLoss lines for Bear trades*/
> 
> PK = C > Ref(C,-1) AND Ref(C,1) < C;//Peak
> PKV = ValueWhen(PK,C,1);//PeakValue
> Plot(PKV, "LastPeak",34,1);
> 
> ---------------------------------------------------------------
> 
> //PLOTLASTPEAK
> 
> //Suitable for overlaying charts
> /*Once overlayed on one chart use the keyboard arrows to scroll up 
> or down through symbol lists*/
> //SelectedDate ignores dates (bars) before the nominated peak
> //Add additional resistance lines if a deeper history is required
> /*Code variations can identify major peaks or alternatively change 
> the timeframe upwards*/
> 
> //PLOTS THE MOST RECENT PEAK RESISTANCE LINE
> 
> PK = C > Ref(C,-1) AND Ref(C,1) < C;//Peak
> PKV = ValueWhen(PK,C,1);//PeakValue
> PKD = ValueWhen(PK,DateNum(),1);//PeakDate
> SD = IIf(DateNum() < LastValue(PKD,lastmode = True ), Null, 
LastValue
> (PKV,Lastmode = True));//SelectedDate (unwrap this line back to SD)
> 
> Plot(SD, "LastPeak",34,8);
> 
> //PLOT 2ND LAST PEAK RESISTANCE LINE
> 
> PKV2 = ValueWhen(PK,C,2);//PeakValue2
> PKD2 = ValueWhen(PK,DateNum(),2);//PeakDate2
> SD2 = IIf(DateNum() < LastValue(PKD2,lastmode = True ), Null, 
> LastValue(PKV2,Lastmode = True));//SelectedDate (unwrap this line 
> back to SD)
> 
> Plot(SD2, "LastPeak2",34,8);
> 
> -------------------------------------------------------------------
> 
> //PlotDynHiPeak
> 
> //DYNAMICALLY PLOTS HIGHEST PEAK VALUE FOR THE PERIOD
> 
> 
> //Suitable for overlaying charts
> /*DoubleClick left mouse button on any bar in the chart to select 
> the period*/
> /*DoubleClick left mouse button on space to the right of the chart 
> to deselect the period*/
> /*Caution: it will not see peaks with flat tops (two or more equal 
> closes)*/
> /*Caution: (draft code) occasionally selects HHV resistance one 
bar 
> outside of range, cause not known*/
> 
> PK = C > Ref(C,-1) AND Ref(C,1) < C;//Peak
> PKV = ValueWhen(PK,C,1);//PeakValue
> P = LastValue(BarIndex(),Lastmode=True) - BeginValue(BarIndex
> ());//Period (unwrap this line back to P)
> HPK = HHV(PKV,P);//HighestPeakValue
> SD = IIf(DateNum() < BeginValue(DateNum()), Null, LastValue
> (HPK,lastmode=True));//SelectedDate (unwrap this line back to SD)
> 
> Plot(SD, "PeriodHiPeak",34,8);
> 
> 
> 
> BrianB2 8:-).............(RayBans on forehead)
> 
> 
> 
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "John R" <jr-ta@> wrote:
> >
> > Hi
> > 
> > I wanted to plot some horizontal lines extending from successive 
> hi and lo
> > pivot points. The code below illustrates the intention but does 
> not work as
> > I guess IIF is evaluating the argument arrays prior to execution.
> > 
> > Wondering if there is a way to do this without looping? 
Basically 
> need
> > method to propagate same value thru array until condition 
changes 
> then
> > propagate next value...
> > 
> > John
> > 
> > 8<
> > /* draw horizontal lines at hi & lo pivot points*/
> > //P = ParamField("Price field",-1);
> > p=Close;
> > Hipiv = IIf(P<Ref(P,-1) AND (Ref(P,-1)>Ref(P,-2)),1,0);
> > Lopiv = IIf(P>Ref(P,-1) AND (Ref(P,-1)<Ref(P,-2)),1,0);
> > Hline=0;
> > hline=IIf(hipiv==1,Ref(p,-1),Ref(hline,-1));
> > Plot (C,"close",colorBlack);
> > Plot (Hline,"hline",colorRed);
> > 8<
> > /
> >
>




Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.13.27/517 - Release Date: 11/3/2006