Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1016

 
Oleh Fedorov:

Hallo.

Hat niemand etwas zu dem Beitrag von Bilder zu sagen?

Vielleicht ist es sinnvoll, sie in einen neuen Thread zu stellen, damit mehr Leute sie sehen? Wenn ja, bitten Sie die Moderatoren, sie zu veröffentlichen... Oder selbst eine erstellen?

Ja, erstellen Sie ein eigenes Thema. Versuchen Sie einfach, den richtigen Bereich des Forums zu wählen, in dem Sie das Thema erstellen möchten.

 

Ein Ratschlag, bitte, elementar. Arrays.

Ich studiere und verstehe es nicht.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  OrderSend(Symbol(),OP_BUYSTOP,0.01,tick[1,2],3,0,0,"bs2",0,0,clrBlue); 
}

Während der Kompilierung treten keine Fehler auf, aber wenn ich es im Terminal ausführe, bekomme ich einen kritischen Fehler.

Warum wird beim Ausdruck des Kommentars zumTick[1,1]- Wert die Zahl auf 4 Dezimalstellen gerundet?

Warum ist es nicht nur nicht in der Lage, den Wert vontick[1,2] korrekt zu berechnen, sondern weigert sich auch, die Daten der Zelletick[1,1] zu kopieren(tick[1,2]=tick[1,1];).

Und schließlich, warum, wenn ich bei der Erstellung eines Auftrags statt des Preises eine Zelle des Arrays anführe, in der dieser Preisals tick[1,2] gespeichert ist, diese Variable als 2 Werte auf einmal betrachtet wird. (es gibt einen Schlupfwert, der in den Hinweisen übersprungen wird)

 
Gilmor:

Ein Ratschlag, bitte, elementar. Arrays.

Ich studiere und verstehe es nicht.

Ich erhalte keine Fehler während der Kompilierung, aber ich erhalte einen kritischen Fehler, wenn ich es im Terminal ausführe.

Warum wird beim Ausdruck des Kommentars zumTick[1,1]- Wert die Zahl auf 4 Dezimalstellen gerundet?

Warum ist es nicht nur nicht in der Lage, den Wert vontick[1,2] korrekt zu berechnen, sondern weigert sich auch, die Daten der Zelletick[1,1] zu kopieren(tick[1,2]=tick[1,1];).

Und schließlich, warum, wenn ich bei der Erstellung eines Auftrags statt des Preises eine Zelle des Arrays anführe, in der dieser Preis gespeichert ist,tick[1,2], diese Variable als 2 Werte auf einmal betrachtet wird. (es gibt einen Schlupfwert, der in den Hinweisen übersprungen wird)

Denn in den Parametern der Funktion OrderSend spielt das Komma, wie in allen anderen Funktionen, eine Rolle. Sobald ein Komma im Text erscheint, wird es als Trennzeichen für eingehende Werte behandelt. Häkchen setzen[1][2]

 
Alexey Viktorov:

Denn in den Parametern der Funktion OrderSend spielt, wie in allen anderen Funktionen auch, das Komma eine Rolle. Sobald ein Komma im Text erscheint, wird es als Trennzeichen für eingehende Werte behandelt. Häkchen setzen[1][2]

Ich danke Ihnen. Vielleicht können Sie auch die anderen Fragen beantworten? :)
 
Gilmor:
Ich danke Ihnen. Vielleicht können Sie auch einige andere Fragen beantworten? :)

Können Sie die Frage Fleisch(2.55=367.12) beantworten?

 
Alexey Viktorov:

Können Sie die Frage Fleisch(2,55=367,12) beantworten?

Ich hab's.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }
double tick[2,2];

Ein Array mit 2 Zellen in der oberen Reihe und 2 Zellen in der unteren Reihe erstellt.

void OnTick()
  {
  tick[1,1] = Ask;
 Comment (tick[1,1])

Ergebnis. Der Preis auf dem Diagramm ist 0,84478, aber der Kommentar oben zeigt 0,8448 ???? Warum wurde auf 4 Dezimalstellen gerundet?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = tick[1,1];
  }

Der Logik des Schreibens in eine Zelle folgend, kopiere ich die Daten von Zelle 1 des Arrays in Zelle 2 desselben Arrays. Das Ergebnis ist ein kritischer Fehler.

Warum?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }

Wir möchten in Zelle 2 des Arrays den Wert des zukünftigen Preises für den schwebenden Auftrag hinzufügen. Mit anderen Worten, wir wollen 100 Punkte zum Briefkurs hinzufügen und dann diese Zelle des Arrays im Preisparameter angeben, wenn wir den Auftrag erteilen. Bei der Ausführung dieses Befehls wird jedoch wieder derselbe Fehler angezeigt.


Warum?

 
Gilmor:

Der Logik des Schreibens in eine Zelle folgend, kopiere ich die Daten aus Zelle 1 des Arrays in Zelle 2 desselben Arrays. Das Ergebnis ist ein kritischer Fehler.

Und warum?

weil Sie nicht verstehen, was Arrays sind, wenn Sie die Hilfe gelesen haben, und es nicht funktioniert hat, lassen Sie uns "auf unsere Finger"

es ist eine Array-Deklaration

double tick[2,2];

was den Compiler anweist, "4 Speicherzellen" zu reservieren --> 2x2

und der Zugriff auf das niedrigste Element hat den Index 0, d.h. in Ihrem Fall hat das Arraytick[2,2] nur diese Arrayelemente

tick[0,0]tick[0,1]

tick[1,0]tick[1,1]

Es gibt 4 Elemente in dem Array, richtig? .... aber der jüngste Index des Arrays hat die Nummer 0 und nicht wie gewünscht (oder wie Sie es bei der verbalen Berechnung gewohnt sind) die Nummer 1


und folglich hat das älteste Element des Feldes die Nummer: Feldgröße minus 1

wenn Sie die Array-Dimensionen überschritten haben, erhalten Sie einen kritischen Fehler bei der Ausführung - Ihr Screenshot, d.h. für das Arraytick[2,2] gibt es kein solches Array-Element mit der Nummertick[2,2]

 

Nun, zumindest gebe ich zu, dass ich ein Anfänger bin :)

Ich danke Ihnen.

Nun, das mit den Fingern ist eine Gewohnheit. "An den Fingern", das ist leichter zu verstehen. Und wenn ich es jemandem erklären würde, der diese Sprache überhaupt nicht beherrscht, müsste ich meine Zehen benutzen, um es zu erklären =))

 
Gilmor:

Nun, zumindest gebe ich zu, dass ich ein Anfänger bin :)

Ich danke Ihnen.

Nun, das mit den Fingern ist eine Gewohnheit. "An den Fingern", das ist leichter zu verstehen. Und wenn ich es jemandem erklären würde, der in dieser Sprache eine Null ist, müsste ich meine Zehen benutzen, um es zu erklären =))

Ein Anfänger ist keine Schande, desto mehr ist die Branche thematisch - für Anfänger, und dies ist eines der wenigen Foren, wo Sie eine schnelle Antwort auf Ihre Frage bekommen können ;)

Lesen Sie außerdem den Anfang der Hilfehttps://docs.mql4.com/ru/basis/variables

 
Igor Makanu:

das ist keine Schande für einen Neuling, zumal dies eines der wenigen Foren ist, in denen man schnell eine Antwort auf seine Frage bekommt ;)

und lesen Sie darüber hinaus den Anfang der Hilfehttps://docs.mql4.com/ru/basis/variables

Ich danke Ihnen.
Grund der Beschwerde: