Aide au codage - page 222

 

Merci pour le code et l'encodage Altoronto,

Merci beaucoup, je suis prêt pour la prochaine étape.

 

Merci Altoronto,

La prochaine étape pour ce code est de déterminer la même ligne pour toutes les périodes, au même point, sans changement pendant la journée, à la première minute pour la bougie à 00:00 pour le jour en cours.

J'ai joint une image avec des descriptions pour une meilleure compréhension :

Pouvez-vous ou quelqu'un peut-il m'aider à coder ceci, et à l'encoder dans un indicateur ?

Merci encore,

Si cela fonctionne enfin, j'enverrai une bouteille de bon vin chilien à ceux qui m'aideront,

Merci encore,

Daniel1983

Dossiers :
 
daniel1983:
Merci Altoronto,

La prochaine étape pour ce code est de déterminer la même ligne pour toutes les périodes, au même point, sans changement pendant la journée, à la première minute pour la bougie à 00:00 pour le jour en cours.

J'ai joint une image avec des descriptions pour une meilleure compréhension :

Pouvez-vous ou quelqu'un peut-il m'aider à coder ceci, et à l'encoder dans un indicateur ?

Merci encore,

Si cela fonctionne enfin, j'enverrai une bouteille de bon vin chilien à ceux qui m'aideront,

Merci encore,

Daniel1983

Daniel1983

Si vous utilisez le haut et le bas de la première barre fermée, il y aura des changements pendant la journée.

 

M. Mladen,

Pourquoi y aura-t-il des changements pendant la journée ? Je pense faire le calcul une seule fois et seulement pour la première bougie de chaque jour. Pas les bougies suivantes, je ne comprends pas.

à t=1 du jour 1 faire le calcul pour t= 0 du jour 1, résultat dessiner une ligne

seulement pour le jour où vous utilisez l'indicateur, à 23:59 du jour, arrêtez de travailler jusqu'au jour suivant, prix de l'indicateur pour la première bougie.

jour suivant

à t=1 du jour 2 faire le calcul pour t= 0 du jour 2, résultat dessiner une ligne

j'espère que c'est plus clair

 
daniel1983:
M. Mladen,

Pourquoi y aura-t-il des changements au cours de la journée ? Je pense faire le calcul une seule fois et seulement pour la première bougie de chaque jour. Pas les bougies suivantes, je ne comprends pas.

à t=1 du jour 1 faire le calcul pour t= 0 du jour 1, résultat dessiner une ligne

seulement pour le jour où vous utilisez l'indicateur, à 23:59 du jour, arrêtez de travailler jusqu'au jour suivant, prix de l'indicateur pour la première bougie.

jour suivant

à t=1 du jour 2 faire le calcul pour t= 0 du jour 2, résultat dessiner une ligne

J'espère que ce texte est plus clair

daniel1983

High[1] et Low[1] signifient le haut et le bas de la première barre fermée du graphique actuel. Si ce graphique n'est pas un graphique journalier, vous obtiendrez des changements intraday comme le changement du haut et du bas. De plus, dans tous les cas, mais lorsque vous utilisez un graphique quotidien, vous avez un mélange de données provenant de différents horizons temporels.

 

Ok Mladen, laissez-moi voir si j'ai bien compris, je pense que le problème est que je mélange 2 horizons temporels dans le même code, donc si je n'utilise qu'un seul horizon temporel, par exemple tout pour un graphique en 1 minute, cela devrait fonctionner :

faisons tout pour un graphique minute,

code formule por prix où la ligne doit être =

double minuteOpen = iOpen(NULL,PERIOD_M1,1) ;

double nombre = (minuteOpen+High[1]+Low[1])/3 ;

De cette façon, je pense que le code pour la ligne horizontale au prix calculé devrait être pour t=1, mais cela ne fonctionne pas.

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

int init()

{

//----

return(0) ;

}

int deinit() {

Comment("") ;

ObjectDelete("KeyLine") ;

return(0) ;

}

//+------------------------------------------------------------------+

//| Fonction d'itération de l'indicateur personnalisée |

//+------------------------------------------------------------------+

int start()

{

double minuteOpen = iOpen(NULL,PERIOD_M1,1) ;

double nombre = (minuteOpen+High[1]+Low[1])/3 ;

Comment("Key Line : ",number) ;

ObjectDelete("KeyLine") ;

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),number) ;

ObjectSet("KeyLine",OBJPROP_COLOR,Orange) ;

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID) ;

ObjectsRedraw() ;

return(0) ;

}

 
daniel1983:
Ok Mladen, laissez-moi voir si j'ai bien compris, je pense que le problème est que je mélange 2 timeframes dans le même code, donc si je n'utilise qu'un seul timeframe, par exemple tout ce qui concerne les graphiques en 1 minute, cela devrait fonctionner :

faisons tout pour un graphique minute,

formule de code por prix où la ligne doit être =

double minuteOpen = iOpen(NULL,PERIOD_M1,1) ;

double nombre = (minuteOpen+High[1]+Low[1])/3 ;

De cette façon, je pense que le code pour la ligne horizontale au prix calculé devrait être pour t=1, mais cela ne fonctionne pas.

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

int init()

{

//----

return(0) ;

}

int deinit() {

Comment("") ;

ObjectDelete("KeyLine") ;

return(0) ;

}

//+------------------------------------------------------------------+

//| Fonction d'itération de l'indicateur personnalisée |

//+------------------------------------------------------------------+

int start()

{

double minuteOpen = iOpen(NULL,PERIOD_M1,1) ;

double nombre = (minuteOpen+High[1]+Low[1])/3 ;

Comment("Key Line : ",number) ;

ObjectDelete("KeyLine") ;

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),number) ;

ObjectSet("KeyLine",OBJPROP_COLOR,Orange) ;

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID) ;

ObjectsRedraw() ;

return(0) ;

}

Non

Vous devriez le faire comme ceci :

double number = )iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3

Et de cette façon, vous allez obtenir toutes les données des données quotidiennes (pas de données de temps de différentes trames de temps de mélange).

 

Merci Mladen,

Je pense que je vais peut-être trop vite. Revenons un peu en arrière sans entrer de formule, recommençons depuis le début, faisons en sorte que l'indicateur ne fasse que la tâche suivante :

Tracer une seule ligne horizontale au prix d'ouverture de la première bougie minute de chaque jour, bougie à 00:01 minute, et l'effacer à 23:59 minute.

Le prix pour cette ligne ne change pas dans le temps pour toutes les périodes le même prix jusqu'à 23:59 quand il est effacé, et réinitialiser à nouveau à 00:01 du jour suivant.

Comment cela se passe-t-il ?

 
daniel1983:
Merci Mladen,

Je pense que je vais peut-être trop vite. Revenons un peu en arrière sans entrer de formule, recommençons depuis le début, faisons en sorte que l'indicateur ne fasse que la tâche suivante :

Tracer une seule ligne horizontale au prix d'ouverture de la première bougie minute de chaque jour, bougie à 00:01 minute, et l'effacer à 23:59 minute.

Le prix pour cette ligne ne change pas dans le temps pour toutes les périodes le même prix jusqu'à 23:59 quand il est effacé, et réinitialiser à nouveau à 00:01 du jour suivant.

Comment cela se passerait-il ?

Si vous utilisez la formule que j'ai postée, alors cela se comportera exactement comme cela : dès que le jour change, la valeur changera également et restera fixe jusqu'au jour suivant.

 

Merci Mladen, j'ai fait les changements, l'indicateur ressemble à ceci, mais ne fait toujours rien dans le graphique...

//------------------------------------------------------------------

#property copyright "www.forex-tsd.com"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

int init()

{

//----

return(0) ;

}

int deinit() {

Comment("") ;

ObjectDelete("KeyLine") ;

return(0) ;

}

//+------------------------------------------------------------------+

//| Fonction d'itération de l'indicateur personnalisée |

//+------------------------------------------------------------------+

int start()

{

double number = (iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3 ;

Comment("Key Line : ",number) ;

ObjectDelete("KeyLine") ;

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),number) ;

ObjectSet("KeyLine",OBJPROP_COLOR,Orange) ;

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID) ;

ObjectsRedraw() ;

return(0) ;

}

Qu'est-ce que je fais de mal maintenant ?

Merci de votre compréhension.