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

RE: [amibroker] AmiBroker 4.50.10 maintenance update



PureBytes Links

Trading Reference Links

I have milled over this code and cannot figure out how to get this 
code to plot pivots starting from 6 months back..... Any thoughts 
for you really smart code guys?

Thanks for your help
Mark



--- In amibroker@xxxxxxxxxxxxxxx, John Ingle <jcingle_2000@xxxx> 
wrote:
> Jason,
>  
> If I wanted to run a scan with this code (so I can see todays buy 
and sell pivots) without having to view each equity what would need 
to be added to this code or is it possible?
>  
> Thanks in advance,
> John
> 
> Jason Hart <jhart_1972@xxxx> wrote:
> Mark,
>  
> Try this - I can't remember where I found it but it may be what 
you are looking for
>  
> Jason
>  
> 
> /* **********************************
> 
> Code to automatically identify pivots
> 
> ********************************** */
> 
> // -- what will be our lookback range for the hh and ll?
> 
> nBars = Param("Number of bars", 12, 5, 40);
> 
> // -- Title.
> 
> Title = Name() + " (" + StrLeft(FullName(), 15) + ") O: " + Open 
+ ", 
> 
> H: " + High + ", L: " + Low + ", C: " + Close;
> 
> // -- Plot basic candle chart
> 
> PlotOHLC(Open, High, Low, Close, 
> 
> "BIdx = " + BarIndex() + 
> 
> "\n" + "O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L 
> 
> + "\n"+"C ",
> 
> colorBlack, styleCandle); 
> 
> GraphXSpace=7;
> 
> // -- Create 0-initialized arrays the size of barcount
> 
> aHPivs = H - H;
> 
> aLPivs = L - L;
> 
> // -- More for future use, not necessary for basic plotting
> 
> aHPivHighs = H - H;
> 
> aLPivLows = L - L;
> 
> aHPivIdxs = H - H;
> 
> aLPivIdxs = L - L;
> 
> nHPivs = 0;
> 
> nLPivs = 0;
> 
> lastHPIdx = 0;
> 
> lastLPIdx = 0;
> 
> lastHPH = 0;
> 
> lastLPL = 0;
> 
> curPivBarIdx = 0;
> 
> // -- looking back from the current bar, how many bars 
> 
> // back were the hhv and llv values of the previous 
> 
> // n bars, etc.?
> 
> aHHVBars = HHVBars(H, nBars);
> 
> aLLVBars = LLVBars(L, nBars);
> 
> aHHV = HHV(H, nBars);
> 
> aLLV = LLV(L, nBars);
> 
> // -- Would like to set this up so pivots are calculated back from
> 
> // last visible bar to make it easy to "go back" and see the pivots
> 
> // this code would find. However, the first instance of 
> 
> // _Trace output will show a value of 0
> 
> aVisBars = Status("barvisible");
> 
> nLastVisBar = LastValue(Highest(IIf(aVisBars, BarIndex(), 0)));
> 
> _TRACE("Last visible bar: " + nLastVisBar);
> 
> // -- Initialize value of curTrend
> 
> curBar = (BarCount-1);
> 
> curTrend = "";
> 
> if (aLLVBars[curBar] < 
> 
> aHHVBars[curBar]) {
> 
> curTrend = "D";
> 
> }
> 
> else {
> 
> curTrend = "U";
> 
> }
> 
> // -- Loop through bars. Search for 
> 
> // entirely array-based approach
> 
> // in future version
> 
> for (i=0; i<120; i++) {
> 
> curBar = (BarCount - 1) - i;
> 
> // -- Have we identified a pivot? If trend is down...
> 
> if (aLLVBars[curBar] < aHHVBars[curBar]) {
> 
> // ... and had been up, this is a trend change
> 
> if (curTrend == "U") {
> 
> curTrend = "D";
> 
> // -- Capture pivot information
> 
> curPivBarIdx = curBar - aLLVBars[curBar];
> 
> aLPivs[curPivBarIdx] = 1;
> 
> aLPivLows[nLPivs] = L[curPivBarIdx];
> 
> aLPivIdxs[nLPivs] = curPivBarIdx;
> 
> nLPivs++;
> 
> }
> 
> // -- or current trend is up
> 
> } else {
> 
> if (curTrend == "D") {
> 
> curTrend = "U";
> 
> curPivBarIdx = curBar - aHHVBars[curBar];
> 
> aHPivs[curPivBarIdx] = 1;
> 
> aHPivHighs[nHPivs] = H[curPivBarIdx];
> 
> aHPivIdxs[nHPivs] = curPivBarIdx;
> 
> nHPivs++;
> 
> }
> 
> // -- If curTrend is up...else...
> 
> } 
> 
> // -- loop through bars
> 
> } 
> 
> // -- Basic attempt to add a pivot this logic may have missed
> 
> // -- OK, now I want to look at last two pivots. If the most 
> 
> // recent low pivot is after the last high, I could
> 
> // still have a high pivot that I didn't catch
> 
> // -- Start at last bar
> 
> curBar = (BarCount-1);
> 
> candIdx = 0;
> 
> candPrc = 0;
> 
> lastLPIdx = aLPivIdxs[0];
> 
> lastLPL = aLPivLows[0];
> 
> lastHPIdx = aHPivIdxs[0];
> 
> lastHPH = aHPivHighs[0];
> 
> if (lastLPIdx > lastHPIdx) {
> 
> // -- Bar and price info for candidate pivot
> 
> candIdx = curBar - aHHVBars[curBar];
> 
> candPrc = aHHV[curBar]; 
> 
> if (
> 
> lastHPH < candPrc AND
> 
> candIdx > lastLPIdx AND
> 
> candIdx < curBar) {
> 
> 
> 
> // -- OK, we'll add this as a pivot...
> 
> aHPivs[candIdx] = 1;
> 
> // ...and then rearrange elements in the 
> 
> // pivot information arrays
> 
> for (j=0; j<nHPivs; j++) {
> 
> aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-
> 
> (j+1)];
> 
> aHPivIdxs[nHPivs-j] = aHPivIdxs[nHPivs-(j+1)];
> 
> }
> 
> aHPivHighs[0] = candPrc ;
> 
> aHPivIdxs[0] = candIdx;
> 
> nHPivs++;
> 
> } 
> 
> } else {
> 
> 
> 
> // -- Bar and price info for candidate pivot
> 
> candIdx = curBar - aLLVBars[curBar];
> 
> candPrc = aLLV[curBar]; 
> 
> if (
> 
> lastLPL > candPrc AND
> 
> candIdx > lastHPIdx AND
> 
> candIdx < curBar) {
> 
> 
> 
> // -- OK, we'll add this as a pivot...
> 
> aLPivs[candIdx] = 1;
> 
> // ...and then rearrange elements in the 
> 
> // pivot information arrays
> 
> for (j=0; j<nLPivs; j++) {
> 
> aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
> 
> aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
> 
> }
> 
> aLPivLows[0] = candPrc;
> 
> aLPivIdxs[0] = candIdx;
> 
> nLPivs++;
> 
> }
> 
> }
> 
> // -- Dump inventory of high pivots for debugging
> 
> /*
> 
> for (k=0; k<nHPivs; k++) {
> 
> _TRACE("High pivot no. " + k
> 
> + " at barindex: " + aHPivIdxs[k] + ", " 
> 
> + WriteVal(ValueWhen(BarIndex()==aHPivIdxs[k], 
> 
> DateTime(), 1), formatDateTime)
> 
> + ", " + aHPivHighs[k]);
> 
> }
> 
> */
> 
> // -- OK, let's plot the pivots using arrows
> 
> PlotShapes(
> 
> IIf(aHPivs==1, shapeDownArrow, shapeNone), colorRed, 0,
> 
> High, Offset=-15);
> 
> PlotShapes(
> 
> IIf(aLPivs==1, shapeUpArrow , shapeNone), colorGreen, 0, 
> 
> Low, Offset=-15);
> 
> 
> Graham <gkavanagh@xxxx> wrote:
> Yes, I thought there was something in the AFL library (AB or yahoo 
site),
> and also in past emails, check the email history for last year.
> 
> Cheers,
> Graham
> http://www.golala.com/forums/?mforum=asxsharetrading
> http://groups.msn.com/fmsaustralia 
> 
> -----Original Message-----
> From: mleonsprint [mailto:mleonsprint@x...] 
> Sent: Monday, 26 January 2004 1:26 PM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Pivots, Pivots, Pivots........
> 
> 
> Does anyone have any formula's for plotting past pivots on the 
> chart?  Or any idea's of doing so?  I have been trying and comming 
> up empty handed.....
> 
> Thanks for your help
> 
> Mark
> 
> 
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at:
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> 
> Yahoo! Groups Links
> 
> To visit your group on the web, go to:
> http://groups.yahoo.com/group/amibroker/
> 
> To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
> 
> Your use of Yahoo! Groups is subject to:  
http://docs.yahoo.com/info/terms/ 
> 
> 
> 
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at: 
http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> 
> 
> 
> ---------------------------------
> Yahoo! Groups Links
> 
>    To visit your group on the web, go to:
> http://groups.yahoo.com/group/amibroker/
>   
>    To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
>   
>    Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service. 
> 
> 
> 
> ---------------------------------
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free web site building tool. Try it! 
> 
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at: 
http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> 
> 
> 
> ---------------------------------
> Yahoo! Groups Links
> 
>    To visit your group on the web, go to:
> http://groups.yahoo.com/group/amibroker/
>   
>    To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
>   
>    Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service. 
> 
> 
> 
> ---------------------------------
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free web site building tool. Try it!


Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 

Yahoo! Groups Links

To visit your group on the web, go to:
 http://groups.yahoo.com/group/amibroker/

To unsubscribe from this group, send an email to:
 amibroker-unsubscribe@xxxxxxxxxxxxxxx

Your use of Yahoo! Groups is subject to:
 http://docs.yahoo.com/info/terms/