Bon j ai tout retourné ......
j ai deux indicateurs :
indicateur 1 : il me donne soit 1 ou 0 disons aleatoirement
indicateur 2 : il me donne un valeur . On va dire que c est le close .
je voudrait avoir la somme des valeurs de l indicateur 2 a chaque fois que l indicateur 1 a ete egal a 1 , les cinq dernieres fois .
Donc pour etre clair , je regarde quand l indicateur 1 a ete egal a 1 les 5 dernieres fois . Je prend la valeur a chaque fois de l indicateur 2 . Je me retrouve avec 5 valeurs , j additione ces valeurs . Si nouveau signal " 1" de l indicateur 1, je recommence .
J ai tout retourne boucle contre boucle ....
Aide pour indicateur qui garde en memoire et additionne .
-
ladefense92800
- Maître Jedi
- Messages : 4289
- Enregistré le : 18 déc. 2011 18:21
-
falex
- Le Gladiateur
- Messages : 34275
- Enregistré le : 12 févr. 2013 15:41
Re: Aide pour indicateur qui garde en memoire et additionne
et tu vas voir que ton programme s'écrit en 3 lignes sauf que :
la fonction Random n'existe pas sur prt.
Pour la partie 2 c'est assez simple.
pour la sommation des 5 dernieres close y'a une fonction "toute prête" dans prt : cumsum()
Vérifie comment elle s'utilise exactement, ça doit être un truc du genre cumsum(Close)[5] ou approchant.
APrès je n'ai rien compris à ton test, faut que tu soit plus clair s'il te plait.
la fonction Random n'existe pas sur prt.
Pour la partie 2 c'est assez simple.
pour la sommation des 5 dernieres close y'a une fonction "toute prête" dans prt : cumsum()
Vérifie comment elle s'utilise exactement, ça doit être un truc du genre cumsum(Close)[5] ou approchant.
APrès je n'ai rien compris à ton test, faut que tu soit plus clair s'il te plait.
-
ffb8080
- Messages : 6
- Enregistré le : 07 sept. 2014 09:05
Re: Aide pour indicateur qui garde en memoire et additionne
bonjour la defense
voici le code sur prt
once compteur = 0
once som = 0
once somaafficher = 0
rem ind1 prend zéro ou un comme valeur, pour cela on va le faire avec le rsi14 par exemple, si rsi5 > 50, ind1 = 1, si rsi5 <= 50alors ind1 = 0
rem som est la somme des 5 valeurs chaque fois que rsi14 a été égal à 1
rem somaafficher prend la valeur de som à chque Bougie mais s'affiche en changeant de valeur que lorque 5 valeurs de close ont été additionnées.
r5 = rsi[5](close)
if r5 > 50 then
ind1 = 1
else
ind1 = 0
endif
if compteur = 5 then
compteur =0
somaafficher = som
som = 0
endif
if ind1 =1 then
if compteur < 5 then
som = som + close
compteur = compteur +1
endif
endif
return somaafficher
voici le code sur prt
once compteur = 0
once som = 0
once somaafficher = 0
rem ind1 prend zéro ou un comme valeur, pour cela on va le faire avec le rsi14 par exemple, si rsi5 > 50, ind1 = 1, si rsi5 <= 50alors ind1 = 0
rem som est la somme des 5 valeurs chaque fois que rsi14 a été égal à 1
rem somaafficher prend la valeur de som à chque Bougie mais s'affiche en changeant de valeur que lorque 5 valeurs de close ont été additionnées.
r5 = rsi[5](close)
if r5 > 50 then
ind1 = 1
else
ind1 = 0
endif
if compteur = 5 then
compteur =0
somaafficher = som
som = 0
endif
if ind1 =1 then
if compteur < 5 then
som = som + close
compteur = compteur +1
endif
endif
return somaafficher
-
ladefense92800
- Maître Jedi
- Messages : 4289
- Enregistré le : 18 déc. 2011 18:21
Re: Aide pour indicateur qui garde en memoire et additionne
- ffb8080 :
oh dis donc ....merci beaucoup !
je teste et je reviens ....

oh dis donc ....merci beaucoup !
je teste et je reviens ....
-
ladefense92800
- Maître Jedi
- Messages : 4289
- Enregistré le : 18 déc. 2011 18:21
Re: Aide pour indicateur qui garde en memoire et additionne
- ffb8080 :
Bon j ai installe le code et ça fait pas vraiment ce que je veut . j ai bidouillé les "once" mais c est pas ça .
j ai limpression que on attend que le compteur soit egal a 5 pour afficher , et que l on a pas les 5 valeurs roulantes .
je vais essayer d expliquer un peu mieux car ça pourra servir a d autres .
..............
l indicateur 1 est tres simple :
voila le rsi croise 80 on a petite barre =1 sinon on a zero , rien .
--------
on va se servir d une moyenne de 20 periodes .
A chaque fois que l indicateur 1 sera egal a 1 , on va prendre la valeur de la moyenne et on va l ajouter au 4 dernieres valeurs de la meme moyenne mises en " memoire " avec les memes conditions , a savoir lorsque l indicateur a ete egal a 1 .
exemples , en regardant un graphique , de la droite vers la gauche :
bougies[2] , indicateur 1 =1 , average[20](close)= 12 , valeur indicateur 2 =12+45+25+77+44=203
bougies[5] , indicateur 1 =1 , average[20](close)= 45 , valeur indicateur 2 =45+25+77+44+58=249
bougies[8] , indicateur 1 =1 , average[20](close)= 25 , valeur indicateur 2 =25+77+44+58+96=300
bougies[14] , indicateur 1 =1 , average[20](close)=77, valeur indicateur 2 =77+44+58+96+82=357
bougies[28] , indicateur 1 =1 , average[20](close)= 44 , valeur indicateur 2 =44+58+96+82=280
bougies[34] , indicateur 1 =1 , average[20](close)= 58 , valeur indicateur 2 =58+96+82=236
bougies[64] , indicateur 1 =1 , average[20](close)= 96 , valeur indicateur 2 =96+82=178
bougies[88] , indicateur 1 =1 , average[20](close)= 82, valeur indicateur 2 =82
bien sur au de but comme on a pas encore les 5 cinq valeurs on remplmit avec ce qui arrive .
j espere que c est plus clair .
Bon j ai installe le code et ça fait pas vraiment ce que je veut . j ai bidouillé les "once" mais c est pas ça .
j ai limpression que on attend que le compteur soit egal a 5 pour afficher , et que l on a pas les 5 valeurs roulantes .
je vais essayer d expliquer un peu mieux car ça pourra servir a d autres .
..............
l indicateur 1 est tres simple :
Code : #
RSI14 = RSI[14](close)
if RSI14 crosses over 80 then
ind1 = 1
else
ind1 = 0
endif--------
on va se servir d une moyenne de 20 periodes .
A chaque fois que l indicateur 1 sera egal a 1 , on va prendre la valeur de la moyenne et on va l ajouter au 4 dernieres valeurs de la meme moyenne mises en " memoire " avec les memes conditions , a savoir lorsque l indicateur a ete egal a 1 .
exemples , en regardant un graphique , de la droite vers la gauche :
bougies[2] , indicateur 1 =1 , average[20](close)= 12 , valeur indicateur 2 =12+45+25+77+44=203
bougies[5] , indicateur 1 =1 , average[20](close)= 45 , valeur indicateur 2 =45+25+77+44+58=249
bougies[8] , indicateur 1 =1 , average[20](close)= 25 , valeur indicateur 2 =25+77+44+58+96=300
bougies[14] , indicateur 1 =1 , average[20](close)=77, valeur indicateur 2 =77+44+58+96+82=357
bougies[28] , indicateur 1 =1 , average[20](close)= 44 , valeur indicateur 2 =44+58+96+82=280
bougies[34] , indicateur 1 =1 , average[20](close)= 58 , valeur indicateur 2 =58+96+82=236
bougies[64] , indicateur 1 =1 , average[20](close)= 96 , valeur indicateur 2 =96+82=178
bougies[88] , indicateur 1 =1 , average[20](close)= 82, valeur indicateur 2 =82
bien sur au de but comme on a pas encore les 5 cinq valeurs on remplmit avec ce qui arrive .
j espere que c est plus clair .
-
ffb8080
- Messages : 6
- Enregistré le : 07 sept. 2014 09:05
Re: Aide pour indicateur qui garde en memoire et additionne
Ladefense
voici le code modifié. je n'avais pas bien compris ce que tu voulais.
J'ai pris le croisement à 70 pour le rsi. A 80 il y a très peu d'occurrences, on ne voit pas grand chose
M20 = average[20](close)
R14 = rsi[14](close)
once ind1 = 0
once ind2 = 0
once M1 = 0
once M2 = 0
once M3 = 0
once M4 = 0
once M5 = 0
if R14 crosses over 70 then
ind1 = 1
else
ind1 = 0
endif
if ind1 = 1 then
M1 = M2
M2 = M3
M3 = M4
M4 = M5
M5 = M20
ind1 = 0
endif
IND2 = M1+M2+M3+M4+M5
return IND2
voici le code modifié. je n'avais pas bien compris ce que tu voulais.
J'ai pris le croisement à 70 pour le rsi. A 80 il y a très peu d'occurrences, on ne voit pas grand chose
M20 = average[20](close)
R14 = rsi[14](close)
once ind1 = 0
once ind2 = 0
once M1 = 0
once M2 = 0
once M3 = 0
once M4 = 0
once M5 = 0
if R14 crosses over 70 then
ind1 = 1
else
ind1 = 0
endif
if ind1 = 1 then
M1 = M2
M2 = M3
M3 = M4
M4 = M5
M5 = M20
ind1 = 0
endif
IND2 = M1+M2+M3+M4+M5
return IND2
-
ladefense92800
- Maître Jedi
- Messages : 4289
- Enregistré le : 18 déc. 2011 18:21
Re: Aide pour indicateur qui garde en memoire et additionne
- ffb8080:
ok je regarde
je te tiens au courant .
ok je regarde
je te tiens au courant .
-
ladefense92800
- Maître Jedi
- Messages : 4289
- Enregistré le : 18 déc. 2011 18:21
Re: Aide pour indicateur qui garde en memoire et additionne
entre temps j avais demande a PRT via le formulaire ......
ils m ont envoyé un code legerement different :
ils m ont envoyé un code legerement different :
CodeVeuillez trouver ci-dessous un exemple de code basé sur notre compréhension de certaines ou de toutes les conditions que vous nous avez envoyées.
Voila un exemple de code de ce que vous voulez faire:
Code : #
myindicateur1 = CALL "indicateur 1"
avg=average[20](close)
if myindicateur1=1 then
value5=value4
value4=value3
value3=value2
value2=value1
value1=avg
endif
resultat=value1+value2+value3+value4+value5
return resultat