Fractals ZigZag indicating Wolfe Waves
Forums › ProRealTime English forum › ProBuilder support › Fractals ZigZag indicating Wolfe Waves
- This topic has 9 replies, 7 voices, and was last updated 5 years ago by ALE.
Tagged: wolf waves
-
-
02/20/2017 at 3:50 PM #25762
Hi.
I saw recently the Fractals ZigZag indicator (https://www.prorealcode.com/prorealtime-indicators/fractals-zigzag/#comment-2952), and thought that it would be very nice to detect Wolfe Waves on the graphics.
Could it be posible to add a number on the last 5 points, like 1, 2, 3, 4 and 5? In this way I could see if the last 5 points fulfill the conditions of these Wolfe Waves.
Or much better, could it be possible to automatically detect these waves and mark them on the screen?
For those who don’t know the conditions for these kind of waves, they are as follows:
For Up-trending waves:
- Point 2 is a high peak
- Point 1 is the minimum previous to the point 2
- Point 3 is the next minimum after point 2. It should be lower than point 1
- Point 4 is the next maximum after point 3, higher than point 1
- Point 5 is the last minimum, the lowest one, lower than point 3.
For Down-trending waves, exactly the inverse.
02/23/2017 at 5:28 PM #26192Hi Petrus, very interesting. I’d like to help, but I got no enough time until the next week. Please remind me if I don’t give news next week. Maybe someone else could help in the meantime ? 🙂
1 user thanked author for this post.
05/11/2017 at 8:38 AM #3515102/21/2018 at 6:53 PM #63411Hi,
I am also interested in such an indicator.
@nicolas, do you think you can have a look on this thread please?Thank you.
MrCrous
PS : Below, a code from TS8xx, maybe just help us to find equivalent functions ?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178INPUTS:TICKCHG(10), {Change (number of ticks) required to set up a new swinghigh/low.}PCTCHG(.2), {Percent change in price to set up a new swing high/low}OCCUR(1),PLOTBARS(40),ETALINE(true),ZIGZAG(TRUE);ARRAY:PBAR[50](0),P[50](0);VARS:X(0),PP(1),JA_SLOPE1(0),JLA_CTR(0),JLA_LINE(0),JAIRHBAR(0), { LAST SWING HIGH BAR}JAIRLBAR(0), {LAST SWING LOW BAR}LOWSEEK(FALSE), {LOOKING FOR A LOW OR A HIGH?}W(0), {COUNTER}JLA_IRH(0), {LAST SWING HIGH VALUE}JLA_IRL(99999), {LAST SWING LOW VALUE}JA_SLOPE2(0),JA_SLOPE3(0),JLA_PT1(0),WOLFE(0);{==================MAINPROGRAM=========================}IF CURRENTBAR = 1 THEN P[50] = C;IF LOWSEEK = FALSE AND P[50] <= H THENBEGINP[50] = H;PBAR[50] = 0;END;IF LOWSEEK = TRUE AND P[50] >= L THENBEGINP[50] = L;PBAR[50] = 0;END;IF (LOWSEEK = FALSE AND PBAR[50] <> 0) THENBEGINIF (TICKCHG = 0AND L < P[50] * ( 1 - PCTCHG / 100) )OR (TICKCHG <> 0AND L < ( P[50] - tickchg * minmove points)) THENBEGINIF ZIGZAG = TRUE THENPLOT4[PBAR[50]](P[50],"SWINGS");LOWSEEK = TRUE;FOR W = 1 TO 49BEGINPBAR[W] = PBAR[W+1];P[W] = P[W+1];END;P[50] = L;PBAR[50] = 0;END;END;IF (LOWSEEK = TRUE AND PBAR[50] <> 0) THENBEGINIF (TICKCHG = 0AND H> P[50] * ( 1 + PCTCHG / 100))OR (TICKCHG <> 0AND H > (P[50] + tickchg * minmove points )) THENBEGINIF ZIGZAG = TRUE THENPLOT4[PBAR[50]](P[50],"SWINGS");LOWSEEK = FALSE;FOR W = 1 TO 49BEGINPBAR[W] = PBAR[W+1];P[W] = P[W+1];END;P[50] = H;PBAR[50] = 0;END;END;IF TIME = LASTCALCTIMEAND DATE = LASTCALCDATEAND P[48 - PP] <> 0 THENBEGINPP = -1;WOLFE = 0;WHILE WOLFE < OCCUR AND PP < 46BEGINPP = PP + 1;VALUE1 = P[47-PP];VALUE2 = P[48-PP];VALUE3 = P[49-PP];VALUE4 = P[50-PP];CONDITION1 =VALUE2 > VALUE1AND VALUE4 > VALUE3AND VALUE4 < VALUE2AND VALUE3 < VALUE1AND VALUE4 > VALUE1;CONDITION2 =VALUE2 < VALUE1AND VALUE4 < VALUE3AND VALUE4 > VALUE2AND VALUE3 > VALUE1AND VALUE4 < VALUE1;IF CONDITION1 OR CONDITION2 THENWOLFE = WOLFE + 1;END;JA_SLOPE1 = (P[49-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[49-PP]);JA_SLOPE2 = (P[50-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[50-PP]);{LINE 1-3}if PBAR[47-PP] >=0 and PBAR[49-PP] >= 0 and PBAR[49-PP]-PLOTBARS >=0 thenbeginVALUE90 = TL_New(DATE[PBAR[47-PP]],TIME[PBAR[47-PP]],P[47-PP ],DATE[PBAR[49-PP]], TIME[PBAR[49-PP]],P[49-PP]);Value14=TL_SetColor(VALUE90, red);{VALUE93 = TL_SetExtRight(VALUE90,TRUE);}VALUE94 =TL_SETEND(VALUE90,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS],TL_GetVALUE(VALUE90,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS])); //end ;{LINE 1-4}if PBAR[47-PP] >= 0 and PBAR[50-PP] >= 0 and PBAR[49-PP]-PLOTBARS >= 0 thenbeginVALUE91 = TL_NEW(DATE[PBAR[47-PP]],TIME[PBAR[47-PP]],P[47-PP ],DATE[PBAR[50-PP]], TIME[PBAR[50-PP]],P[50-PP]);Value14=TL_SetColor(VALUE91, green);TL_SETEND(VALUE91,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS],TL_GETVALUE(VALUE91,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS]));end ;if PBAR[48-PP] >=0 and PBAR[50-PP]-PLOTBARS >= 0 thenbegin{ETA LINE}IF ETALINE THENBEGINVALUE92 = TL_NEW(DATE[PBAR[48-PP]],TIME[PBAR[48-PP]],P[48-PP ],DATE[PBAR[50-PP]], TIME[PBAR[50-PP]],P[50-PP]);Value14=TL_SetColor(VALUE92, blue);TL_SETEND(VALUE92,DATE[PBAR[50-PP]-PLOTBARS],TIME[PBAR[50-PP]-PLOTBARS],TL_GETVALUE(VALUE92,DATE[PBAR[50-PP]-PLOTBARS],TIME[PBAR[50-PP] -PLOTBARS]));END;end;END;IF DATE = LASTCALCDATEAND TIME = LASTCALCTIMEAND ZIGZAG = TRUE THENBEGINJA_SLOPE3 = (P[50] - P[49]) / (PBAR[49] - PBAR[50]);FOR JLA_CTR = PBAR[49] DOWNTO PBAR[50] BEGINPLOT4[JLA_CTR](P[49] + (PBAR[49] - JLA_CTR) *JA_SLOPE3,"Swings");END;END;FOR W = 1 TO 50BEGINPBAR[W] = PBAR[W]+1;END;1 user thanked author for this post.
02/26/2018 at 11:58 AM #6395202/26/2018 at 6:44 PM #6399802/26/2018 at 7:34 PM #6400703/03/2018 at 9:58 AM #6425903/03/2018 at 10:49 AM #6426305/20/2019 at 4:09 PM #98911Hello Guys
if could be of your interest I’ve coded Wolf Waves indicator and screener for ProRealTime, for more information : https://www.automatictrading.it/product/wolf-waves-chart-pattern/Thanks
Ale -
AuthorPosts