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

 
Peter Vorobyev:

Ändern Sie den Quellcode von MQ und machen Sie Methoden öffentlich, es ist klar, dass dies nicht unsere Methode ist :)

#define private public

Wenn Sie das nicht wollen, dann werden alle Elemente inCAppDialog durch grafische Objekte gebildet, Sie müssen nur den Objektnamen kennen, und nachdem Sie eine Instanz der CAppDialog-Klasse erstellt haben, schreiben Sie eine Methode, die die CAppDialog-Ränder in der gewünschten Farbe neu malt

 
Igor Makanu:

Wenn Sie das nicht wollen, werden alle Elemente des CAppDialog-Bedienfelds als grafische Objekte gebildet. Sie müssen nur den Namen des Objekts kennen und nach der Erstellung einer Instanz der CAppDialog-Klasse eine Methode schreiben, die die CAppDialog-Ränder in der gewünschten Farbe malt

Hierüber können Sie den Code übertragen und nach dem richtigen Steuerelement innerhalb der Klasse suchen. Das funktioniert.

Aber ich weiß nicht, wie ich darauf zugreifen kann, wenn ich den Namen des Objekts kenne.

 
Peter Vorobyev:

Damit können Sie den Code verschieben, um das gewünschte Steuerelement innerhalb der Klasse zu finden. Das funktioniert.

Aber ich weiß nicht, wie ich darauf zugreifen kann, wenn ich den Namen des Objekts kenne.

https://www.mql5.com/ru/docs/objects/objectsetinteger

aber ich denke, es ist einfacher, alle privaten Methoden und Felder für Ihre eigenen Bedürfnisse in öffentliche umzudefinieren

 
Igor Makanu:

https://www.mql5.com/ru/docs/objects/objectsetinteger

aber ich denke, es ist einfacher, alle geschlossenen Methoden und Felder für den eigenen Bedarf auf public umzudefinieren

ObjectSetInteger - funktioniert :), ich hatte es ganz vergessen.
Können Sie ein Beispiel für#defineprivate public geben- ich verstehe nicht, wie man die Methode außer Kraft setzt. Ist es notwendig, dies in Ihrer Klasse zu tun?

 
Peter Vorobyev:

ObjectSetInteger - funktioniert :), ich hatte es ganz vergessen.
Können Sie ein Beispiel für#define private public geben- ich verstehe nicht, wie man die Methode außer Kraft setzt. Ist es notwendig, dies in Ihrer Klasse zu tun?

#define private public
#include <Controls\Dialog.mqh>
// тут весь Ваш класс который наследуете от CAppDialog
#undef private
Experimentieren Sie mit undef, nach der Makro-Substitution können Sie es abbrechen und alle öffentlichen Methodenvon CAppDialog in Ihrer Klasse schließen, um später das Schreiben von Code zu erleichtern
 
Igor Makanu:

Igor, ja, das funktioniert. Ich danke Ihnen.

 

Genetische Optimierung eines EA auf MT5 mit lokalen Agenten, die mit dem Heimnetzwerk verbunden sind.

Der Expert Advisor übernimmt einige Ausgangsdaten aus einer Textdatei.

Ich öffne die Datei mit den Flags: FILE_READ|FILE_SHARE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON

Damit die lokalen Agenten die Datei finden können, musste ich sie in den Ordner Common des lokalen Computerterminals kopieren.

Besteht der einzige Ausweg darin, die erforderlichen Dateien jedes Mal manuell auf alle lokalen Rechner zu duplizieren?

Kann das Terminal diese Datei nicht selbst zusammen mit den Eingabeparametern für den Test senden?

 
Wie kann ich den Preis des Fibonacci-Fächerniveaus auf dem aktuellen Balken programmatisch herausfinden?
 
Сергей Таболин:
Wie kann ich den Preis des Fibonacci-Fächerniveaus auf dem aktuellen Balken programmatisch herausfinden?
bool  ObjectGetDouble(
   long                            chart_id,          // идентификатор графика
   string                          name,              // имя объекта
   ENUM_OBJECT_PROPERTY_DOUBLE     OBJPROP_LEVELVALUE,           // идентификатор свойства
   int                             prop_modifier,     // модификатор свойства
   double&                         double_var         // сюда примем значение свойства
   );
Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in]  Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
 
Alexey Viktorov:
void OnTick()
{
//---
   Print(TimeToString(TimeLocal()));
   Print(ObjectGetDouble(0,"TrL",OBJPROP_PRICE));
}

Gibt den Preis des ersten Punktes der Trendlinie aus. (((

2020.01.18 11:46:37.233 2019.11.29 00:00:00   2019.11.29 00:00
2020.01.18 11:46:37.233 2019.11.29 00:00:00   1.00245
2020.01.18 11:46:39.533 2019.11.29 08:00:00   2019.11.29 08:00
2020.01.18 11:46:39.533 2019.11.29 08:00:00   1.00245
2020.01.18 11:46:41.834 2019.11.29 16:00:00   2019.11.29 16:00
2020.01.18 11:46:41.834 2019.11.29 16:00:00   1.00245
2020.01.18 11:46:44.135 2019.12.02 00:00:00   2019.12.02 00:00
2020.01.18 11:46:44.135 2019.12.02 00:00:00   1.00245
Grund der Beschwerde: