Bitte sagen Sie mir, dass ich eine Funktion innerhalb einer anderen verwende. In outer deklariere ich eine Variable. Im internen Bereich verwende ich es. Hier ist über
string PositionSymboll = "";
if (PositionSymboll=PositionGetSymbol(i)){//Возвращает символ соответствующей открытой позиции и автоматически выбирает позицию для дальнейшей работы с нейif (PositionGetInteger(POSITION_MAGIC)== MAGIC)//Функция возвращает запрошенное свойство открытой позиции, предварительно выбранной
{ BU_();}}
Etc. Es flucht wie folgt: 'PositionSymboll' - nicht deklarierter Bezeichner Redo.mq5 2472 5
Ich habe ehrlich gesagt nicht erwartet, dass es hier einen Haken gibt. Wenn ich es innerhalb der BU_()-Funktion, die ich verwende, kapsle, wird das Pyrimen "null". Was sollte ich besser machen?
Es wäre sehr gut, wenn ich sie innerhalb der ersten Funktion, innerhalb der if-Schleife, deklarieren würde.
Und selbst wenn man es innerhalb der Funktion void OnTick() deklariert, schwört der Compiler dasselbe, schon bei der ersten Funktion! Ich bin raus, ich bin raus...
Dimka-novitsek: Und selbst wenn man es innerhalb der void OnTick() Funktion deklariert, beschwert sich der Compiler immer noch auf die gleiche Weise, schon bei der ersten Funktion! Ich passe, bin gerade rausgefallen...
voidOnStart()
{
int i=0; long MAGIC=1234;
string PositionSymboll="";
if(PositionSymboll=PositionGetSymbol(i))
{//Возвращает символ соответствующей открытой позиции и автоматически выбирает позицию для дальнейшей работы с нейif(PositionGetInteger(POSITION_MAGIC)==MAGIC)//Функция возвращает запрошенное свойство открытой позиции, предварительно выбранной
{ BU_();}
}
}
void BU_(){}
kompiliert normal, aber das Konstrukt
string PositionSymboll="";
if(PositionSymboll)
fraglich, sind Sie für true/false String-Variable ????????? ich bin verwirrt überprüfen
Dimka-novitsek: Danke!!! Ich lerne gerade, dies ist mein erster EA in MQL5. Was meinen Sie mit rhetorisch?
Das bedeutet, dass keine Antwort verlangt wird.
Eine Variable vom Typ String, die als Ausdruck in einer if-Anweisung übergeben wird, ergibt nur in einem Fall false, wenn die Variable nicht initialisiert wurde.
In allen anderen Fällen wird der Variableninhalt wahr ausgegeben.
Könnten Sie mir bitte sagen, ob es eine Funktion gibt, die "true" zurückgibt, wenn es einen schwebenden Auftrag zu dem Preis gibt, der an die Funktion gesendet wurde. Es wird jedoch "kahl" zurückgegeben (abwechselnd wahr/falsch). Bitte teilen Sie mir mit, wo ich die Logik der Arbeit mit Aufträgen in mql5 vermisse? (lernt gerade).
bool OrderExist(double price) // функция возвращает наличие ордера на передаваемой цене
{
uint total=OrdersTotal();
ulong ticket;
for(uint i=0;i<total;i++)
{
if((ticket=OrderGetTicket(i))>0)
{
if(NormalizeDouble(OrderGetDouble(ORDER_PRICE_OPEN),4)== price)
{
return(true);
}
}
}
return(false);
}
Es gibt eine Funktion, die "true" zurückgeben sollte, wenn es eine ausstehende Order zu dem Preis gibt, den ich an die Funktion gesendet habe. Es wird jedoch ein kahler Wert zurückgegeben (abwechselnd wahr/falsch). Bitte teilen Sie mir mit, wo ich die Logik der Arbeit mit Aufträgen in mql5 vermisse? (lernt gerade).
Aber es ist nicht sicher, dass der Auftrag zum gegebenen Preis eröffnet wurde, es könnte einen Schlupf gegeben haben, also erhalte ich folgendes: wenn der Auftrag rechtzeitig eröffnet wurde - wahr, wenn nicht (der Preis hat sich verschoben) - falsch.
fyords: Aber es ist nicht die Tatsache, dass der Auftrag zum festgelegten Preis eröffnet wurde, es könnte zu einem Slippage gekommen sein und deshalb haben wir das folgende Ergebnis: wenn der Auftrag rechtzeitig eröffnet wurde - wahr, wenn er nicht rechtzeitig eröffnet wurde (der Preis hat sich bewegt) - falsch.
Ja, er wird im Terminal zu diesem Preis angezeigt. Wenn sie in Betrieb ist, bedeutet das, dass sie erfolgreich platziert wurde, richtig?
DMXX: Ja, es hängt zu diesem Preis im Terminal. Wenn sie in Betrieb ist, bedeutet das, dass sie erfolgreich platziert wurde, richtig?
Ja, sie ist eingestellt, aber wenn sie ausgelöst wird...
Oder ein anderes Beispiel: Wir haben einen schwebenden Auftrag, dessen Preis um 1 Punkt vom aktuellen Preis abweicht, beim nächsten Tick springt der Preis nicht um 1 Punkt, sondern, sagen wir, um 3-5 Punkte, was zu einer Eröffnung zu einem falschen Preis führt. Ein offensichtliches Beispiel ist eine Lücke.
Oder vielleicht verstehe ich die Frage nicht und bin dumm.
Etc. Es flucht wie folgt: 'PositionSymboll' - nicht deklarierter Bezeichner Redo.mq5 2472 5
Ich habe ehrlich gesagt nicht erwartet, dass es hier einen Haken gibt. Wenn ich es innerhalb der BU_()-Funktion, die ich verwende, kapsle, wird das Pyrimen "null". Was sollte ich besser machen?
Es wäre sehr gut, wenn ich sie innerhalb der ersten Funktion, innerhalb der if-Schleife, deklarieren würde.
Und selbst wenn man es innerhalb der void OnTick() Funktion deklariert, beschwert sich der Compiler immer noch auf die gleiche Weise, schon bei der ersten Funktion! Ich passe, bin gerade rausgefallen...
kompiliert normal, aber das Konstrukt
fraglich, sind Sie für true/false String-Variable ????????? ich bin verwirrt überprüfen
Die Frage ist rhetorisch.
Danke!!! Ich lerne gerade, dies ist mein erster EA in MQL5. Was meinen Sie mit rhetorisch?
Das bedeutet, dass keine Antwort verlangt wird.
Eine Variable vom Typ String, die als Ausdruck in einer if-Anweisung übergeben wird, ergibt nur in einem Fall false, wenn die Variable nicht initialisiert wurde.
In allen anderen Fällen wird der Variableninhalt wahr ausgegeben.
Könnten Sie mir bitte sagen, ob es eine Funktion gibt, die "true" zurückgibt, wenn es einen schwebenden Auftrag zu dem Preis gibt, der an die Funktion gesendet wurde. Es wird jedoch "kahl" zurückgegeben (abwechselnd wahr/falsch). Bitte teilen Sie mir mit, wo ich die Logik der Arbeit mit Aufträgen in mql5 vermisse? (lernt gerade).
Es gibt eine Funktion, die "true" zurückgeben sollte, wenn es eine ausstehende Order zu dem Preis gibt, den ich an die Funktion gesendet habe. Es wird jedoch ein kahler Wert zurückgegeben (abwechselnd wahr/falsch). Bitte teilen Sie mir mit, wo ich die Logik der Arbeit mit Aufträgen in mql5 vermisse? (lernt gerade).
Aber es ist nicht sicher, dass der Auftrag zum gegebenen Preis eröffnet wurde, es könnte einen Schlupf gegeben haben, also erhalte ich folgendes: wenn der Auftrag rechtzeitig eröffnet wurde - wahr, wenn nicht (der Preis hat sich verschoben) - falsch.
Aber es ist nicht die Tatsache, dass der Auftrag zum festgelegten Preis eröffnet wurde, es könnte zu einem Slippage gekommen sein und deshalb haben wir das folgende Ergebnis: wenn der Auftrag rechtzeitig eröffnet wurde - wahr, wenn er nicht rechtzeitig eröffnet wurde (der Preis hat sich bewegt) - falsch.
Ja, es hängt zu diesem Preis im Terminal. Wenn sie in Betrieb ist, bedeutet das, dass sie erfolgreich platziert wurde, richtig?
Ja, sie ist eingestellt, aber wenn sie ausgelöst wird...
Oder ein anderes Beispiel: Wir haben einen schwebenden Auftrag, dessen Preis um 1 Punkt vom aktuellen Preis abweicht, beim nächsten Tick springt der Preis nicht um 1 Punkt, sondern, sagen wir, um 3-5 Punkte, was zu einer Eröffnung zu einem falschen Preis führt. Ein offensichtliches Beispiel ist eine Lücke.
Oder vielleicht verstehe ich die Frage nicht und bin dumm.