je voudrais générer un tableau qui stocke les supports et résistances passés qui n’ont pas été avalés par les amplitudes des jours suivants. Je l’ai écrit ainsi :
Je comprends pas trop ce que vous cherchez, si vous pourriez nous dire ce que vous recherchez exactement je pense qu’on pourra le simplifier.
Ensuite pour l’affichage tout dépend ce que vous attendez comme type d’affiche, des tracés? du dessins d’objet? autre chose?
En fait je veux générer un historique des highest et lowest quotidiens du passé qui n’ont pas été engulfed par les amplitudes des jours suivants. Sans passer par un tableau je l’ai codé ainsi :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
FORn=365DOWNTO1DO
highengulfed=0
lowengulfed=0
FORa=364DOWNTO0DO
IFDHigh(n)<=DHigh(a)ANDDHigh(n)>=DLow(a)THEN
highengulfed=1
BREAK
ENDIF
IFDLow(n)>=DLow(a)ANDDLow(n)<=DHigh(a)THEN
lowengulfed=1
BREAK
ENDIF
NEXT
IFNOThighengulfed=1THEN
DRAWHLINE(DHigh(n))Coloured(255,0,0)STYLE(LINE,2)
ENDIF
IFNOTlowengulfed=1THEN
DRAWHLINE(DLow(n))Coloured(255,0,0)STYLE(LINE,2)
ENDIF
NEXT
RETURN
Ca marche au sens où ça génère les lignes que je veux sauf que:
Comme il y a une double boucle ça met une plombe à calculer, là j’ai mis sur 365 jours mais déjà ça mouline trop, il faut que je descende à 35 jours pour que le délai de calcul soit raisonnable alors que dans l’absolu je voudrais le faire sur les 20 dernières années…
En l’état actuel le calcul est recommencé à chaque fois que je lance la plate-forme, alors que dans la mesure où il s’agit d’un historique je voudrait pouvoir sauvegarder les résultats du calcul initial et n’avoir qu’à le mettre à jour en fonction des nouveaux range quotidien pour éliminer les lowest et highest passés qui n’était pas encore engulfed la veille.
Donc en gros la question est : comment compiler une base de données à partir d’un algorithme finalement assez simple et comment sauvegarder ces résultats pour ne pas avoir à les recalculer à chaque fois ? Merci beaucoup !
if islastbarupdate then
FOR n = 365 DOWNTO 1 DO
highengulfed=0
lowengulfed=0
FOR a = 364 DOWNTO 0 DO
IF DHigh(n) <= DHigh(a) AND DHigh(n) >= DLow(a) THEN
highengulfed = 1
BREAK
ENDIF
IF DLow(n) >= DLow(a) AND DLow(n) <= DHigh(a) THEN
lowengulfed = 1
BREAK
ENDIF
NEXT
IF NOT highengulfed=1 THEN
DRAWHLINE(DHigh(n)) Coloured(255, 0, 0) STYLE(LINE, 2)
ENDIF
IF NOT lowengulfed=1 THEN
DRAWHLINE(DLow(n)) Coloured(255, 0, 0) STYLE(LINE, 2)
ENDIF
NEXT
endif
To help us continually offer you the best experience on ProRealCode, we use cookies. By clicking on "Continue" you are agreeing to our use of them. You can also check our "privacy policy" page for more information.Continue