Amplitude veille et report en live

LabZone, l'atelier de développement du forum Andlil : API, logiciels et utilitaires de trading créés par les membres, versions, bugs et idées.
Avatar du membre
X@vi3r
Membre du Conseil Jedi
Messages : 8068
Enregistré le : 26 avr. 2021 14:13

Amplitude veille et report en live

Message non lu par X@vi3r »

un petit indicateur :
- calcul amplitude veille
- report de l'amplitude (et ses extensions) en live

La base de calcul est celle de la formule du 8 de Treve.
il est donc possible de changer dans le code le "+8" ;)

Je n'y affiche que les la ligne du milieu et les deux premières lignes. Pas dur de faire des copier coller pour les autres ;)

Dsl pour le franglais. Au début je voulais me la jouer universel dans mon codage mais prt ecrit en français par defaut. Du coup maintenant je suis quasi que en français mais pas pour celui là.

Code : #

defparam calculateonlastbars = 500 // à commenter pour avoir historique
Defparam DrawOnLastBarOnly = true // à commenter pour avoir historique

//vertical offset to draw text corectly over horizontal LINE
voffset = setoffset* pipsize

//Calculation min and max full day (between SetOpenHour and SetCloseHour)
//reset values each days
If IntraDayBarIndex = 0 then
HighestH = 0
LowestL  = 99999
endif
//loop to test highest and lowest at each candle during open hours
if time >= SetOpenHour   and time <= SetCloseHour  then
HighestH = max(high,HighestH)
LowestL = min(low,LowestL)
endif

//to keep the highest and lowest of the open hours
IF time = SetCloseHour THEN
lasthighestH = HighestH
lastlowestL = LowestL
ENDIF

//when new day start (same open hours), live highest and lowest
if time >= SetOpenHour   and time <= SetCloseHour  then
actualdayhighest = max(high,HighestH)
actualdaylowest  = min(low,LowestL)
endif


//actual high and low
Actualhigh = High
Actuallow = Low

//variation max-min for the day before
varDayBefore = lasthighestH - lastlowestL

//lines calculation and drawing

Line50 = actualDaylowest + varDayBefore/2
Diffline50 = Line50 - Actualhigh //difference actual high and line price
DRAWRAY(barindex-10, Line50 , Line50 , Line50 ) coloured(0,255,255) STYLE(line,1)
DRAWTEXT("#Diffline50# Line50   #Line50#", barindex-5, Line50+voffset ) coloured(0,255,255)

LinePos1 = actualDaylowest + varDayBefore + 8
Difflinepos1 = LinePos1 - Actualhigh //difference actual high and line price
DRAWRAY(barindex-10, LinePos1 , LinePos1 , LinePos1 ) coloured(0,255,255) STYLE(line,1)
DRAWTEXT("#Difflinepos1# Line+1   #LinePos1#", barindex-5, LinePos1+voffset ) coloured(0,255,255)

LinePos2 = actualDaylowest + varDayBefore + varDayBefore/2 + 8
Difflinepos2 = LinePos2 - Actualhigh //difference actual high and line price
DRAWRAY(barindex-10, LinePos2 , LinePos2 , LinePos2 ) coloured(0,255,255) STYLE(DOTTEDLINE,1)
DRAWTEXT("#Difflinepos2# Line+2   #LinePos2#", barindex-5, LinePos2+voffset ) coloured(0,255,255)

LineNeg1 = actualdayhighest - varDayBefore - 8
Difflineneg1 = LineNeg1 - Actuallow //difference actual low and line price
DRAWRAY(barindex-10, Lineneg1 , LineNeg1 , LineNeg1 ) coloured(0,255,255) STYLE(line,1)
DRAWTEXT("#Difflineneg1# Line-1   #LineNeg1#", barindex-5, LineNeg1+voffset ) coloured(0,255,255)

LineNeg2 = actualdayhighest - varDayBefore - varDayBefore/2 - 8
Difflineneg2 = LineNeg2 - Actuallow //difference actual low and line price
DRAWRAY(barindex-10, Lineneg2 , LineNeg2 , LineNeg2 ) coloured(0,255,255) STYLE(DOTTEDLINE ,1)
DRAWTEXT("#Difflineneg2# Line-2   #LineNeg2#", barindex-5, LineNeg2+voffset ) coloured(0,255,255)

//pour avoir l'historique enlever les commentaire après "return" et commenter les deparam du haut
return //Line50 , LinePos1 , LinePos2 , LineNeg1 , LineNeg2
Attention :
Le calcul live démarre à 0H00 (de mémoire) sur la base de l'amplitude veille (dans l'exemple du prog 15H30-22H00)
Donc les lignes s'affichent tout le temps mais ne sont évidemment pas valables hors horaire. Logique mais je précise :lol:
On pourrait ajouter une condition pour qu'elles ne s'affichent qu'à partir de 15H30.
Saidfed
Maître Jedi
Messages : 4420
Enregistré le : 14 juin 2021 10:40

Re: Amplitude veille et report en live

Message non lu par Saidfed »

Good job
Et merci pour le partage. Même si je suis pas sur PRT.
Avatar du membre
X@vi3r
Membre du Conseil Jedi
Messages : 8068
Enregistré le : 26 avr. 2021 14:13

Re: Amplitude veille et report en live

Message non lu par X@vi3r »

:mercichinois:
Avatar du membre
Franck Jo
Chevalier Émérite Jedi
Messages : 3653
Enregistré le : 29 août 2021 21:19

Re: Amplitude veille et report en live

Message non lu par Franck Jo »

super Merci Xav !
Avatar du membre
Nicautrade
Membre du Conseil Jedi
Messages : 5052
Enregistré le : 27 sept. 2023 05:56

Re: Amplitude veille et report en live

Message non lu par Nicautrade »

Merci X@vi3r

pour le travail et le partage

Je vais tester rapidement
Avatar du membre
Nicautrade
Membre du Conseil Jedi
Messages : 5052
Enregistré le : 27 sept. 2023 05:56

Re: Amplitude veille et report en live

Message non lu par Nicautrade »

X@vi3r

J'ai tenté de le créer et j'ai ce message.

As tu une idée du problème ?
Capture d'écran 22.png
Capture d'écran 22.png (12.9 Kio) Vu 40230 fois
Avatar du membre
X@vi3r
Membre du Conseil Jedi
Messages : 8068
Enregistré le : 26 avr. 2021 14:13

Re: Amplitude veille et report en live

Message non lu par X@vi3r »

Ah oui ! Deux choix :

Soit tu saisis toi même ces variables comme ci-dessous
Capture d'écran 2024-05-16 151025.png
Capture d'écran 2024-05-16 151025.png (9.12 Kio) Vu 40210 fois

soit tu ajoutes en début de code :

Code : #

setclosehour = 220000
setopenhour = 153000
setoffset = 10
Avatar du membre
Nicautrade
Membre du Conseil Jedi
Messages : 5052
Enregistré le : 27 sept. 2023 05:56

Re: Amplitude veille et report en live

Message non lu par Nicautrade »

Merci X@vi3r

Je regarde ça rapidement
Avatar du membre
Nicautrade
Membre du Conseil Jedi
Messages : 5052
Enregistré le : 27 sept. 2023 05:56

Re: Amplitude veille et report en live

Message non lu par Nicautrade »

Encore un souci,
Capture d'écran 22.png
Capture d'écran 22.png (12.98 Kio) Vu 40183 fois
Une idée ?
Avatar du membre
X@vi3r
Membre du Conseil Jedi
Messages : 8068
Enregistré le : 26 avr. 2021 14:13

Re: Amplitude veille et report en live

Message non lu par X@vi3r »

Oui, il te manque le terme "return" à la fin.
Prends garde à bien TOUT copier/coller

la fin de mon code est bien :

Code : #

//pour avoir l'historique enlever les commentaire après "return" et commenter les deparam du haut
return //Line50 , LinePos1 , LinePos2 , LineNeg1 , LineNeg2
les "//" sont pour commenter, ne pas prendre en compte le texte derriere
Avatar du membre
Nicautrade
Membre du Conseil Jedi
Messages : 5052
Enregistré le : 27 sept. 2023 05:56

Re: Amplitude veille et report en live

Message non lu par Nicautrade »

X@vi3r ,

J'ai toujours le même message :

Pourtant, le return est bien à la fin
Capture d'écran 22.png
Capture d'écran 22.png (19.53 Kio) Vu 40153 fois
Je suis peut être pas doué. :oops:
Avatar du membre
falex
Le Gladiateur
Messages : 34275
Enregistré le : 12 févr. 2013 15:41

Re: Amplitude veille et report en live

Message non lu par falex »

Faudrait faire de la spéléo dans le forum mais je suis sur d'avoir fournis un code PRT pour afficher des lignes à partir de la close Cash de 22h00.
Avatar du membre
X@vi3r
Membre du Conseil Jedi
Messages : 8068
Enregistré le : 26 avr. 2021 14:13

Re: Amplitude veille et report en live

Message non lu par X@vi3r »

Je vais pas être dispo avant tard ce soir mais envoie ton code entier que je vois si je trouve l’erreur
Avatar du membre
falex
Le Gladiateur
Messages : 34275
Enregistré le : 12 févr. 2013 15:41

Re: Amplitude veille et report en live

Message non lu par falex »

là tu ne "Return" rien, donc normal que tu ais une erreur.

Un exemple basé sur ton code serait :

Code : #

return Line50, LinePos1
Avatar du membre
Nicautrade
Membre du Conseil Jedi
Messages : 5052
Enregistré le : 27 sept. 2023 05:56

Re: Amplitude veille et report en live

Message non lu par Nicautrade »

Merci falex

Et en ligne 70 ( capture 17h06) , ce n'est pas bon le Return comme libellé ?
Avatar du membre
falex
Le Gladiateur
Messages : 34275
Enregistré le : 12 févr. 2013 15:41

Re: Amplitude veille et report en live

Message non lu par falex »

non c'est ce que je viens de te d'écrire. Tu as commentés toutes les variables qui sont derrière l'instruction return.

L'instruction return est à formulé soit

Code : #

return variabletoto, variabletiti
soit

Code : #

return variabletoto as "ligne du haut", variabletiti as "ligne du bas"
Soit un mixte des deux

Code : #

return variabletoto, variabletiti as "ligne du bas"
Avatar du membre
X@vi3r
Membre du Conseil Jedi
Messages : 8068
Enregistré le : 26 avr. 2021 14:13

Re: Amplitude veille et report en live

Message non lu par X@vi3r »

Pas besoin de « return » une variable.
Mon code est bon sur ce point là car on dessine des segment pour afficher les niveaux en live « drawarray ».

C’est bizarre Nicau…
Gaby-192
Messages : 6
Enregistré le : 18 mars 2021 17:49

Re: Amplitude veille et report en live

Message non lu par Gaby-192 »

Cela fonctionne bien chez moi, les niveaux s'affichent correctement. J'ai juste mis return sans rien derrière.
Avatar du membre
Nicautrade
Membre du Conseil Jedi
Messages : 5052
Enregistré le : 27 sept. 2023 05:56

Re: Amplitude veille et report en live

Message non lu par Nicautrade »

Gaby

Et tu as saisi les variables de quelle manière ?
Gaby-192
Messages : 6
Enregistré le : 18 mars 2021 17:49

Re: Amplitude veille et report en live

Message non lu par Gaby-192 »

J'ai juste coup/collé puis rejouté les sethour... etc mais il faut faire attention aux sauts de lignes en collant le code, les corriger. J'ai enlevé les commentaires après le return et modifié les couleurs car trop pales et presque illisibles.