Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1300

 
Vladimir Karputov:
 m_trade.SetExpertMagicNumber(InpMagic);

Ja, das habe ich. Es stellte sich heraus, dass ich einen logischen Fehler gemacht habe, der dazu führte, dass die Methode nicht aufgerufen wurde. Vielen Dank für die Antwort.


Eine weitere Frage: Wie kann man eine andere Methode derselben Klasse innerhalb einer Klassenmethode (in der .mqh-Datei) aufrufen?

Das Konstrukt funktioniert nicht:

void CTradeMT45::CloseAll(int OrderType) {

CloseOrder(ticket);

}

void CTradeMT45::CloseOrder(ulong ticket){

}
 
Ildar Yusupov:

Ja, das habe ich. Es stellte sich heraus, dass ich einen logischen Fehler gemacht habe, der dazu führte, dass die Methode nicht aufgerufen wurde. Vielen Dank für die Antwort.


Eine weitere Frage: Wie kann man eine andere Methode derselben Klasse innerhalb einer Klassenmethode (in der .mqh-Datei) aufrufen?

Das Konstrukt funktioniert nicht:

Hier ein Tipp: Vergessen Sie das Wort "Auftrag" (nur "ausstehender Auftrag" ist erlaubt), und Sie werden sofort die gesamte Logik in Gang setzen.

 
Vladimir Karputov:

Ein Ratschlag: Vergessen Sie das Wort "Auftrag" (es kann nur "anstehender Auftrag" verwendet werden), und alle Logik wird sofort einleuchten.

Anstelle von "Order" wäre es korrekter, in mt5 das Wort "Order" zu verwenden. Obwohl sie in ihrem Wesen ähnlich sind.

 
Valeriy Yastremskiy:

Anstelle von Order ist in mt5 das korrekte Wort Order zu verwenden. Obwohl es sich um ähnliche Wörter handelt.

Auch im MetaTrader 5 gibt es einen Marktauftrag. Man kann nicht einfach aus "religiösen" Gründen auf etwas verzichten, das ein integraler Bestandteil des Auftragssystems der Handelsplattform ist.

Es gibt Aufträge im MT5. Und sie werden in der Historie angezeigt. Und sie enthalten sogar Informationen, die eine sachkundige Person zu ihrem eigenen Vorteil nutzen wird.

Sie müssen nur besser wissen, wie die Dinge funktionieren, und nicht den Namen dessen, was genau als Auftrag bezeichnet wird, für bare Münze nehmen. Es handelt sich um einen Handelsauftrag. Sie ist der Urheber der restlichen Metamorphosekette, die zu einer Position führt. Ein schwebender Auftrag ist eine andere Einheit. Sie kann auch auf Aufträge zurückgeführt werden - sozusagen ein "bedingter Auftrag".

Wenn der Auftrag ausgeführt wird, erscheint ein Marktauftrag und wird in ein Geschäft umgewandelt, das eine Position erzeugt oder verändert. Wenn ich mich recht erinnere, ist es schon eine Weile her, dass ich die gesamte Historie mit der Ereigniskette von der Bestellung bis zur Schließung einer Position durchgesehen habe. Aber als ich mich eingehend damit beschäftigte, lief es, wenn ich mich recht erinnere, genau so ab: Auftrag - Marktauftrag - Geschäft - Eröffnung/Änderung/Schließung der Position.

Und ja, es handelt sich nicht um eng verwandte Wörter, sondern um eine Übersetzung aus dem Englischen ins Russische. Bestellung == Bestellung

 
Artyom Trishkin:

MetaTrader 5 verfügt auch über einen Marktauftrag. Sie können nicht einfach aus "religiösen" Gründen auf etwas verzichten, das ein integraler Bestandteil des Auftragssystems der Handelsplattform ist.

Es gibt Aufträge im MT5. Und sie werden in der Historie angezeigt. Und sie enthalten sogar Informationen, die eine sachkundige Person zu ihrem eigenen Vorteil nutzen wird.

Sie müssen nur besser wissen, wie die Dinge funktionieren, und nicht den Namen dessen, was genau als Auftrag bezeichnet wird, für bare Münze nehmen. Es handelt sich um einen Handelsauftrag. Sie ist der Urheber der restlichen Metamorphosekette, die zu einer Position führt. Ein schwebender Auftrag ist eine andere Einheit. Sie kann auch als ein Auftrag, sozusagen ein bedingter Auftrag, eingestuft werden.

Wenn der Auftrag ausgeführt wird, erscheint ein Marktauftrag und wird in ein Geschäft umgewandelt, das eine Position erzeugt oder verändert. Wenn ich mich recht erinnere, ist es schon lange her, dass ich die gesamte Historie mit der Ereigniskette von der Bestellung bis zur Schließung einer Position durchgesehen habe. Aber als ich mich eingehend damit beschäftigte, lief es, wenn ich mich recht erinnere, genau so ab: Auftrag - Marktauftrag - Geschäft - Eröffnung/Änderung/Schließung der Position.

Und ja, es handelt sich nicht um eng verwandte Wörter, sondern um eine Übersetzung aus dem Englischen ins Russische. Bestellung == Bestellung.

Offensichtlich spreche ich kein Englisch. Ich rufe keineswegs dazu auf, die Begriffe zu ersetzen. Ersetzen Sie zum besseren Verständnis einfach die Worte. Und bei der Erklärung die Substitution zu verwenden. Und um bestehende Konzepte zu nutzen.

Im Handel wird er als Übersetzung verwendet. Und im Russischen ist ein Haftbefehl ein Befehl, der in der Produktion ausgeführt wird. Ein Produktionsauftrag ist in der Regel ein Produktionsauftrag.

 
Valeriy Yastremskiy:

Offenbar bin ich nicht sehr wortgewandt. Ich fordere keineswegs eine Ablösung von Konzepten. Nur um Worte zu ersetzen, damit sie richtig verstanden werden. Und bei der Erläuterung Substitutionen zu verwenden. Und um bestehende Konzepte zu nutzen.

Im Handel wird er als Übersetzung verwendet. Und im Russischen ist ein Haftbefehl ein Befehl, der in der Produktion ausgeführt wird. In der Regel handelt es sich um einen Produktionsauftrag.

Ein Auftrag, der in der Produktion ausgeführt werden soll, wird als naryad bezeichnet. Mancherorts wurde sie als "Auftrag", "Auftrag" oder "Zuweisung" bezeichnet.

Für die Freigabe von Produkten gab es immer nur einen Frachtbrief. Und ein Haftbefehl wurde in der Regel für eine Verhaftung ausgestellt... oder für eine Durchsuchung... Was sollten Sie schreiben)))))))))

Es ist gar nicht so schlimm... Es gab auch einen Haftbefehl für eine Wohnung. Ich hatte schon zwei davon...

 

Ich kann mir nicht erklären, was für einen Unsinn der Indikator ausgibt. Ich möchte prüfen, welche der nächsten 10 Kerzen Zickzack-Spitzen aufweisen, und bei denselben Kerzen möchte ich nur die Hochs und auch nur die Tiefs hervorheben. Ich weiß, dass in 0 Puffer alle lokalen Spitzen, in 1 - hai, in 2 - Tiefs.

Was ist hier das Problem? Ich verstehe das nicht. Ich habe die Indikatoreinstellungen im Diagramm und die, die ich an den Aufruf weitergebe, überprüft - sie sind identisch. Ich drucke nur den Nullpunkt des Hauptpuffers, um den Vorgang zu überprüfen.

input int ExtDepth = 40;
input int ExtDeviation = 5;
input int ExtBackstep = 3;

double zz = 0;
double zi_0[];
double zi_1[];
double zi_2[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ArraySetAsSeries(zi_0,  true);
   ArraySetAsSeries(zi_1,  true);
   ArraySetAsSeries(zi_2,  true);
   zz = iCustom(_Symbol,PERIOD_CURRENT,"Examples\\ZigZag",ExtDeviation,ExtDeviation,ExtBackstep);
   
   CopyBuffer(zz,0,0,10,zi_0);
   CopyBuffer(zz,1,0,10,zi_1);
   CopyBuffer(zz,2,0,10,zi_2);
   
  
  for(int i = 0; i < 10; i++)
     {
       Print(i,"  ",zi_0[i]);
     }
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

   
  }
//+------------------------------------------------------------------+


 
Nikita Chernyshov:

Ich kann mir nicht erklären, was für einen Unsinn der Indikator ausgibt. Ich möchte prüfen, welche der nächsten 10 Kerzen Zickzack-Spitzen aufweisen, und bei denselben Kerzen möchte ich nur die Hochs und auch nur die Tiefs hervorheben. Ich weiß, dass in 0 Puffer alle lokalen Spitzen, in 1 - hai, in 2 - Tiefs.

Was ist hier das Problem? Ich verstehe das nicht. Ich habe die Indikatoreinstellungen im Diagramm und die, die ich an den Aufruf weitergebe, überprüft - sie sind identisch. Ich drucke nur den Nullpunkt des Hauptpuffers aus, um seine Arbeit zu überprüfen.


Im "0"-Puffer sind Spitzen = Spitzenwerte, oder "0". "0" sind die Balken, die keine Spitzen sind.

 

Guten Tag.

Die Frage ist folgende. Wenn ich im Strategy Tester arbeite, speichert der Expert Advisor die notwendigen Informationen zu den Positionen in einer Datei. Die Datei wird im Ordner
"<terminal_folder>\Tester\<testing_agent_name>\MQL5\Files\........" gespeichert.

Später möchte ich dieselbe Datendatei nur im Diagramm verwenden (NICHT im Prüfgerät). Das Terminal erlaubt die Arbeit mit Dateien aus dem Ordner

"<Terminal_Ordner>\MQL5\Files\.....".

Ist es möglich, dass der MQL5-Code die vom Expert Advisor hochgeladenen Dateien in den Ordner "<Terminal_folder>\Tester\\<Testing_agent_name>\MQL5\Files\ " zieht? Oder sind diese Bereiche strikt zwischen dem Strategy Tester und der üblichen Arbeit getrennt?

Es ist mir nicht gelungen, alles aus dem Strategy Tester nach "<Terminal_folder>\MQL5\Files\" zu schreiben oder mit der MethodeFileMove zu kopieren.

 
satorifx:

Guten Tag.

Die Frage ist folgende. Wenn ich im Strategy Tester arbeite, speichert der Expert Advisor die notwendigen Informationen zu den Positionen in einer Datei. Die Datei wird im Ordner
"<terminal_folder>\Tester\<testing_agent_name>\MQL5\Files\........" gespeichert.

Später möchte ich dieselbe Datendatei nur im Diagramm verwenden (NICHT im Prüfgerät). Das Terminal erlaubt die Arbeit mit Dateien aus dem Ordner

"<Terminal_Ordner>\MQL5\Files\.....".

Ist es möglich, dass der MQL5-Code die vom Expert Advisor hochgeladenen Dateien in den Ordner "<Terminal_folder>\Tester\\<Testing_agent_name>\MQL5\Files\ " zieht? Oder sind diese Bereiche strikt zwischen dem Strategy Tester und der üblichen Arbeit getrennt?

Es ist mir nicht gelungen, alles aus dem Strategy Tester nach "<Terminal_folder>\MQL5\Files\" zu schreiben oder mit der MethodeFileMove zu kopieren.

Schreiben in den gemeinsamen Ordner für alle Terminals( FlagFILE_COMMON)
Grund der Beschwerde: