Aide au codage - page 701

 
AtApi:

Salut les gars et les gourous du code,

Je suis à la recherche d'un indicateur simple qui trace ses propres valeurs à partir d'un fichier CSV. Quelqu'un peut-il m'aider ?

Merci d'avance !

Que signifie l'expression "sa propre valeur" ?
 
mladen:
Que signifie "sa propre valeur" ?

Merci mladen,

J'ai besoin d'un indicateur qui lit un fichier CVS et affiche les valeurs dans une sous-fenêtre. Le CVS contient deux valeurs séparées par des virgules, la première valeur est la date et la seconde est la valeur réelle que l'indicateur doit afficher.

Par exemple

le CVS ressemble à ceci :

date,value
2016.10.26.05.55,126.845
2016.10.26.05.50,126.848
2016.10.26.05.45,126.844
2016.10.26.05.40,126.82
2016.10.26.05.35,126.816
2016.10.26.05.30,126.81

l'indicateur va tracer la valeur en fonction de la date.

J'espère que c'est un peu plus clair maintenant...

Merci pour votre aide mon ami !

 

Cher ami,

J'ai besoin de coder,

la fermeture de la bougie puis si la bougie est UP alors l'alerteUP et la bougie est DOWN alors l'alerteDOWN n'importe quel cadre temporel.

si vous avez pls partager moi,

merci en adance,

- jesing

 
AtApi :

Merci mladen,

J'ai besoin d'un indicateur qui lit un fichier CVS et affiche les valeurs dans une sous-fenêtre. Le CVS contient deux valeurs séparées par des virgules, la première valeur est la date et la seconde est la valeur réelle que l'indicateur doit afficher.

Par exemple

le CVS ressemble à ceci :

Heure,valeur

2016.10.26.21.20,127.765

2016.10.26.21.15,127.777

2016.10.26.21.10,127.777

2016.10.26.21.05,127.799

2016.10.26.21.00,127.791

2016.10.26.20.55,127.788

l'indicateur affichera la valeur en fonction de la date.

J'espère que c'est un peu plus clair maintenant...

Merci pour votre aide mon ami !

C'est ce que j'ai accompli jusqu'à présent :

extern   string   FileName    = "AUDCAD.CSV";
datetime   dt[9999];
double     val[9999];

string     arr[2];    

int h = FileOpen(FileName, FILE_CSV|FILE_READ,'~');
  if (h==0)   Comment("File "+FileName+" not found.");

  
  for (int c=0; !FileIsEnding(h) && c<9999; c++)  {

  
    string tmp = FileReadString(h);
    if (FileIsEnding(h))  break;
    StrToStringArray(tmp,arr,",");
    dt[c]  = StrToTime(arr[0]);  // <==== This should convert the date value (in the format of "yyyy.mm.dd hh:mi") to datatime type and assign it to the array
    val[c] = StrToNumber(arr[1]); // <==== This will assign the value to the array
   

  }
  FileClose(h);

//+------------------------------------------------------------------+
void StrToStringArray(string str, string &a[], string delim=",")  {
//+------------------------------------------------------------------+
  int z1=-1, z2=0;
  for (int i=0; i<ArraySize(a); i++)  {
    z2 = StringFind(str,delim,z1+1);
    a[i] = StringSubstr(str,z1+1,z2-z1-1);
    if (z2 >= StringLen(str)-1)   break;
    z1 = z2;
    
  }
}
//+------------------------------------------------------------------+
double StrToNumber(string str)  {
//+------------------------------------------------------------------+
// Usage: strips all non-numeric characters out of a string
  int    dp   = -1;
  int    sgn  = 1;
  double num  = 0.0;
  for (int i=0; i<StringLen(str); i++)  {
    string s = StringSubstr(str,i,1);
    if (s == "-")  sgn = -sgn;   else
    if (s == ".")  dp = 0;       else
    if (s >= "0" && s <= "9")  {
      if (dp >= 0)  dp++;
      if (dp > 0)
        num = num + StrToInteger(s) / MathPow(10,dp);
      else
        num = num * 10 + StrToInteger(s);
    }
  }
  return(num*sgn);
}
Je ne sais pas pourquoi si j'imprime dt[c], il retourne toujours la même valeur... comme si le temps ne changeait jamais même si le arr[0] change à chaque itération de la boucle...
Après cela, nous devrions affecter la valeur à la barre avec ce temps... mais je suis coincé...

	          
 
AtApi:
AtApi :

Merci mladen,

J'ai besoin d'un indicateur qui lit un fichier CVS et affiche les valeurs dans une sous-fenêtre. Le CVS contient deux valeurs séparées par des virgules, la première valeur est la date et la seconde est la valeur réelle que l'indicateur doit afficher.

Par exemple

le CVS ressemble à ceci :

Heure,valeur

2016.10.26.21.20,127.765

2016.10.26.21.15,127.777

2016.10.26.21.10,127.777

2016.10.26.21.05,127.799

2016.10.26.21.00,127.791

2016.10.26.20.55,127.788

l'indicateur affichera la valeur en fonction de la date.

J'espère que c'est un peu plus clair maintenant...

Merci pour votre aide mon ami !

C'est ce que j'ai accompli jusqu'à présent :

Nevermind j'ai résolu le problème....the SrtToTime only accept string with this format : "yyyy.mm.dd hh:mi" that means that i was loading a CSV with this format instead "yyyy.mm.dd hh.mi" and obviously was giving me an error... anyway i solved !!!
 

bonjour

Mr mladen :

pourriez-vous le mettre à jour pour la nouvelle version de mt4

Bien à vous

Dossiers :
 

Quelqu'un peut-il m'aider à résoudre ces 3 problèmes

1. corriger l'erreur de suivi

2.supprimer le deuxième filtre de temps, le système fonctionnera sur le chat 30m

3.ajouter l'indicateur ci-joint comme un filtre sur le chat 1D

 

Chers amis,

Mon ea donne l'erreur suivante,.

"EURUSD+,M5 : ticket inconnu 21847676 pour la fonction OrderDelete"

Que signifie cette phrase ? Quel est le problème et que puis-je faire ?

 
oguz:

Chers amis,

Mon ea donne le problème suivant.

"EURUSD+,M5 : ticket inconnu 21847676 pour StringConcatenate(function"

Que signifie cette phrase ? Quel est le problème ?

Que puis-je faire ?

Cela signifie qu'il ne peut pas trouver un ordre avec le numéro de ticket 21847676 qu'il peut supprimer.

Soit :

  • le numéro de ticket est erroné
  • soit l'ordre a déjà été supprimé entre-temps (deux EAs, ou la boucle n'a pas été vérifiée correctement, ou quelque chose de similaire ...)
 

bonjour mr mladen

Pourriez-vous m'aider à mettre cet indicateur sur un graphiqueséparé MTF similaire à cette image ?

regardez

Dossiers :
xb4d_2.mq4  4 kb