Conversion Waves Wolfe PRT
Forums › ProRealTime forum Français › Support ProBuilder › Conversion Waves Wolfe PRT
- This topic has 5 replies, 2 voices, and was last updated 6 years ago by Alai-n.
-
-
12/28/2017 at 4:27 PM #56742
Bonjour,
Quelqu’un saurait il convertir cet indicateur des vagues de Wolfe en langage PRT ???
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748//Wolfe Wave Pattern ---------------------------Pa:=Trough(4,LOW,5); Pb:=Peak(3,HIGH,5); P1:=Trough(3,LOW,5); P2:=Peak(2,HIGH,5); P3:=Trough(2,LOW,5); P4:=Peak(1,HIGH,5); P5:=Trough(1,LOW,5); tb:=TroughBars(1,LOW,5); eki1:=If(tb<=4 AND p1 > pa AND pb < p2 AND p1 < p4 AND p1 > p3 AND p3 > p5 AND p4 < p2,1,0); p1:=Trough(3,LOW,5);p3:=Trough(2,LOW,5); p5:=Trough(1,LOW,5); o1:=p1-p3; o2:=p1-p5; a1:=TroughBars(3,LOW,5)-TroughBars(2,LOW,5); a2:=TroughBars(3,LOW,5)-TroughBars(1,LOW,5); tan1:=o1/a1;tan2:=o2/a2; eki2:=Abs(tan1-tan2); If(eki1 AND eki2 <= .2 ,2,0//Codice Easy language ==============HEADER==============//Study based on Connors & Raschke's "Wolfe Waves"//====== DECLARATIONS ====INPUTS: TICKCHG(10), {Change (number of ticks) required to set up a new swing high/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);{===========MAIN PROGRAM============}IF CURRENTBAR = 1 THEN P[50] = C;IF LOWSEEK = FALSE AND P[50] <= H THEN BEGIN P[50] = H; PBAR[50] = 0;END;IF LOWSEEK = TRUE AND P[50] >= L THEN BEGIN P[50] = L; PBAR[50] = 0;END;IF (LOWSEEK = FALSE AND PBAR[50] <> 0) THEN BEGIN IF (TICKCHG = 0 AND L < P[50] * ( 1 - PCTCHG / 100) )OR (TICKCHG <> 0 AND L < ( P[50] - tickchg * minmove points)) THEN BEGIN IF ZIGZAG = TRUE THEN PLOT4[PBAR[50]](P[50],"SWINGS");LOWSEEK = TRUE;FOR W = 1 TO 49 BEGIN PBAR[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) THEN BEGIN IF (TICKCHG = 0AND H> P[50] * ( 1 + PCTCHG / 100)) OR (TICKCHG <> 0 AND H > (P[50] + tickchg * minmove points )) THEN BEGIN IF ZIGZAG = TRUE THEN PLOT4[PBAR[50]](P[50],"SWINGS"); LOWSEEK = FALSE;FOR W = 1 TO 49 BEGIN PBAR[W] = PBAR[W+1]; P[W] = P[W+1];END;P[50] = H; PBAR[50] = 0; END; END;IF TIME = LASTCALCTIME AND DATE = LASTCALCDATE AND P[48 - PP] <> 0 THEN BEGIN PP = -1; WOLFE = 0; WHILE WOLFE < OCCUR AND PP < 46 BEGIN PP = PP + 1; VALUE1 = P[47-PP]; VALUE2 = P[48-PP]; VALUE3 = P[49-PP]; VALUE4 = P[50-PP];CONDITION1 = VALUE2 > VALUE1 AND VALUE4 > VALUE3 AND VALUE4 < VALUE2 AND VALUE3 < VALUE1 AND VALUE4 > VALUE1;CONDITION2 = VALUE2 < VALUE1 AND VALUE4 < VALUE3 AND VALUE4 > VALUE2 AND VALUE3 > VALUE1 AND VALUE4 < VALUE1;IF CONDITION1 OR CONDITION2 THEN WOLFE = 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} VALUE90 = 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, 5); {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]));{LINE 1-4} VALUE91 = 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, 16); 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]));{ETA LINE}IF ETALINE THEN BEGIN VALUE92 = 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, 4); 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;IF DATE = LASTCALCDATE AND TIME = LASTCALCTIME AND ZIGZAG = TRUE THEN BEGINJA_SLOPE3 = (P[50] - P[49]) / (PBAR[49] - PBAR[50]); FOR JLA_CTR = PBAR[49] DOWNTO PBAR[50] BEGIN PLOT4[JLA_CTR](P[49] + (PBAR[49] - JLA_CTR) * JA_SLOPE3,"Swings"); END;END;FOR W = 1 TO 50 BEGIN PBAR[W] = PBAR[W]+1; END;01/03/2018 at 11:47 PM #5720801/09/2018 at 2:25 PM #5861501/23/2018 at 1:06 PM #60320Bonjour Nicolas.
Y a-t-il une raison particulière pour que tu ne te sois jamais intéressé à ce post
Je l’ai fait suivre ici après l’avoir pêché sur le forum anglais en date d’avril 2017 et toujours resté sans réponse!
J’ignore ce que ce code pourrait donner, mais à ma connaissance il est le seul disponible en accès libre.
Aurais-tu une info que je n’aurais pas, pour ne pas t’y intéresser?
01/23/2018 at 1:59 PM #60322Non pas de raison particulière, il est simplement passé entre les autres 🙂
Il s’agit d’un code Amibroker qui utilise des fonctions intégrées permettant de connaître les coordonnées de chaque point de zigzag automatiquement (fonctions Peak et Trough), très utile car cela évite de créer des boucles dans des boucles, ce qui est pratiquement impossible à faire ici en raison des limites dues au fameux problème de détection de “boucle infinie” du langage ProBuilder. Donc dans l’état, je ne vois pas de solutions pour le convertir, désolé.
01/23/2018 at 3:18 PM #60330 -
AuthorPosts
Find exclusive trading pro-tools on