Gemeinsam lernen und schreiben in MQL5 - Seite 16

 
AUser:
Leute! Einige Hinweise für Anfänger in der Programmierung, wie man mit dem Griff arbeitet. Was ist das - eine Datei in einem Puffer? Wie kann man daraus Informationen gewinnen, um damit zu arbeiten?

Werfen Sie einen Blick darauf:

MQL5 Referenzhandbuch / Technische Indikatoren

MQL5 Referenzhandbuch / Zugriff auf Zeitreihen und Indikatoren / CopyBuffer

Kurz gesagt, ist der Handle ein bestimmter Zeiger (Link) auf das Programm, das eine Kopie des Indikators erstellt hat, die in der CopyBuffer-Funktion verwendet werden soll.

Sehen Sie sich auch die Artikel für Anfänger an, dort ist es beschrieben.

 
AUser:

Können Sie mir sagen, wie ich den Wert des aktuellen Preises einer Variablen zuweisen kann?

Der Artikel "Migration von MQL4 zu MQL5" ist vielleicht leichter zu lesen.

Sie sollten auch die Dokumentation öfters überprüfen.

Dies ist die Antwort auf die Frage aus dem Beispiel der Funktion SymbolInfoDouble

double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
 

AUser:

Ich frage mich auch, ob es möglich ist, historische Daten in den Indikator-Handle zu laden?

Um genau zu sein, werden die Daten nicht in das Indikator-Handle geladen, sondern in spezielle Arrays mit Hilfe der Funktionen aus dem Abschnitt "Zugriff auf Zeitreihen und Indikatordaten".

Zumindest diese Funktionen sollten weiter untersucht werden.

Kopierpuffer

Holt die Daten eines bestimmten Puffers aus einem bestimmten Indikator in ein Array

CopyRates

Ruft die Verlaufsdaten der Tarifstruktur für ein bestimmtes Symbol und einen bestimmten Zeitraum in einem Array ab.

CopyTime

Abrufen von Verlaufsdaten zur Bar-Eröffnungszeit für ein bestimmtes Symbol und einen bestimmten Zeitraum in einem Array

CopyOpen

Ruft historische Daten zum Eröffnungskurs eines Balkens für ein bestimmtes Symbol und einen bestimmten Zeitraum in einem Array ab

KopierenHoch

Ruft Historiendaten zum maximalen Barpreis für ein angegebenes Symbol und einen Zeitraum in einem Array ab

CopyLow

Ruft Historiendaten zum minimalen Barpreis für ein angegebenes Symbol und einen Zeitraum in einem Array ab

CopyClose

Ruft Historiendaten zum Bar-Close-Preis für ein angegebenes Symbol und einen Zeitraum in einem Array ab

 

AUser:

Und bei der Geschichte des Indikators ist nicht alles klar. Das Problem ist folgendes: bevor die Werte der Indikatoren auf den Balken verglichen werden, sollten sie in den Arrays der Indikatoren gesammelt werden. Die Werte der 15-Minuten-Balken können erwartet werden, aber was ist mit den wöchentlichen? Ich habe das Handbuch durchgesehen - ich verstehe nicht))) Nehmen wir an, dies ein: CopyClose(Holt die Geschichte Daten der Bar schließen Preise für das entsprechende Symbol und Zeitraum in ein Array) Die Daten, die wir bekommen, aber wie man den Indikator berechnen sie? Ich verstehe etwas nicht.


Ich verstehe, dass Sie einen Expert Advisor mit Indikatoren schreiben?

Wenn der Handle empfangen wird und es keine offensichtlichen Probleme gibt, werden die Daten des benutzerdefinierten Indikators mit dem CopyBuffer erhalten, für technische Standardindikatoren ist es besser, die folgenden Funktionen anzuwenden

Dieser Code soll die Daten von 20 Takten aus dem Puffer 0 in das Puffer-Array schreiben und die Anzahl der tatsächlich kopierten Elemente des Arrays oder -1 zurückgeben

int Res = CopyBuffer(MyHandle,0,0,20,buffer[]);

Außerdem werden 20 Takte ab Takt 0 gezählt, so dass wir die Serialität nicht vergessen sollten (Einzelheiten siehe hier). Wie Sie zusätzliche Daten erhalten, können Sie hier nachlesen.

 
AUser:
Es explodiert... was ist damit los?

die Hilfe für die Funktion OrderSend hier einstellen

 
AUser:
Es ist so geschrieben, dass es ohne Ausbildung schwer zu verstehen ist)

die Hilfe für die Funktion OrderSend hier einstellen

Ich hoffe nur, dass ich Sie dazu bringen kann, es zu lesen, sonst können Sie nichts tun.

 

AUser, - Sergejew hat Recht. Die FunktionOrderSend hat nur zwei Parameter. Sie müssen einige Zeit damit verbringen, MQL5 zu studieren.

 
AUser:

Geschrieben von:

OrderSend(TRADE_ACTION_DEAL,Symbol(),1,SL,TP,10,ORDER_TYPE_BUY,ORDER_FILLING_CANCEL);

Es ist schiefgegangen. Was ist schiefgegangen?

Ich möchte zu einem echten Preis kaufen.

Ich möchte einen detaillierteren Code für diesen Bereich oder ein Arbeitsbeispiel erhalten. 2;

2. ich würde gerne sofort entscheiden, in welcher Sprache dieser Code geschrieben ist;

3. Wir möchten, dass die Leute lernen, die Hilfe zu lesen, in diesem Fall die Beschreibung der Funktion OrderSend.

In diesem Fall ist dieses Fragment ausreichend!!!

Die Funktion OrderSend() ist für die Ausführung von Handelsgeschäften durch Senden von Anfragen an den Handelsserver bestimmt.

boolOrderSend(
MqlTradeRequest&request, //Anforderungsstruktur
MqlTradeResult&result// Struktur der Antwort
);

Ich möchte, dass die Leute mehr über die Strukturen MqlTradeRequest undMqlTradeResult erfahren.

5. Ich möchte, dass die Leute eine so wunderbare Sache wie CTrade kennenlernen (die Füllung dieser Klasse befindet sich in der Datei \MQL5\Include\Trade\Trade.mqh).

Ein Beispiel für seine Verwendung in einem Expert Advisor finden Sie im Standard Expert Advisor - MACD Sample.

Außerdem wäre es gut zu wissen, was mit dem Auftrag ab der Klasse CSampleExpert bis zur nächsten Funktion des CTrade-Codes passiert:

a) PositionOpen - Öffnet eine Position mit den angegebenen Parametern

b) PositionModify - Ändert die Positionsparameter um das angegebene Symbol

b) PositionClose -Schließt die Position mit dem angegebenen Symbol.

PS

Abschließend möchte ich, dass die Leute nicht nur die Hilfe lesen, sondern auch wissen, wie man nach Informationen in den Dateien der Standardbibliothek sucht (es ist nicht schlecht, sich mit der Tastenkombination Strg+Umschalt+F vertraut zu machen) und in den Beispielen auf dieser Website (Code Base - eine mächtige Sache, wenn man weiß, wie man sie benutzt).

 

Frage zur Funktion Sleep(). Verstehe ich das richtig, dass die Verwendung dieser Funktion in einem Expert Advisor nur die Ausführung dieses EA anhält und die CPU-Ressourcen (Kernel) an die nächsten Aufgaben in der Liste der Aufgaben dieses Kernels überträgt? Mit anderen Worten, ist es richtig, dass die Funktion Sleep() nicht den Thread selbst verlangsamt, in dem der Expert Advisor verarbeitet wird, sondern als Schalter zwischen dem aktuellen Expert Advisor und anderen Programmen fungiert, die von einem bestimmten Kernel abgeholt werden?

Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Общие функции / Sleep - Документация по MQL5
 

Frage zur MqlTradeResult-Struktur. Ich habe darin kein Zeitfeld gefunden - die Zeit der erfolgreichen Überprüfung der Basisanforderung (oder etwas Ähnliches). Erinnert sich jemand daran, ob es eine Frage über die Einführung eines zusätzlichen Zeitfeldes in die MqlTradeResult-Struktur gab? Wird benötigt, um einen schwebenden Auftrag herauszuziehen, wenn er plötzlich in die Historie eingeht.

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5