smallcaps90 ![]() (1022
msg) Bonsoir Kiki27, Content de te revoir ici... J'ai programmé tes deux indicateurs. Le RWI de Poulos d'abord. Programme : //RWI (Random Walk Index) Propriétés : ![]() J'ai ajouté un oscillateur OSC_RWI (indicateur dérivé du précédent) qui n'est autre que : //Oscilateur du RWI // OSC_RWI = (H_RWI-B_RWI)/(H_RWI+B_RWI) dont la courbe est tracée sur le graphe qui suit en dessous du RWI. ![]() On constate un air de famille avec le DMI (DI-, DI+)... Le KPO de Cynthia Kase ensuite : Programme : //KPO (Kase Peak Oscillator) Comme tu peux le constater, j'ai calculé l'ATR avec une moyenne exponentielle alors qu'en toute rigueur on devrait prendre une moyenne de Wilder...?... Propriétés : ![]() A l'instar du RWI j'ai adjoint un oscillateur que C. Kase nomme KCD (qu'elle compare au MACD...) et qui n'est autre que : //Kase CD (Oscillator) // PK = PEAK KCD = PEAK- MOYENNE(PEAK,8) Il est un "indicateur dérivé" du KPO. Un exemple avec Essilor : ![]() Cordialement. édité
le : 12-12-2005 11:26:27
Gilda56 ![]() (145
msg) Ca marche Bravo et merci Maintenant en regardant un peu l'indicateur Guppy crois je trouve qu'il est un lent J"aimerais qu'il remonte de 3 jours J'ai modofié la valeur des moyennes en les transformant en moyenne tres courte mais il est encore trop en retard mais il conviendrait bien pour pyramider mais moi j'aurais aimé qu il soit plus reactif et qu'il gagne 3 jours Par exemple sur l'étolie du soir de trader Class media du 4 octobre j'ai un indicateur le MACD HEMEL ( Merci Small)quise déclenche le 5 Octobre C'est top mais l'ecart ne se manifeste que le 11oct Donc ke voudrais le rendre plus nerveux Comment moi je pense qu'on pourrait faireun derive de derive Enfin c'st juste une idee Cordialement
FOKI ![]() (2011
msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ Oh! la vache, comment il t'as fait
ça le Smallcaps ... en 2 coups de cuillère à pot ... les doigts dans le nez ![]() Vous pouvez emballer ... c'est pesé pour le RWI ![]() Vu de loin, il me paraît sympa et effectivement il ressemble au DI+ et DI-, je vais le mettre immédiatement sur graph AT et étudier tout ça ![]() ![]() ![]() Merci à KIKI et à Smallcaps FOKI
Laisser au marché, nous donner la direction...
smallcaps90 ![]() (1022
msg) Gilda, il ne s'agit que de croisements
de moyennes mobiles, qui présentent un lag par conséquent. Il ne faut pas en attendre
plus que ce qu'elles peuvent donner. Anticiper le départ du trend comme tu veux
le faire est une méthode risquée... Il est vrai aussi que l'on peut "voir" des formes qui se répètent lors des croisements complets et partiels des deux faisceaux de Guppy. Y a-t-il quelque chose à en tirer?... On n'a pas encore tenu compte du phénomène de "compression" avec ou sans "torsion" de chaque groupe de moyennes. C'est assez facile à visualiser avec les outils disponibles. On peut, par exemple, créer un indicateur dérivé de GUPPY_MM, un ocillateur de moyennes : GUPPY_OSCMOY, qui calcule l'écart entre les moyennes extrêmes de chaque groupe. Le programme serait : //GUPPY_OSCMOY //Ecarts entre les moyennes courtes //et les moyennes longues extrêmes // E_COURT = M1-M6 //courbe bleue ci-dessous E_LONG = M7-M12 //courbe rouge ![]() Bon courage...
augusseau ![]() (178
msg) si certains sont interessés, je
peux poster ce we : - le KCD et le PEAK de cynthia kase (le PEAK a déjà été programmé par smallcaps), le KCD c'est un histogramme - les stopdeveloppment a plus carca
![]() kiki27' ![]() (1267
msg) Merci Small Cap , j'espérais bien
que tu jettes un oeil ![]() j'avais tenté qq chose mais j'ai tout mis à la corbeille ![]() Je vais de ce pas intégrer cela dans mon soft et voir comment tout celà réagit avec mes titres préférés.. Effectivement Augusseau ce n'est qu'une partie de l'isberg, car l'approche complète à l'air interessante avec sa gestion des stops , tu les as expérimentés , si oui tel qu'elle les présente avec son systeme complet ou différement ?
Sur les marchés tout est toujours possible . «//kiki27dt@free.fr » et «short-term-trading.over-blog.com
»
FOKI ![]() (2011
msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ Bonsoir Voici le module stat pour le RWI ![]() Utilisation du prog habituel de Smallcaps //STATISTIQUE DE CROISEMENT RWI ACTION_SELECT=0 N=1 //tu peux changer cette valeur suivant tes souhaits POUR N COURS SI CROISE(RWI.H_RWI,RWI.B_RWI)>0 ALORS ACTION_SELECT=1 COLONNE1 = "RWI croise à la hausse le " & DATEHISTO$ & " ---> ACHAT" FINSI SI CROISE(RWI.H_RWI,RWI.B_RWI)<0 ALORS ACTION_SELECT=1 COLONNE1 = "RWI croise à la baisse le " & DATEHISTO$ & " ---> VENTE" FINSI FINPOUR SI ACTION_SELECT=1 ALORS SELECTION FINSI
Laisser au marché, nous donner la direction...
smallcaps90 ![]() (1022
msg) Merci pour ta stat FOKI... Je viens de me rendre compte que C. Kase n'utilise pas l'écart-type tel que nous avons dans GrapheAT Pro dans son programme du KPO. En effet elle emploie la définition de l'écart-type d'un échantillon (avec P1=30) et non celui de la population. Le diviseur de la somme des carrés des différences entre le PEAK et sa moyenne à 30 jours est ici divisé par P1-1=29 et non pas 30 comme dans la fonction ECARTYPE de GrapheAT Pro. La différence, ainsi que le montre le graphe ci-dessous, n'est évidemment pas très importante. Néanmoins j'ai corrigé le programme du KPO à la page précédente. Il suffit de supprimer la ligne rouge barrée et de la remplacer par les lignes bleues. ![]() Bonne journée. édité
le : 09-12-2005 14:36:20
augusseau ![]() (178
msg) voici les indicateurs de cynthia
kase (en tout cas ce que j'ai pu faire de mieux car les formules sont parfois
contradictoires entre les écrits) PEAK OSCILLATOR : VOLG1(0)=LOG(CLOTURE(1)/CLOTURE) VOLG2(0)=ECARTYPE(VOLG1,P1) VOLG(0)=VOLG2*RACINE(252) RHW(0)=LOG(haut/bas(P1))/(VOLG*RACINE(P1)) RHL(0)=LOG(haut(P1)/bas)/(VOLG*RACINE(P1)) PEAK1(0)=RHW-RHL i = 10 TantQue i<P1 Faire V=ECARTYPE(LOG(CLOTURE(1)/CLOTURE),i) RHWT=LOG(haut/bas(I))/(V*RACINE(I)) RHLT=LOG(haut(I)/bas)/(V*RACINE(I)) SI RHWT>RHW ALORS RHW=RHWT SI RHLT>RHL ALORS RHL=RHLT i = i + 1 FinTantQue PEAK(0)=MOYENNE(RHW-RHL,3) MN(0)=MOYENNE(PEAK,20) SD(0)=ECARTYPE(PEAK,20) si peak>=0 alors int(0)=peak sinon int(0)=-peak maxi=max(int,50) SI (MN+2*SD)>0.9*maxi ALORS VAL1(0)=MN+2*SD SINON VAL1(0)=0.9*maxi SI (MN-2*SD)<-0.9*maxi alors VAL2(0)=MN-2*SD SINON VAL2(0)=-0.9*maxi SI PEAK(1)>0 et PEAK>0 alors LN = VAL1 sinon si PEAK(1)<0 et PEAK<0 alors LN=val2 sinon LN=0 finsi si peak>peak(1) alors RED=0 sinon RED=PEAK SI PEAK<=PEAK(1) alors green=0 sinon green=peak ![]() ce qui donne ![]() P1 est le nombre d'échantillons prix pour calculer cet indicateur adaptatif son dérivé le KCD KCD=PEAKOSCILLATOR.PEAK-MOYENNE(PEAKOSCILLATOR.PEAK,P1) ![]() P1 est le nombre de jour de la moyenne ![]() et les STOP DEV basés juste sur la volatilité HT(0)=MAX(HAUT,2) BS(0)=MIN(BAS,2) TR(0) = MAXVAL( MAXVAL(HT-BS,ABSOLU(HT-Cloture(2))), ABSOLU(BS-Cloture(2)) ) ATR(0)=MOYENNE(TR,P1) SDEV(0)=ECARTYPE(TR,P1) DEV1(0)=CLOTURE-ATR DEV2(0)=CLOTURE-ATR-SDEV DEV3(0)=CLOTURE-ATR-2.2*SDEV DEV4(0)=CLOTURE-ATR-3.6*SDEV SI DEV1<DEV1(1) et cloture>DEV4(1) alors DEV1=DEV1(1) SI DEV2<DEV2(1) et cloture>DEV4(1) alors DEV2=DEV2(1) SI DEV3<DEV3(1) et cloture>DEV4(1) alors DEV3=DEV3(1) SI DEV4<DEV4(1) et cloture>DEV4(1) alors DEV4=DEV4(1) DEV5(0)=CLOTURE+ATR DEV6(0)=CLOTURE+ATR+SDEV DEV7(0)=CLOTURE+ATR+2.2*SDEV DEV8(0)=CLOTURE+ATR+3.6*SDEV SI DEV5>DEV5(1) et cloture<DEV8(1) alors DEV5=DEV5(1) SI DEV6>DEV6(1) et cloture<DEV8(1) alors DEV6=DEV6(1) SI DEV7>DEV7(1) et cloture<DEV8(1) alors DEV7=DEV7(1) SI DEV8>DEV8(1) et cloture<DEV8(1) alors DEV8=DEV8(1) ![]() ![]() pour kiki, j'utilise les stop dev uniquement en milieu de trade pour essayer d'optimiser le trade et avoir un stop qui ne se fait pas toucher en début et en fin, je préfere un stop serré (bougie)
carca
augusseau ![]() (178
msg) complément : l'utilisation des
indicateurs est indiquée dans des fichiers PDF que l'on trouve avec Google je pense qu'ils peuvent donner de bons résultats (en tout cas bien meilleur que le MACD... puisqu'ils sont adaptatifs) je ne les utilise pas systématiquement car ils sont trop long à l'affichage je les ai retenu (après backtest) : - comme facteur validant (parfois précuseur) d'une consolidation (passage du 0 par le KCD) alors que le PEAK est toujours du signe de la tendance - signal de fin de tendance : peak suracheté... KCD diverge si certains on lu tom williams (utilisation des volumes) j'avais commencé à mettre en équation ses interprétations (c'est du dégrossi). j peux le poster (il faudrait bcp plus d'heures pour faire qq chose de propre) enfin question pour smallcaps (le matheux de référence) : je ne m'explique pas comment il n'y a pas de torsion des moyennes longues sur ton graphe. J'avais également observé ce phénomène mais pour moi au changement de tendance la MM courte doit croiser la longue. si tu as une réponse merci! carca
augusseau ![]() (178
msg) tant qu'a poster je vais finir
pour ma contribution (smallcaps annule ma dernière question qui était bête) pour ceux qui ont lu Tom waits (utilisation des volumes de chque période) voici une tentative de modélisation de son bouquin (c'est une première approche) les fleches vertes : signe de force rouge : signe de faiblesse bleu : shake out gris = vert ou rouge invalidé les points jaune hauts = up thrust bas = test le code : CLOS(0)=(CLOTURE-BAS)/(HAUt-BAS)*100 SPREAD(0) = HAUt - BAS RANGE(0)=MOYENNE(HAUt-BAS,5) MOYVOL(0)=MOYENNE(VOLUME,40) TENDANCE(0)=CLOTURE-CLOTURE(10) // detection UP Thrust SI SPREAD>0.5*RANGE et CLOS<20 ET HAUT>HAUT(1) ET CLOTURE(1)>=CLOTURE(2) ALORS UT(0)=1 sinon UT(0)=0 si UT=1 alors UT2=HAUT // Annulation Ut Thrust SI UT(1)=1 ET CLOTURE>=CLOTURE(1) ALORS UT(1)=0 ET SOS=1 SI UT(2)=1 ET CLOTURE>=CLOTURE(2) ALORS UT(2)=0 ET SOS=1 SI UT(3)=1 ET CLOTURE>=CLOTURE(3) ALORS UT(3)=0 ET SOS=1 // detection TEST SI CLOS>75 ET (HAUT<=HAUT(1) OU BAS<=BAS(1)) ALORS TEST(0)=1 sinon TEST(0)=0 // CLOTURE sous TEST SI TEST(1)=1 et CLOTURE<BAS(1) ALORS SOW=1 SI TEST(2)=1 et CLOTURE<BAS(2) ALORS SOW=1 // CONFIRMATION DE TEST SI TEST(1)=1 et CLOTURE>HAUT(1) et CLOS>60 ALORS SOS=1 SI TEST(1)=1 et CLOTURE>HAUT(1) et CLOS<60 ALORS SOW=1 SI TEST(2)=1 et CLOTURE(1)<HAUT(2) et CLOTURE>HAUT(2) ALORS SOS=1 SI TEST(3)=1 et CLOTURE(2)<haut(3) et CLOTURE(1)<HAUT(3) et CLOTURE<HAUT(3) alors SOW=1 // SHAKE OUT SI CLOS(1)<20 et SPREAD>RANGE et CLOTURE<MOYENNE(CLOTURE,5) et CLOS>60 et CLOTURE<0.5*(BAS(1)+HAUt(1))alors SHAKE=1 // CLOTURE sous SHAKE SI SHAKE(1)=1 et CLOTURE<BAS(1) ALORS SOW=1 SI SHAKE(2)=1 et CLOTURE<BAS(2) ALORS SOW=1 //SOW ou SOS SI SPREAD(1)>1.5*RANGE(1) ET CLOS(1)>70 et CLOS<40 et VOLUME<0.66*VOLUME(1) ALORS SOS=1 SI TENDANCE>=0 et CLOS<40 et VOLUME>MOYVOL ALORS SOW=1 SI TENDANCE<0 et CLOS>70 et VOLUME>MOYVOL ALORS SOS=1 //CLoture contraire à SOW ou SOS SI SOW(1)=1 et CLOTURE>=HAUT(1) alors SOS=1 SOW2(1)=1 FINSI SI SOS(1)=1 et CLOTURE<=BAS(1) alors SOW=1 SOS2(1)=1 FINSI SI SOW(2)=1 et CLOTURE(1)<HAUT(2) et CLOTURE>HAUT(2) alors SOS=1 SOW2(2)=1 FINSI SI SOS(2)=1 et cloture(1)>bas(2) et CLOTURE<BAS(2) alors SOW=1 SOS2(2)=1 FINSI SI SOW(3)=1 et CLOTURE(1)<HAUT(3)et CLOTURE(2)<HAUT(3) et CLOTURE>HAUT(3) alors SOS=1 SOW2(3)=1 FINSI SI SOS(3)=1 et cloture(1)>bas(3) et CLOTURE(2)>BAS(3) et CLOTURE<BAS(3) alors SOW=1 SOS2(3)=1 FINSI SI TEST=1 ALORS TEST2=BAS // SOS en montée SI SPREAD(1)>RANGE et VOLUME(1)>MOYVOL et CLOS<50 et cloture<cloture(1) et VOLUME<MOYVOL ALORS CSOS=1 ![]() ![]() si certains s'y sont interessés je suis preneur pour des échanges d'analyse (même à postériori) afin de progresser carca
smallcaps90 ![]() (1022
msg) Merci pour cet apport intéressant
Augusseau. Ton programme du Kase Peak Oscillator est, semble-t-il, plus récent et aussi plus réactif que celui que j'ai posté à la page précédente. As-tu reçu mon email? Bonne journée.
smallcaps90 ![]() (1022
msg) Bonjour, Si vous avez copié/collé le programme du RWI que j'ai posté page 68, la correction d'une erreur dans l'instruction qui calcule le "True Range" (TR) a été effectuée en tête de programme. Avec mes excuses.
FOKI ![]() (2011
msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ Bonjour à tous Pour compléter les outils de l'indicateur RWI, voici le prog de détection de divergences sur l'Oscillateur RWI que Smallcaps à dérivé du RWI. Prog de divergence négatives : ![]() Programme : //DIV_NEG_RWI // //RECHERCHER LA DIVERGENCE NEGATIVE EVENTUELLE //LA PLUS RECENTE ENTRE LES COURS ET l'Oscillateur RWI //DANS LES LIMITES DEFINIES PAR P1, P2, P3 et P4 //V1 du 11/12/2005 // //---------------------------------------------- //PARAMETRES P1 à P5 : // //LA DIVERGENCE POTENTIELLE EVENTUELLE DEVRA //SE TROUVER P4 PERIODES AU MOINS AVANT LA FINHISTO. // //LE 1ER SOMMET SUR l'Oscillateur RWI DEVRA SE TROUVER //DANS LES P1 PERIODES PRECEDANT FINHISTO-P4. // //LE 2EME SOMMET SUR l'Oscillateur RWI DEVRA SE TROUVER //DANS LES P2 PERIODES PRECEDANT LE 1ER. // //CHAQUE SOMMET SUR LES COURS POURRA SE TROUVER //DANS LES P3 PERIODES PRECEDANT LES SOMMETS //CORRESPONDANTS SUR l'Oscillateur RWI. // //P5=0 ACCEPTE LES DIVERGENCES DONT LES DROITES //PRESENTENT DES INTERSECTIONS AVEC LES COURS //ET/OU l'Oscillateur RWI. //P5=1 NE LES ACCEPTE PAS. //---------------------------------------------- //Initialisations // INDIC=OSCIL_RWI.OSC_RWI MAXI=0 SI RANGHISTO=FINHISTO-P4 //On explore jusqu'à P4 périodes avant la FINHISTO ALORS //Chercher un 1er sommet (SI1) et sa date (DATE_SI1) sur l'indicateur // I=0 SI1=MAXI TANTQUE I<=P1 FAIRE SI INDIC(I+1)>0 ALORS SI INDIC(I+2)<INDIC(I+1) ET INDIC(I+1)>INDIC(I) ALORS SI INDIC(I+1)>=SI1 ALORS SI1=INDIC(I+1) DATE_SI1=FINHISTO-P4-(I+1) D1=I+1 FINSI FINSI FINSI I=I+1 FINTANTQUE SI D1=0 ALORS AFFICHER "=======PAS DE 1ER SOMMET RECENT SUR LE l'Oscillateur RWI=======" AFFICHER "===============MODIFIEZ P1 ET/OU P4 =================" STOP FINSI //Chercher le 1er sommet (SC1) et sa date (DATE_SC1) //sur les cours avec une tolérance de P3 périodes //avant le 1er sommet sur l'indicateur // SC1=HAUT(FINHISTO-P4-DATE_SI1) DATE_SC1=DATE_SI1 K=FINHISTO-P4-DATE_SI1+1 TANTQUE K<=FINHISTO-P4-DATE_SI1+P3 FAIRE SI HAUT(K)>=SC1 ALORS SC1=HAUT(K) DATE_SC1=FINHISTO-K-P4 FINSI K=K+1 FINTANTQUE //Chercher un 2ème sommet plus ancien (SI2) //et sa date (DATE_SI2) sur l'indicateur // J=D1+1 SI2=SI1 TANTQUE J<=P2+D1 FAIRE SI INDIC(J+2)<INDIC(J+1) ET INDIC(J+1)>INDIC(J) ALORS SI INDIC(J+1)>=SI2 ALORS SI2=INDIC(J+1) DATE_SI2=FINHISTO-P4-(J+1) D2=1 FINSI FINSI SI D2=1 //SI2 est un sommet possible sur l'indicateur ALORS SI P5=1 //La droite SI1--SI2 doit être au-dessus de l'indicateur ALORS PENTE_I=(SI1-SI2)/(DATE_SI1-DATE_SI2) POUR (FINHISTO-P4-DATE_SI2+1) COURS POINT_I(0)= PENTE_I*(RANGPOUR-1)+SI2 SI POINT_I<INDIC ALORS N=1 BREAK FINSI SI RANGPOUR>(DATE_SI1-DATE_SI2) ALORS BREAK FINPOUR FINSI SI N=0 //Droite de divergence SI1--SI2 correcte ALORS //Chercher le 2ème sommet (SC2) et sa date (DATE_SC2) //sur les cours avec une tolérance de P3 périodes //avant le 2ème sommet sur l'indicateur // SC2=HAUT(FINHISTO-P4-DATE_SI2) DATE_SC2=DATE_SI2 K=FINHISTO-P4-DATE_SI2+1 TANTQUE K<=FINHISTO-P4-DATE_SI2+P3 FAIRE SI HAUT(K)>=SC2 ALORS SC2=HAUT(K) DATE_SC2=FINHISTO-K-P4 FINSI K=K+1 FINTANTQUE SI SC2<=SC1 //SC2 est un sommet possible sur les cours ALORS SI P5=1 //La droite SC1--SC2 doit être au-dessus des cours ALORS PENTE_C=(SC1-SC2)/(DATE_SC1-DATE_SC2) POUR (FINHISTO-P4-DATE_SC2+1) COURS POINT_C(0) =PENTE_C*(RANGPOUR-1)+SC2 SI POINT_C<HAUT ALORS M=1 BREAK FINSI SI RANGPOUR>(DATE_SC1-DATE_SC2) ALORS BREAK FINPOUR FINSI SI M=0 //Droite de divergence SC1--SC2 correcte ALORS J=P2+D1+1 SINON D2=0 FINSI SINON D2=0 FINSI SINON D2=0 FINSI FINSI N=0 M=0 J=J+1 FINTANTQUE SI D1<>0 ET D2=0 OU SC2=0 ALORS AFFICHER "============PAS DE DIVERGENCE POTENTIELLE=============" AFFICHER "======AVEC LES VALEURS ACTUELLES DES PARAMETRES=======" AFFICHER "=MAIS IL Y A UN 1ER SOMMET SUR l'Oscillateur RWI ET LES COURS=" AFFICHER "==============MODIFIEZ EVENTUELLEMENT P2==============" STOP FINSI //Déterminer les points de la divergence potentielle trouvée //s'ils peuvent être tracés sur l'indicateur et sur les cours // SI DATE_SC1-DATE_SC2=1 //La valeur 2 peut-être modifiée ALORS AFFICHER "=============DIVERGENCE POTENTIELLE============" AFFICHER "==========TROP PETITE POUR ETRE TRACEE=========" AFFICHER "===========MODIFIEZ EVENTUELLEMENT P4==========" SINON PENTE_I=(SI1-SI2)/(DATE_SI1-DATE_SI2) POUR (FINHISTO-P4-DATE_SI2+1) COURS SEG_N_I(0)=PENTE_I*(RANGPOUR-1)+SI2 SI RANGPOUR>(DATE_SI1-DATE_SI2) ALORS BREAK FINPOUR PENTE_C=(SC1-SC2)/(DATE_SC1-DATE_SC2) POUR (FINHISTO-P4-DATE_SC2+1) COURS SEG_N_C(0)=PENTE_C*(RANGPOUR-1)+SC2 SI RANGPOUR>(DATE_SC1-DATE_SC2) ALORS BREAK FINPOUR FINSI FINSI Fenêtre propriétés : ![]() Laisser au marché, nous donner la
direction...
FOKI ![]() (2011
msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ Pour le même prix voici le programme
de divergences positives sur l'oscillateur du RWI . ![]() Programme : //DIV_POS_RWI // //RECHERCHER LA DIVERGENCE POSITIVE EVENTUELLE //LA PLUS RECENTE ENTRE LES COURS ET L'oscillateur RWI //DANS LES LIMITES DEFINIES PAR P1, P2, P3, P4 et P5 //V 1.0 du 11/12/2005 // //---------------------------------------------- //DEFINITION DES ROLES DES PARAMETRES P1 à P5 : // //LA DIVERGENCE POTENTIELLE EVENTUELLE DEVRA //SE TROUVER P4 PERIODES AU MOINS AVANT LA FINHISTO. // //LE 1ER CREUX SUR L'oscillateur RWI DEVRA SE TROUVER //DANS LES P1 PERIODES PRECEDANT FINHISTO-P4. // //LE 2EME CREUX SUR L'oscillateur RWI DEVRA SE TROUVER //DANS LES P2 PERIODES PRECEDANT LE 1ER. // //CHAQUE CREUX SUR LES COURS POURRA SE TROUVER //DANS LES P3 PERIODES PRECEDANT LES SOMMETS //CORRESPONDANTS SUR L'oscillateur RWI. // //P5=0 ACCEPTE LES DIVERGENCES DONT LES DROITES //PRESENTENT DES INTERSECTIONS AVEC LES COURS //ET/OU L'oscillateur RWI. //P5=1 NE LES ACCEPTE PAS. //---------------------------------------------- //Initialisations // INDIC=OSCIL_RWI.OSC_RWI MINI=1000 SI RANGHISTO=FINHISTO-P4 //On explore jusqu'à P4 périodes avant la FINHISTO ALORS //Chercher un 1er creux (CI1) et sa date (DATE_CI1) sur l'indicateur // I=0 CI1=MINI TANTQUE I<=P1 FAIRE SI INDIC(I+1)<0 ALORS SI INDIC(I+2)>INDIC(I+1) ET INDIC(I+1)<INDIC(I) ALORS SI INDIC(I+1)<=CI1 ALORS CI1=INDIC(I+1) DATE_CI1=FINHISTO-P4-(I+1) D1=I+1 FINSI FINSI FINSI I=I+1 FINTANTQUE SI D1=0 ALORS AFFICHER "=========PAS DE 1ER CREUX RECENT SUR L'oscillateur RWI========" AFFICHER "================MODIFIEZ P1 ET/OU P4 ==================" STOP FINSI //Chercher un 1er creux (CC1) et sa date (DATE_CC1) //sur les cours avec une tolérance de P3 périodes avant //le 1er creux trouvé sur l'indicateur // CC1=BAS(FINHISTO-P4-DATE_CI1) DATE_CC1=DATE_CI1 K=FINHISTO-P4-DATE_CI1+1 TANTQUE K<=FINHISTO-P4-DATE_CI1+P3 FAIRE SI BAS(K)<=CC1 ALORS CC1=BAS(K) DATE_CC1=FINHISTO-K-P4 FINSI K=K+1 FINTANTQUE //Chercher un 2ème creux (CI2) plus ancien //et sa date (DATE_CI2) sur l'indicateur // J=D1+1 CI2=CI1 TANTQUE J<=P2+D1 FAIRE SI INDIC(J+2)>INDIC(J+1) ET INDIC(J+1)<INDIC(J) ALORS SI INDIC(J+1)<=CI2 ALORS CI2=INDIC(J+1) DATE_CI2=FINHISTO-P4-(J+1) D2=1 FINSI FINSI SI D2=1 //CI2 est un creux possible sur l'indicateur ALORS SI P5=1 //On veut que la droite CI1--CI2 reste sous l'indicateur ALORS PENTE_I=(CI1-CI2)/(DATE_CI1-DATE_CI2) POUR (FINHISTO-P4-DATE_CI2+1) COURS POINT_I(0)= PENTE_I*(RANGPOUR-1)+CI2 SI POINT_I>INDIC ALORS N=1 BREAK FINSI SI RANGPOUR>(DATE_CI1-DATE_CI2) ALORS BREAK FINPOUR FINSI SI N=0 //Droite de divergence CI1--CI2 correcte ALORS //Chercher le 2ème creux (CC2) et sa date (DATE_CC2) //sur les cours avec une tolérance de P3 périodes //avant le 2ème creux sur l'indicateur // CC2=BAS(FINHISTO-P4-DATE_CI2) DATE_CC2=DATE_CI2 K=FINHISTO-P4-DATE_CI2+1 TANTQUE K<FINHISTO-P4-DATE_CI2+P3 FAIRE SI BAS(K)<=CC2 ALORS CC2=BAS(K) DATE_CC2=FINHISTO-K-P4 FINSI K=K+1 FINTANTQUE SI CC2>=CC1 //CC2 est un creux possible sur les cours ALORS SI P5=1 //On veut que la droite CC1--CC2 reste sous les cours ALORS PENTE_C=(CC1-CC2)/(DATE_CC1-DATE_CC2) POUR (FINHISTO-P4-DATE_CC2+1) COURS POINT_C(0)=PENTE_C*(RANGPOUR-1)+CC2 SI POINT_C>BAS ALORS M=1 BREAK FINSI SI RANGPOUR>(DATE_CC1-DATE_CC2) ALORS BREAK FINPOUR FINSI SI M=0 //Droite de divergence CC1--CC2 correcte ALORS J=P2+D1+1 SINON D2=0 FINSI SINON D2=0 FINSI SINON D2=0 FINSI FINSI N=0 M=0 J=J+1 FINTANTQUE SI D1<>0 ET D2=0 OU CC2=0 ALORS AFFICHER "============PAS DE DIVERGENCE POTENTIELLE=============" AFFICHER "======AVEC LES VALEURS ACTUELLES DES PARAMETRES=======" AFFICHER "=MAIS IL Y A UN 1ER CREUX SUR L'oscillateur RWI ET LES COURS=" AFFICHER "==============MODIFIEZ EVENTUELLEMENT P2==============" STOP FINSI //Déterminer les points des segments de la divergence potentielle trouvée //s'ils peuvent être tracés sur l'indicateur et sur les cours // SI DATE_CC1-DATE_CC2<2 //La valeur 2 peut être modifiée ALORS AFFICHER "=============DIVERGENCE POTENTIELLE============" AFFICHER "==========TROP PETITE POUR ETRE TRACEE=========" AFFICHER "===========MODIFIEZ EVENTUELLEMENT P4==========" SINON PENTE_I=(CI1-CI2)/(DATE_CI1-DATE_CI2) POUR (FINHISTO-P4-DATE_CI2+1) COURS SEG_P_I(0)=PENTE_I*(RANGPOUR-1)+CI2 SI RANGPOUR>(DATE_CI1-DATE_CI2) ALORS BREAK FINPOUR PENTE_C=(CC1-CC2)/(DATE_CC1-DATE_CC2) POUR (FINHISTO-P4-DATE_CC2+1) COURS SEG_P_C(0)=PENTE_C*(RANGPOUR-1)+CC2 SI RANGPOUR>(DATE_CC1-DATE_CC2) ALORS BREAK FINPOUR FINSI FINSI Fenêtre Propriétés ![]() Laisser au marché, nous donner la direction...
69
|