Gemeinsam lernen und schreiben in MQL5 - Seite 31

 
Urain:

Wird Puschkin die Zeichenfolge initialisieren?

Hmmm... Ich bin nicht sehr gut im Programmieren, aber würde die Zeichenfolge nicht jedes Mal zurückgesetzt werden?

Ich interessiere mich für seinen Basiswert, zum Beispiel, Wert von double ist Null, bool ist 1, aber was?

Beispiel Dabble:

Doppelstatys;

void OnTick()
{
if(Statys == 0)
{OpenBuy();}

}

Und es scheint zu funktionieren))


(Genau, es ist nicht genullt.)) Ich habe sie dort nie initialisiert.)


 
AUser:

Hmm... Ich bin nicht gut im Programmieren, aber würde die Zeichenfolge nicht jedes Mal zurückgesetzt werden?

Ich interessiere mich für seinen Basiswert, z. B. ist der Wert von double gleich Null, bool ist 1, aber was ist das?


Genau, es ist nicht genullt.) Und ich habe sie dort nie initialisiert)

In der MQL5-Hilfe ist es im Abschnitt Variableninitialisierung klar angegeben:

Jede Variable kann bei ihrer Definition initialisiert werden. Wenn eine Variable nicht explizit initialisiert wird, kann der Wert, der in dieser Variable gespeichert wird, jeder beliebige sein. Eine implizite Initialisierung wird nicht durchgeführt.

Sie haben nur eine Zeit lang Glück, aber eines Tages werden Sie Pech haben und mühsam nach einem Fehler in Ihrem Code suchen, ohne zu wissen, dass sich der Teufel im Detail versteckt. Sie müssen sich nicht darauf verlassen, dass Sie Glück haben werden.
 
Rosh:

Im Abschnitt Initialisierung von Variablen in der MQL5-Hilfe wird ausdrücklich darauf hingewiesen:

Im Moment haben Sie noch Glück, aber eines Tages werden Sie Pech haben und quälend lange nach einem Fehler in Ihrem Code suchen, ohne zu wissen, dass sich der Teufel in den Kleinigkeiten versteckt. Sie müssen sich nicht darauf verlassen, dass Sie "Glück haben".
Ja, danke)) Ich werde es richtig machen)))
 

Ich schreibe eine einfache Funktion, um die Richtung der Indizierung in einem Array zu überprüfen. Die Arrays selbst werden aus OnCalculate() übernommen, d.h. sie haben unterschiedliche Typen (double, datetime, etc.). Es gibt Beispiele für Terminalfunktionen in der Referenz, die den Header-Typ f(void &array[]) bei der Verarbeitung von Arrays verschiedener Typen verwenden. Aber Compiler schwört auf die Verwendung des Typs void in Benutzerfunktionen. Gibt es eine universelle Möglichkeit, dem Compiler mitzuteilen, dass der Typ des Array-Parameters für eine Benutzerfunktion nicht wichtig ist?

 

Ich möchte die Struktur des Ergebnisses einer Handelsanfrage (MqlTradeResult) klären

double price; // Preis im Handel, bestätigt vom Broker

Sie gibt den Preis eines schwebenden Auftrags nicht zurück? Der Expert Advisor hat den folgenden Code geschrieben:

double Statys = 0;
void OnTick()
{
if (Statys == 0)
{OpenBuy();}
}

void OpenBuy()
{
MqlTradeRequest o; MqlTradeResult p;
double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);

o.action = TRADE_ACTION_PENDING;
o.Symbol = _Symbol;
o.Volumen = 1;
o.Preis = 82.000;
o.sl = 81,800;
o.tp = 82.200;
o.type = ORDER_TYPE_BUY_STOP;
o.type_filling = ORDER_FILLING_AON;
o.type_time = ORDER_TIME_GTC;
OrderSend(o,p);
Statys = p.Preis;
}


In Anbetracht der Tatsache, dass wir viele offene Geschäfte haben, wage ich die Vermutung, dass die Antwort Preis = 0 lautet. Es ist aber irgendwie seltsam.


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

Gibt es eine universelle Möglichkeit, dem Compiler mitzuteilen, dass der Typ des Array-Parameters für eine Benutzerfunktion nicht wichtig ist?

Führen Sie eine Überladungsfunktion für verschiedene Datentypen im Array aus.
Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - Документация по MQL5
 
AUser:

Ich möchte die Struktur des Ergebnisses einer Handelsanfrage (MqlTradeResult) klären

double price; // Preis im Handel, bestätigt vom Broker

Sie gibt den Preis eines schwebenden Auftrags nicht zurück? Der Expert Advisor hat einen solchen Code geschrieben:


Der Tatsache nach zu urteilen, dass es eine Menge offener Geschäfte gibt, wage ich die Vermutung, dass die Antwort Preis = 0 ist. Das ist schon irgendwie seltsam.


Ein schwebender Auftrag bedeutet nicht, dass ein Geschäft zustande kommt. Schauen Sie sich die Hilfe zur Struktur von MqlTradeResult an:

Beschreibung des Feldes

Feld

Beschreibung

retcode

Rückgabecode des Handelsservers

Angebot

Deal-Ticket, wenn ein Deal durchgeführt wurde. Wird in der Handelsoperation TRADE_ACTION_DEAL gemeldet

Bestellung

Bestellschein, wenn ein Fahrschein ausgestellt worden ist. Benachrichtigung während einer TRADE_ACTION_PENDING-Handelsoperation

Band

Volumen des vom Makler bestätigten Geschäfts. Es hängt von der Art der Auftragsabwicklung ab

Preis

Abgeschlossener Preis, vom Makler bestätigt. Abhängig vom Abweichungsfeld in der Geschäftsanfrage und/oder der Art des Geschäfts

Angebot

Aktueller Geldkurs am Markt (Rücknahmepreis)

fragen Sie

Aktueller Marktgebotspreis (Rücknahmepreise)

Kommentar

Kommentar des Brokers zu der Transaktion (standardmäßig mit einer Entschlüsselung versehen)

Bitte fügen Sie auch den Code korrekt ein.
 
Okay, stopp. Müssen wir auch Strings initialisieren? Es handelt sich nicht um einen atomaren Typ.
 
Rosh:

Ein schwebender Auftrag stellt keinen Handel dar. Schauen Sie in der Hilfe zur Struktur MqlTradeResult nach:

Bitte fügen Sie auch den Code korrekt ein.
Ich hab's)
 
TheXpert:
Okay, stopp. Müssen wir auch Strings initialisieren? Es handelt sich nicht um einen atomaren Typ.
Sie sollten sich nicht auf die Standardinitialisierung verlassen. Niemals.