[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 23

 
TarasBY:

1. Ihre Philosophie, die Feldgröße zu ändern, ist von Anfang an fehlerhaft, denn in 99 von 100 Fällen reichen 10 Zellen aus, um die Indikatorwerte zu verarbeiten;

2.: Diese Werte bei jedem Ticken neu zu berechnen, ist eine Laune eines uninformierten Gehirns.


Igor, entweder du gibst vernünftige Ratschläge, wie du aus der Situation herauskommst, oder du schreibst gar nicht erst.
 

Nach einigen Experimenten habe ich festgestellt, dass die Daten über die Anzahl der Punkte in einer Zelle summiert werden können. Dies ist ausreichend.

 
FAQ: Igor, entweder du gibst vernünftige Ratschläge, wie du aus der Situation herauskommst, oder du schreibst gar nicht erst.
Ich übersetze das, was ich gesagt habe, in "gute Ratschläge": Der Mann befindet sich in einer Sackgasse.
 

Weisen Sie ihm also den richtigen Weg, anstatt nur die Tatsache des Stillstands festzustellen.

Dies ist ein Thema...

 
Fox_RM: Nach einigen Experimenten habe ich festgestellt, dass die Daten über die Anzahl der Punkte in einer Zelle summiert werden können. Dies ist ausreichend.
Ohne den geringsten Gedanken an eine Beleidigung oder Kränkung.
 

Es ist OK! Menschen in diesem Forum zu helfen ist von unschätzbarem Wert! Vor ein oder zwei Monaten wusste ich noch gar nicht, wie man mit Arrays arbeitet)

 
Fox_RM:

Wenn das Array heterogen ist, sollten Sie wahrscheinlich alle Elemente in den String-Typ konvertieren und dann das gewünschte Element mit

StringFinde(https://www.mql5.com/ru/forum/138609/page22#613148). Korrigieren Sie mich, wenn ich falsch liege.


Vielen Dank, ich habe die Funktion gefunden.

Ich verstehe nur nicht, wie man es richtig benutzt.

Sie gibt nur die Stelle in der Zeichenkette zurück, an der der gesuchte Teil beginnt, nicht aber einen Teil.

Ich brauche einen Teil einer Zeichenkette.

 
Snegovik:


Danke, ich habe die Funktion gefunden.

Ich habe nur noch nicht herausgefunden, wie man es richtig benutzt.

Sie gibt nur die Stelle in der Zeichenkette zurück, an der der gesuchte Teil beginnt, nicht aber den Teil.

Ich brauche einen Teil des Strings.

StringSubstr().
 
TarasBY:
StringSubstr ().


Genau das, was ich brauche.

Ich danke Ihnen vielmals.

 

Guten Abend, allerseits!

Das Problem: Ich kann nicht herausfinden, wie ich die Funktion zum Finden des Schnittpunkts zweier Linien verwenden kann (ich habe auch Kims Funktion ausprobiert, aber das Ergebnis ist dasselbe).

Der Punkt ist, dass die Kreuzung manchmal an der falschen Stelle erkannt wird.

Das geschieht folgendermaßen:


Die rote horizontale Linie ist das von der Funktion berechnete Preisniveau. Die gelbe ist eine Ebene, die sein sollte.

Interessant ist, dass dieser Fehler nicht immer auftritt: Oft ist der Schnittpunkt so definiert, wie er sein sollte...

Nachfolgend füge ich den Code der Funktion ein.

//+----------------------------------------------------------------------------+
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);
  }
//+----------------------------------------------------------------------------+

Der Trailer enthält einen Expert Advisor zum Testen des Systems.

Bitte beraten Sie mich, was ich falsch mache!

Herzlichen Dank im Voraus)

Dateien:
proba_per.mq4  11 kb
Grund der Beschwerde: