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

 
barudkinarseniy:
Hallo meine Herren vom Forum!!! Ich habe ein Problem. Ich habe den Expert Advisor an Wochentagen getestet und er hat ein Ergebnis geliefert, aber am Wochenende liefert er mir ein völlig anderes Ergebnis! Können Sie mir bitte sagen, warum?
Ich denke, das liegt daran, dass sich die Spanne an den Wochenenden vergrößert.
 
Sergey Gritsay:
weil sie am Wochenende die Spanne ausweiten
und das Margenniveau sinkt, d.h. wenn der Markt schließt oder früher, oder hängt dies vom Broker ab?
 
Karputov Vladimir:

Hier ist das Dialogfeld mit dem CEdit-Steuerelement (der Übersichtlichkeit halber wurde das Beispiel als einzelne Datei erstellt) - das Feld prüft die eingegebenen Zeichen. Nur Zahlen sind erlaubt:

Vielen Dank für den Code. Aber hier ist eine andere Frage. Ich habe den Code in MT5 kompiliert. Es hat sich herausgestellt, dass man zwar immer noch Buchstaben in das Gerät eingeben kann, aber wenn man Buchstaben eingibt, steht am Ende des Codes im Gerät "Nur Ziffern sind erlaubt". Aber wie kann man es unmöglich machen, Buchstaben in das Gerät einzugeben?
 
Andrey Zuev:
Vielen Dank für den Code. Aber eine andere Frage ist diese. Ich habe den Code in mt5 kompiliert. Es hat sich herausgestellt, dass man in "Bearbeiten" immer noch Buchstaben eingeben kann, aber wenn man Buchstaben eingibt, heißt es am Ende der Eingabe "Nur Zahlen sind erlaubt" in "Bearbeiten". Aber wie kann man es unmöglich machen, Buchstaben in udite einzugeben?
Das können Sie nicht. Das Steuerelement, das auf der Klasse CEdit basiert, verarbeitet nur das Ereignis ON_END_EDIT- (6) // Ende der Bearbeitung, d. h. das Ereignis zum Abschluss der Eingabe.
 

Kolleginnen und Kollegen, ich versuche, ein Signal von dieser Linie zu bekommen:

if((MathAbs(d_f)>(K_F*Point)) && (d_f>0.0)) // Signal zum Kauf

Aber der Compiler beschwert sich, dass "Point - undeklarierter Bezeichner".

Dies ist MT5.

Handelt es sich nicht um eine vordefinierte Variable?

 
Andrey Koldorkin:

Kolleginnen und Kollegen, ich versuche, ein Signal von dieser Linie zu bekommen:

if((MathAbs(d_f)>(K_F*Point)) && (d_f>0.0)) // Signal zum Kauf

Aber der Compiler beschwert sich, dass "Point - undeklarierter Bezeichner".

Dies ist MT5.

Handelt es sich nicht um eine vordefinierte Variable?

Nein. Verwenden Sie _Point.
 
Andrey Koldorkin:

Kolleginnen und Kollegen, ich versuche, ein Signal von dieser Linie zu bekommen:

if((MathAbs(d_f)>(K_F*Point)) && (d_f>0.0)) // Signal zum Kauf

Aber der Compiler beschwert sich, dass "Point - undeklarierter Bezeichner".

Dies ist MT5.

Handelt es sich nicht um eine vordefinierte Variable?

Sie müssenPoint() verwenden.

 

Ich danke Ihnen.

Eine andere Frage. Ich möchte den Wert der Kurve bei der aktuellen und der letzten geschlossenen Kerze sowie bei der letzten geschlossenen und der vorletzten geschlossenen Kerze nehmen.

Muss ich hier ein Array verwenden?

Ich habe eine Mashka, die 3 Eingabeparameter hat. Ich versuche, eine Adresse dafür zu finden:

//----------------------

double P0, P1, P2; // Indikatorwert bei der aktuellen Kerze, letzte geschlossene Kerze

P0 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //Der Indikatorpreis auf der aktuellen Kerze

P1 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //Der Indikatorpreis auf der letzten geschlossenen Kerze

P2 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //Der Indikatorpreis an der vorletzten geschlossenen Kerze

//----------------------

Die unteren drei Zeilen sind gleich, ich habe sie so geschrieben, weil ich nicht verstehe, wie man den Wert der vorherigen Kerze lesen kann. Er nimmt den aktuellen Wert korrekt an und gibt ihn mit Alert korrekt aus.

Vielleicht sollten wir irgendwie eine Schleife definieren, in der der aktuelle Wert geschrieben wird und mit jeder neuen Kerze zurückgeschoben wird, so dass er zuerst die letzte geschlossene und dann die vorletzte geschlossene Kerze wird.

Wie kann dies auf intelligente Weise geschehen? ))

 
Andrey Koldorkin:

Kolleginnen und Kollegen, ich versuche, ein Signal von dieser Linie zu bekommen:

if((MathAbs(d_f)>(K_F*Point)) && (d_f>0.0)) // Signal zum Kauf

Aber der Compiler beschwert sich, dass "Point - undeklarierter Bezeichner".

Dies ist MT5.

Handelt es sich nicht um eine vordefinierte Variable?

Und dann schreiben Sie dies:

Andrej Koldorkin:

Ich danke Ihnen.

Eine andere Frage. Ich möchte den Wert der Kurve bei der aktuellen und der letzten geschlossenen Kerze sowie bei der letzten geschlossenen und der vorletzten geschlossenen Kerze nehmen.

Muss ich hier ein Array verwenden?

Ich habe eine Mashka, die 3 Eingabeparameter hat. Ich versuche, eine Adresse dafür zu finden:

//----------------------

double P0, P1, P2; // Indikatorwert bei der aktuellen Kerze, letzte geschlossene Kerze

P0 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //Der Indikatorpreis auf der aktuellen Kerze

P1 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //Der Indikatorpreis auf der letzten geschlossenen Kerze

P2 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //Der Indikatorpreis an der vorletzten geschlossenen Kerze

//----------------------

Die unteren drei Zeilen sind gleich, ich habe sie so geschrieben, weil ich nicht verstehe, wie man den Wert der vorherigen Kerze lesen kann. Er nimmt den aktuellen Wert korrekt an und gibt ihn mit Alert korrekt aus.

Vielleicht sollten wir irgendwie eine Schleife definieren, in der der aktuelle Wert geschrieben wird und mit jeder neuen Kerze zurückgeschoben wird, so dass er zuerst die letzte geschlossene und dann die vorletzte geschlossene Kerze wird.

Wie kann dies auf intelligente Weise geschehen? ))

Also, immer noch: schreiben Sie in MT5 oder in MT4?

Hinzugefügt:Code korrekt in das Forum einfügen

 
Karputov Vladimir:

und dann schreiben Sie dies:

Also immer noch: Schreiben Sie im MT5 oder MT4?

Hinzugefügt:Korrektes Einfügen des Codes im Forum

MT5. Urteilen Sie nicht zu hart, ich fange gerade erst an.

Der Compiler scheint nicht zu fluchen.

Grund der Beschwerde: