Hallo! Ich habe die Funktion genommen, um den Preis der letzten offenen Verkaufsorder zu ermitteln
PriceS(string sy="0", int op=OP_SELL, int mn=-1) { //Цена последнего открытого Селл ордераdatetime t;
double r=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
Aber wenn ich es in meinen EA einfüge, erhalte ich einen Kompilierungsfehler in der Bedingung der Funktion 'sy' - unerwartetes Token
=' - unerwartetes Token 252 18
l-Wert erforderlich 1 1
implizite Umwandlung von 'String' in 'Zahl' 252 19
'=' - l-Wert erforderlich 252 18
'=' - Ausdruck vom Typ 'void' ist illegal 252 18
op' - unerwartetes Token 252 28
'=' - unerwartetes Token 252 30
l-Wert erforderlich 1 1
OP_SELL" - illegale Operation 252 31
möglicher Datenverlust aufgrund von Typenumwandlung 252 30
'=' - l-Wert erforderlich 252 30
'=' - Ausdruck vom Typ 'void' ist illegal 252 30
mn" - unerwartetes Token 252 44
'=' - unerwartetes Token 252 46
l-Wert erforderlich 1 1
1" - illegaler Vorgang 252 48
Bitte um Rat, ich habe sie kopiert und nichts geändert.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает цену открытия последней открытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double PriceOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t=0;
double r=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
einen Funktionskopf und haben den Funktionstyp nicht kopiert
Die Funktion sieht ursprünglich wie folgt aus:
Richtig, das Beispiel sagte auch. Wenn ich es richtig verstanden habe, können Sie die Auftragsart auswählen, was ich auch getan habe.
op- Handelsoperation, Positionsart. Gültige Werte:OP_BUY,OP_SELL oder-1. Der Standardwert von-1 bedeutet eine beliebige Position.
Dann habe ich die Funktion global gemacht, indem ich sie vor Start gesetzt habe. Aber wenn ich den Doppeltyp direkt vor dem Namen der Funktion zurückgebe, tritt ein Fehler auf. Bitte sagen Sie mir, warum!
'PriceS' - Funktion kann nur im globalen Bereich deklariert werden 252 10
Ich habe verstanden, dass die Funktion global sein muss!
Übersetzt der Fehler in den Übersetzer heißt es
Die Funktion darf nur im globalen Bereich definiert werden. Wenn ich die Bedeutung dieser Worte richtig verstehe, muss sie global definiert werden und daher darf ihr kein double vorangestellt werden. Es ist nicht klar, warum es bei sy einen Fehler erzeugt, auch wenn ich es einfach aus dem Muster kopiere.
Das stimmt, das stand auch in dem Beispiel. Wenn ich es richtig verstanden habe, ist es möglich, die Auftragsart auszuwählen, was ich auch getan habe.
op- Handelsoperation, Positionsart. Gültige Werte:OP_BUY,OP_SELL oder-1. Der Standardwert von-1 bedeutet eine beliebige Position.
Dann habe ich die Funktion global gemacht, indem ich sie vor Start gesetzt habe. Aber wenn ich den Doppeltyp direkt vor dem Namen der Funktion zurückgebe, tritt ein Fehler auf. Bitte sagen Sie mir, warum!
'PriceS' - Funktion kann nur im globalen Bereich deklariert werden 252 10
Ich habe verstanden, dass die Funktion global sein muss!
Übersetzt heißt der Fehler im Übersetzer
Platzieren Sie die Funktion außerhalb der Startfunktion
PriceOpenLastPos(); //текущий символ любая последняя поз.
PriceOpenLastPos(Symbol(),OP_SELL);//текущий символ OP_SELL без магика
PriceOpenLastPos(Symbol(),OP_BUY);//текущий символ OP_BUY без магика
3 Parameter magik, Komma getrennt, eigene oder 0 eingeben
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Das ist ein seltsames Gefühl, das Sie haben. Ich habe Ihnen gerade gezeigt, wie Sie es einfach halten können - ohne unnötige Variablen.
Ich bin müde und es ist Zeit für mich, mich auszuruhen - zu schlafen, ja.
Guten Tag, was ist die Funktion des Indikatorfensters im Expert Advisor?
Guten Tag, welche Funktionen im Expert Advisor können Sie im Indikatorfenster einstellen?
Rufen Sie einen leeren Indikator aus dem Expert Advisor auf.
Rufen Sie einen leeren Indikator vom Experten aus.
Ich danke Ihnen!
Hier finden Sie den gewünschten Code
Hallo! Ich habe die Funktion genommen, um den Preis der letzten offenen Verkaufsorder zu ermitteln
Aber wenn ich es in meinen EA einfüge, erhalte ich einen Kompilierungsfehler in der Bedingung der Funktion 'sy' - unerwartetes Token
=' - unerwartetes Token 252 18
l-Wert erforderlich 1 1
implizite Umwandlung von 'String' in 'Zahl' 252 19
'=' - l-Wert erforderlich 252 18
'=' - Ausdruck vom Typ 'void' ist illegal 252 18
op' - unerwartetes Token 252 28
'=' - unerwartetes Token 252 30
l-Wert erforderlich 1 1
OP_SELL" - illegale Operation 252 31
möglicher Datenverlust aufgrund von Typenumwandlung 252 30
'=' - l-Wert erforderlich 252 30
'=' - Ausdruck vom Typ 'void' ist illegal 252 30
mn" - unerwartetes Token 252 44
'=' - unerwartetes Token 252 46
l-Wert erforderlich 1 1
1" - illegaler Vorgang 252 48
Bitte um Rat, ich habe sie kopiert und nichts geändert.
Hallo! Ich habe die Funktion genommen, um den Preis der letzten offenen Verkaufsorder zu ermitteln
Aber wenn ich es in einen EA einfüge, erhalte ich einen Kompilierfehler in der 'sy' Funktionsbedingung - unerwartetes Token
=' - unerwartetes Token 252 18
l-Wert erforderlich 1 1
implizite Umwandlung von 'String' in 'Zahl' 252 19
'=' - l-Wert erforderlich 252 18
'=' - Ausdruck vom Typ 'void' ist illegal 252 18
op' - unerwartetes Token 252 28
'=' - unerwartetes Token 252 30
l-Wert erforderlich 1 1
OP_SELL" - illegale Operation 252 31
möglicher Datenverlust aufgrund von Typenumwandlung 252 30
'=' - l-Wert erforderlich 252 30
'=' - Ausdruck vom Typ 'void' ist illegal 252 30
mn" - unerwartetes Token 252 44
'=' - unerwartetes Token 252 46
l-Wert erforderlich 1 1
1" - illegaler Vorgang 252 48
Bitte um Rat, ich habe sie kopiert und nichts geändert.
Ich muss den Funktionstyp zurückgeben
Es sieht so aus, als ob alles richtig sein müsste, ich habe es kopiert undnichts geändert.
Und die Kopfzeile der Funktion, und nicht den Funktionstyp kopiert
Die Funktion sieht ursprünglich wie folgt aus:
Und der Funktionskopf, und nicht der Funktionstyp kopiert
Die Funktion sieht ursprünglich wie folgt aus:
einen Funktionskopf und haben den Funktionstyp nicht kopiert
Die Funktion sieht ursprünglich wie folgt aus:
Richtig, das Beispiel sagte auch. Wenn ich es richtig verstanden habe, können Sie die Auftragsart auswählen, was ich auch getan habe.
'PriceS' - Funktion kann nur im globalen Bereich deklariert werden 252 10
Ich habe verstanden, dass die Funktion global sein muss!
Übersetzt der Fehler in den Übersetzer heißt es
Das stimmt, das stand auch in dem Beispiel. Wenn ich es richtig verstanden habe, ist es möglich, die Auftragsart auszuwählen, was ich auch getan habe.
'PriceS' - Funktion kann nur im globalen Bereich deklariert werden 252 10
Ich habe verstanden, dass die Funktion global sein muss!
Übersetzt heißt der Fehler im Übersetzer
Platzieren Sie die Funktion außerhalb der Startfunktion
Und im Hauptteil der Startfunktion rufen Sie sie so auf:
3 Parameter magik, Komma getrennt, eigene oder 0 eingeben
Platzieren Sie die Funktion außerhalb der Startfunktion
Im Hauptteil der Startfunktion rufen Sie sie wie folgt auf:
3 Parameter magik, Komma getrennt, eigene oder 0 eingeben
Vielen Dank!!! Sobald ich die Funktion außerhalb der Startfunktion platziert habe, sind alle Fehler verschwunden!!!