ProRealTime
On y parle Livres et Outils de Trading, Station de Trading, des livres lus sur le trading, de notre vision du trader et de son métier

Besoin d'aide code PRT.

par Ice. » 31 oct. 2013 16:14

Bonjour à tous !

Je fais appelle à vous car prorealtime me donne du fil à retordre en ce moment... Voici ce que j'aimerais coder :

-Un indicateur X arrive à un seuil (par exemple 3), puis retombe à un autre seuil (par exemple 1). Si moins de R minutes se sont écoulés entre ces deux moments --> signal.

J'ai d'abord cru y arriver avec une boucle while/break, puis il s'est avéré que non. Ensuite j'ai testé avec les boucles for, mais cela ne fonctionne pas non plus. Le soucis c'est qu'une fois que mon indic tombe à 1, s'il remonte un peu et retombe à 1, cela me remet un signal que je ne souhaite pas. A chaque fois que je teste quelque chose d'autre qui me parait correct, la boucle est infinie. Yé n'en peux plus :lol: Avez vous une idée de la solution ? :geek:

exemple qui ne marche pas :

Code : #

While (highest[R](X)>=3) DO
     IF X<1 THEN
          SignalVente = 1
     ELSE
         SignalVente= 0
   ENDIF
  BREAK
WEND
Merci beaucoup beaucoup !

Re: Besoin d'aide code PRT.

par ladefense92800 » 31 oct. 2013 16:19

ça m interresse aussi ......

Re: Besoin d'aide code PRT.

par Khepesh » 31 oct. 2013 16:32

c'est bizarre la description de ton "souhait de code" me fait penser aux screens qu'a posté teg54 il y a quelques jours :roll:

et même si c’était pas le but, ça m'y fait penser quand même ;)

pour revenir au topic : je n'ai malheureusement pas de solution a ton problème (pas retouché a PRT depuis quelques mois...)

PS : t'as les balises

Code : #

[code] pour rendre ton code plus lisible 
[/code]

Re: Besoin d'aide code PRT.

par Ice. » 31 oct. 2013 16:37

Khepesh a écrit :c'est bizarre la description de ton "souhait de code" me fait penser aux screens qu'a posté teg54 il y a quelques jours :roll:
C'est en effet le même principe ;)

Merci pour les balises !

Re: Besoin d'aide code PRT.

par Arnaud_vh » 31 oct. 2013 18:42

Ma question va peut être paraître bête mais tu as bien compris que quand tu codes un programme sous prt le code est déjà à l'intérieur d'une boucle while dans laquelle on rentre à chaque tick ?

Re: Besoin d'aide code PRT.

par Goodgame42 » 31 oct. 2013 18:43

Viens en pv Ice je vais voir ce que je peux faire ;-)

Re: Besoin d'aide code PRT.

par Ice. » 31 oct. 2013 19:07

Arnaud_vh a écrit :Ma question va peut être paraître bête mais tu as bien compris que quand tu codes un programme sous prt le code est déjà à l'intérieur d'une boucle while dans laquelle on rentre à chaque tick ?
Ta remarque n'est pas bête du tout ! Mais oui, en effet, le code tourne à chaque tick ;)
Goodgame42 a écrit :Viens en pv Ice je vais voir ce que je peux faire ;-)
En MP tu veux dire ! (Déformation professionnel :mrgreen: ?)


Merci à vous deux :top:

Re: Besoin d'aide code PRT.

par Arnaud_vh » 31 oct. 2013 19:14

Ice. a écrit :
Arnaud_vh a écrit :Ma question va peut être paraître bête mais tu as bien compris que quand tu codes un programme sous prt le code est déjà à l'intérieur d'une boucle while dans laquelle on rentre à chaque tick ?

Ta remarque n'est pas bête du tout ! Mais oui, en effet, le code tourne à chaque tick ;)
Si tu le sais je ne comprends pas pourquoi tu rajoutes un while dans ton programme, un IF suffit et éviterait les boucles infinis.

Re: Besoin d'aide code PRT.

par Ice. » 31 oct. 2013 19:21

La boucle que j'ai mis en exemple n'est pas infinie !

Je pense qu'une boucle est plus appropriée qu'un if car dès que l'indicateur X retombe à 1, je souhaite que la boucle se casse et qu'elle ne tourne plus. A mon avis faire cela avec un if est assez laborieux (du moins, je ne vois pas encore comment faire)

Re: Besoin d'aide code PRT.

par Arnaud_vh » 31 oct. 2013 20:47

Ice. a écrit :La boucle que j'ai mis en exemple n'est pas infinie !

Je pense qu'une boucle est plus appropriée qu'un if car dès que l'indicateur X retombe à 1, je souhaite que la boucle se casse et qu'elle ne tourne plus. A mon avis faire cela avec un if est assez laborieux (du moins, je ne vois pas encore comment faire)
Dans la mesure où ton break est mal placé je comprends bien que ta boucle n'est pas infinie. Là tu y passes une fois si la condition d'entrée est vrai et tu sors car le break n'est pas conditionné. Pour faire un peu plus ce que tu veux il faudrait qu'il soit dans le IF X<1 du genre.

Code : #

While (highest[R](X)>=3) DO
     IF X<1 THEN
          SignalVente = 1
          BREAK
     ELSE
         SignalVente= 0
   ENDIF
WEND
Mais ça a de forte de chance de faire une boucle infinie ...

D'un point de vu plus fondamental, la programmation à base de break, goto & Co c'est à proscrire

Re: Besoin d'aide code PRT.

par ladefense92800 » 01 nov. 2013 09:55

ice demande a teg .

Re: Besoin d'aide code PRT.

par teg54 » 01 nov. 2013 12:01

Pas besoin de te casser la tête, passe par le Barindex ... Un point de référence pour le franchissement de "3", un autre pour le franchissement de "1" et tu compares ensuite les 2 .. ;)

Re: Besoin d'aide code PRT.

par Ice. » 01 nov. 2013 12:25

Génial Teg ;) Je regarde ça bientôt..

Re: Besoin d'aide code PRT.

par teg54 » 01 nov. 2013 13:30

Si tu galères dis le moi j'te détaillerai la procédure ;)

Re: Besoin d'aide code PRT.

par Ice. » 05 nov. 2013 18:45

Je reviens, je galère un peu :)

J'ai du mal à saisir comment peut-on figer le barindex lorsque l'indicateur passe le seuil voulu. Voici ce que j'ai fais :

Code : #

If HV>=3 THEN
x = barindex
ENDIF

If HV<=2 THEN
c = barindex
ENDIF

If Heikin Ashi>=3 THEN
r = barindex
ENDIF

If Heikin Ashi<=2 THEN
d = barindex
ENDIF



IF  (c-x)<20 THEN
SignalVente = 1
ELSE
SignalVente= 0
ENDIF

IF  (d-r)<20  THEN
SignalAchat = 1
ELSE
SignalAchat= 0
ENDIF
Mais le résultat est assez folklo..

Merci merci !

Re: Besoin d'aide code PRT.

par Ice. » 05 nov. 2013 19:00

Je reviens, je galère un peu :)

J'ai du mal à saisir comment peut-on figer le barindex lorsque l'indicateur passe le seuil voulu. Voici ce que j'ai fais :

Code : #

If Indicateur1>=3 THEN
x = barindex
ENDIF

If Indicateur1<=2 THEN
c = barindex
ENDIF


IF  (c-x)<20 THEN
SignalVente = 1
ELSE
SignalVente= 0
ENDIF
Mais le résultat est assez folklo..

Merci merci !

Re: Besoin d'aide code PRT.

par teg54 » 05 nov. 2013 20:41

Salut Ice !!

Pour reprendre ta problématique, t'as plusieurs étapes à prendre en compte (je te fais ça en détaillant ... libre à toi de réorganiser le code comme tu veux après, quitte à l'écrémer ;))

étape 1 : Déclaration du signal et des variables.

Code : #

signal = 0
var1 = c crosses over 3 // "c" étant ta courbe
var2 = c crosses under 1
étape 2 : Déclaration des fonctions. Lors de ces croisements le Barindex est référencé (ce que tu as fait dans ton code précédent

Code : #

if var1 then
refH = barindex
endif

if var2 then
refB = barindex
endif
étape 3 : Vérifier si entre ces deux croisements ta limite Temps (fixée ici à 5m ... donc 5 bougies en UT 1mn) est respectée + compilation

Code : #

for i = var1 to close
if var2 and (refB-refH < 5) then
signal = 1
endif
break
next

return signal
Voilà Mr ... Essaye et dis moi ce qu'il en est ;)

Bonne soirée

Re: Besoin d'aide code PRT.

par Ice. » 06 nov. 2013 20:50

Ah nickel, cela tourne parfaitement. Merci Teg !

Re: Besoin d'aide code PRT.

par teg54 » 07 nov. 2013 09:39

De nada ... ;)

Bonne continuation dans tes recherches :)

Re: Besoin d'aide code PRT.

par Ice. » 07 nov. 2013 12:43

Je me suis finalement rendu compte d'une petite anomalie, je me suis laissé le temps de réfléchir pour la résoudre mais je ne vois pas donc je reviens.

L'indicateur franchit le premier seuil, ensuite il retombe sous le second --> signal, nickel.
Sauf que si par la suite, il remonte au dessus du second seuil et retombe une nouvelle fois en dessous, cela me remet un signal.

Voici ce que j'ai testé :

Code : #

for i = varA1 to Close
if varA2 and (refB-refH < 100) and lowest(refB-refH)[indicateur]>seuil then
signalAchat = 1
endif
break
next
Sauf que la fonction lowest n'accepte qu'un entier positif en paramètre, donc pas possible de procéder comme cela. J'ai ensuite codé une boucle for mais je ne vois pas bien comment la mettre sous forme de "condition"


merci ;) !

Sujets similaires
Indicateur PRT besoin d'aide SVP
par GOLDS » 31 août 2014 00:26 (3 Réponses)
besoin aide PRT pro-order anticipe mon signal
par Julik » 26 janv. 2015 17:11 (8 Réponses)
Fonction retourne 2 valeurs mais le code en a besoin de 1
Fichier(s) joint(s) par AlainC » 03 avr. 2021 20:10 (1 Réponses)
Aide code fonctions temporelles
par Gui » 16 juin 2016 18:04 (1 Réponses)
Besoin d'un peu d'aide...
par sarthe vador » 07 oct. 2011 11:41 (9 Réponses)
Besoin d'aide urgente : recherche de cause de plantage
par ladefense92800 » 12 déc. 2013 11:55 (85 Réponses)
Station multi-écran depuis un laptop. besoin d'aide
Fichier(s) joint(s) par Thierry breizh » 23 déc. 2013 09:08 (29 Réponses)
Besoin d'aide sur épargne salariale Interexpansion FCPE
par frigolite » 09 janv. 2014 17:50 (10 Réponses)
Besoin d'aide pour graphes IG
par GOLDS » 17 févr. 2014 15:33 (13 Réponses)
besoin aide rapidité prorealtime
Fichier(s) joint(s) par Julik » 29 nov. 2014 11:55 (9 Réponses)