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

 
secret:

Danke für die Antwort, ich habe mir sowohl die Dokumentation als auch Ihr Beispiel angesehen, aber ich habe immer noch nicht gefunden, wie man einen Parameter ähnlich OrderClosePrice() in MT4 erhält.

Wenn ENUM_DEAL_ENTRY ==DEAL_ENTRY_OUT && ENUM_DEAL_TYPE == DEAL_TYPE_SELL --- bedeutet dies, dass die BUY-Position geschlossen wurde und DEAL_PRICEdaher der Schlusskurs ist.

 
secret:

Danke für die Antwort, ich habe mir sowohl die Dokumentation als auch Ihr Beispiel angesehen, aber ich habe immer noch nicht gefunden, wie man einen Parameter ähnlich OrderClosePrice() in MT4 erhält.

Es gibt keine direkte Analogie. Die Stelle besteht aus Berufen. Wenn Sie exakte Daten für eine Position wünschen, müssen Sie die Position zunächst aus der Handelshistorie zusammenstellen.

Daher ist es besser, mit dem Konzept des "Deals" zu arbeiten.


Im Allgemeinen hängt die Umsetzung sehr stark von der Antwort auf die Frage "Warum?" ab. Das heißt, Sie sollten zunächst genau beschreiben, was Sie wollen und warum.

 
secret:

Wie ermittle ich den Schlusskurs eines Auftrags (eines Geschäfts, einer Position - ganz gleich, was)?

Ich habe das Forum gegoogelt und konnte es nicht finden.

https://www.mql5.com/ru/forum/162461

Как определить последнюю цену закрытия ордера (MQL5)?
Как определить последнюю цену закрытия ордера (MQL5)?
  • 2016.12.05
  • www.mql5.com
Подскажите как определить последнюю цену закрытия ордера (MQL5)? В MQL4 было просто OrderClosePrice...
 
Igor Makanu:

alternativhttps://www.mql5.com/ru/code/16006 öffnen.

und sehen Sie sich die Implementierung von @fxsaber an

Es ist unrealistisch, die Implementierung von dort aus herauszureißen, da sie stark von allen anderen Teilen der Bibliothek abhängig ist.

 

Freunde, bitte ratet mir, wie ich ein scheinbar einfaches Problem lösen kann. Ein Stück Code:

double stavkariska;

//ставка риска по инструментам

if(StringCompare(_Symbol,"VTBR")==0||StringCompare(_Symbol,"LKOH")==0)

   {double stavkariska=0.3;}

else double stavkariska=1;

  int lot=int (depozit/(d*stoimkontr)*stavkariska); 

Compiler-Warnung:

Deklaration von 'stavkariska' versteckt lokale Deklaration in Zeile 25 script.mq5 32 12

mögliche Verwendung der nicht initialisierten Variablen 'stavkariska' script.mq5 33 39

Wie lässt sich dieses Problem lösen, so dass es ohne Warnungen kompiliert wird?


Компиляция - Разработка программ - MetaTrader 5
Компиляция - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Компиляция — это процесс перевода исходного кода MQL4/MQL5-программы на машинный язык. Ее результатом является создание исполняемого файла программы (*EX4 или *.EX5), который может быть запущен в торговой платформе. Скомпилировать можно любой файл (*.MQ4, *.MQ5 или *.MQH), однако исполняемый файл (*.EX4 или *.EX5) может быть получен только в...
 
TrueSam:

Freunde, bitte ratet mir, wie ich ein scheinbar einfaches Problem lösen kann. Ein Stück Code:

Compiler-Warnung:

Deklaration von 'stavkariska' versteckt lokale Deklaration in Zeile 25 script.mq5 32 12

mögliche Verwendung der nicht initialisierten Variablen 'stavkariska' script.mq5 33 39

Wie kann man das Problem richtig lösen, so dass es ohne Warnungen kompiliert wird?


Verwenden Sie einen Übersetzer:

декларация 'stavkariska' скрывает локальную декларацию в строке 25 скрипт.mq5 32 12

возможно использование неинициализированной переменной 'stavkariska' скрипт.mq5 33 39


Das heißt, dass Sie Variablen sorgfältiger deklarieren sollten - vermeiden Sie es, dieselben Variablen im selben Bereich zu deklarieren.

Wenn Sie eine Variable deklarieren , machen Sie es sich zur Gewohnheit, sie sofort zu initialisieren.

   double StavkaRiska=0.0;// ставка риска по инструментам

   if(StringCompare(_Symbol,"VTBR")==0 || StringCompare(_Symbol,"LKOH")==0)
     double StavkaRiska=0.3;
   else StavkaRiska=1;

   int lot=int(depozit/(d*stoimkontr)*StavkaRiska);
 
Vladimir Karputov:

Benutzen Sie den Übersetzer:


Das heißt, dass Sie Variablen sorgfältiger deklarieren sollten - vermeiden Sie es, dieselben Variablen im selben Bereich zu deklarieren.

Wenn Sie eine Variable deklarieren , machen Sie es sich zur Gewohnheit, sie sofort zu initialisieren.

Das Problem ist, wenn ich eine andere Variable in der If else-Anweisung deklariere, muss ich sie erneut deklarieren, da sonst die Fehlermeldung "'stavkariska1' - undeklarierter Bezeichner" erscheint. Ein Teufelskreis für einen Neuling. Vielleicht gibt es noch andere Möglichkeiten, die Auswahl durchzuführen?
 
TrueSam:
Die Sache ist die, dass ich bei der Deklaration einer anderen Variablen im If else-Operator die Notwendigkeit erhalte, diese erneut zu deklarieren, da sonst der Fehler "'stavkariska1' - undeklarierter Bezeichner" erscheint. Ein Teufelskreis für einen Anfänger. Vielleicht gibt es andere Möglichkeiten, die Auswahl zu treffen?

Auch der kleine Roboter hat in der Eile einen Fehler gemacht.

   double StavkaRiska=0.0;// ставка риска по инструментам

   if(StringCompare(_Symbol,"VTBR")==0 || StringCompare(_Symbol,"LKOH")==0)
     double  StavkaRiska=0.3;
   else StavkaRiska=1;

   int lot=int(depozit/(d*stoimkontr)*StavkaRiska);

Das hervorgehobene Element ist unnötig. Ohne erneute Deklaration sollte es so funktionieren, wie es sollte.

 
Alexey Viktorov:

Auch der kleine Krabbenfischer hat in seiner Eile einen Fehler gemacht.

Der hervorgehobene Teil ist überflüssig. Ohne die Neuankündigung sollte es so funktionieren, wie es sollte.

Ich danke Ihnen für Ihre Aufmerksamkeit. Es tut mir leid, ich habe direkt in meinen Browser getippt, indem ich den Text kopiert und eingefügt habe.

 
Alexey Viktorov:

Auch der kleine Krabbenfischer machte in seiner Eile einen Fehler.

Der hervorgehobene Teil ist überflüssig. Ohne eine erneute Ankündigung sollte es so funktionieren, wie es sollte.

Herzlichen Dank! Der Gral funktioniert :)
Grund der Beschwerde: