[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 23

 
TarasBY:

1e : votre philosophie de changer la taille du tableau est défectueuse dès le départ, vous pouvez vous contenter de 10 cellules pour traiter les relevés d'indicateurs dans 99 cas sur 100 ;

2e : recalculer ces relevés à chaque tic est un caprice d'un cerveau mal informé.


Igor, soit vous commencez à donner des conseils sensés pour vous sortir de cette situation, soit vous ne postez pas du tout.
 

Après avoir expérimenté, je me suis rendu compte que les données sur le nombre de points peuvent être résumées dans une cellule. C'est suffisant.

 
FAQ: Igor, soit vous commencez à donner des conseils judicieux pour vous sortir de cette situation, soit vous ne postez pas du tout.
Je vais traduire ce que je disais en "conseil avisé" - l'homme se dirige dans une voie sans issue.
 

Il faut donc l'orienter dans la bonne direction et ne pas se contenter de constater l'impasse.

C'est un fil...

 
Fox_RM: Après avoir expérimenté, je me suis rendu compte que les données sur le nombre de points peuvent être résumées dans une cellule. C'est suffisant.
Sans la moindre pensée d'offenser ou d'insulter.
 

C'est bon ! Aider les gens sur ce forum est inestimable ! Il y a un mois ou deux, je ne savais pas du tout comment travailler avec des tableaux).

 
Fox_RM:

Si le tableau est hétérogène, il est préférable de convertir tous les éléments en chaînes de caractères, puis de rechercher l'élément requis en utilisant la commande

StringFinde(https://www.mql5.com/ru/forum/138609/page22#613148). Corrigez-moi si je me trompe.


Merci, j'ai trouvé la fonction.

Je ne comprends pas comment l'utiliser correctement.

Il renvoie seulement un endroit dans la chaîne où la partie recherchée commence, mais pas une partie.

J'ai besoin d'une partie d'une chaîne.

 
Snegovik:


Merci, j'ai trouvé la fonction.

Je n'ai juste pas encore trouvé comment l'utiliser correctement.

Il ne renvoie que l'endroit dans la chaîne où la partie recherchée commence. mais pas la partie.

J'ai besoin d'une partie de la ficelle.

StringSubstr().
 
TarasBY:
StringSubstr ().


Juste ce dont j'ai besoin.

Merci beaucoup.

 

Bonsoir à tous !

Le problème : je n'arrive pas à trouver comment utiliser la fonction permettant de trouver le point d'intersection de deux lignes (j'ai aussi essayé la fonction de Kim, mais le résultat est le même).

Le fait est que le crossover est parfois détecté au mauvais endroit.

Voici ce qui se passe :


La ligne horizontale rouge représente le niveau de prix calculé par la fonction. Le jaune est un niveau qui devrait l'être.

Ce qui est intéressant, c'est que ce bug ne se produit pas toujours : souvent l'intersection est définie comme elle devrait l'être...

Je colle ci-dessous le code de la fonction.

//+----------------------------------------------------------------------------+
void Middle(string nm1,string nm2)
  {
  //double M;
  double x1, x2, x3, x4;
  double y1, y2, y3, y4;
  double k1, k3;
  
  if(ObjectFind(nm1)==0 && ObjectFind(nm2)==0)
    {
    y1=ObjectGet(nm1, OBJPROP_PRICE1);
    y2=ObjectGet(nm1, OBJPROP_PRICE2);
    x1=ObjectGet(nm1, OBJPROP_TIME1);
    x2=ObjectGet(nm1, OBJPROP_TIME2);
    
    y3=ObjectGet(nm2, OBJPROP_PRICE1);
    y4=ObjectGet(nm2, OBJPROP_PRICE2);
    x3=ObjectGet(nm2, OBJPROP_TIME1);
    x4=ObjectGet(nm2, OBJPROP_TIME2);
    
    k1=(y2-y1)/(x2-x1); 
    k3=(y4-y3)/(x4-x3);
    
    if(k1 != k3)
      {
      T = (y1 - y3 + k3*x3 - k1*x1)/(k3 - k1);
      M = y1 + k1*(T - x1);
      Tt = T;
      }
    }
  return(0);
  }
//+----------------------------------------------------------------------------+

La remorque contient un conseiller expert pour le tester.

Veuillez me conseiller sur ce que je fais de mal !

Merci beaucoup d'avance)

Dossiers :
proba_per.mq4  11 kb