Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 326

 
Vitaly Muzichenko:

Verwenden Sie die Schaltfläche zum Einfügen des Codes!

Danke))) Jetzt werde ich es wissen))) Ich habe angegeben, an welcher Stelle beim Kompilieren ein Fehler auftritt
double Price;                                                               // Цена выбранного ордера
  double Mas[];                                                                //массив для упорядочивания всех ордеров
  for(int i=0; i<OrdersTotal(); i++)                                           // Цикл перебора ордер
   {
    if(OrderSelect(i,SELECT_BY_POS))                                           // Если есть следующий
     {
      Price=OrderOpenPrice();                                                    //Заполняем массив ценами
      Mas[i] = Price;
     }
   }
  
          ArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND);                           // Теперь цены открытия упорядочены по убыванию
          
        int Blizko1=ArrayBsearch(Mas,Bid,WHOLE_ARRAY,0,MODE_ASCEND);           //Определен индекс ближайшего меньшего по значению елемента к текущей цене
        double PriceBlizko1=Mas[Blizko1];
     
     }  
      if (PriceBlizko1-Ask>=30*Point)                          //Если верхний ордер дальше чем 30 пунктов !!!! 'PriceBlizko1' - undeclared identifier!!!!!

       {OrderSend(Symbol(),OP_BUY,LtsB,Ask,2,0,Bid+30*Point);      //Открываем ордер Бай
               Alert (GetLastError());                                    //Сообщение об ошибке
Seltsam, denn PriceBlizko1 wird in der obigen Zeile beschrieben
 

Was, niemand verwendet Indikatoren von ClusterDelta?

 
vikzip:
Danke))) Ich werde jetzt wissen))) Ich habe angegeben, in welchem Ort gibt einen Fehler bei der Kompilierung
Seltsam, denn PriceBlizko1 wird in der obigen Zeile beschrieben

Sie wird genau in der obigen Zeile beschrieben. Sie muss global definiert werden, damit sie für alle Einheiten verfügbar ist, nicht nur für die lokale (aktuelle) Einheit.

 
voron_026:

Verwendet denn niemand die Indikatoren von ClusterDelta?

Objekte lesen und Daten von ihnen übernehmen:ObjectGetDouble

Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in]  Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
 
Vitaly Muzichenko:

Sie wird genau in der obigen Zeile beschrieben. Sie muss global definiert werden, damit sie für alle Einheiten verfügbar ist, nicht nur für die lokale (aktuelle) Einheit.


Dankeschön)

 

Das Schreiben des EA scheint abgeschlossen zu sein, aber es erscheint eine Fehlermeldung

')' - nicht alle Kontrollpfade geben einen Wert zurück

Womit kann das zusammenhängen? Ich habe versucht, return zu setzen, der Fehler ändert sich

return" - die Funktion muss einen Wert zurückgeben


mögliche Verwendung der nicht initialisierten Variable 'Ticket'
mögliche Verwendung einer nicht initialisierten Variablen 'LtsB'
mögliche Verwendung einer nicht initialisierten Variablen 'LtsS'
return" - Funktion muss einen Wert zurückgeben
1 Fehler, 3 Warnung(en)

Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 (MQL5), среда разработки MetaEditor и инструменты тестирования стратегий. Любую информацию о разработке торговых стратегий на языке MQL5 можно найти на официальном сайте MQL5.community. На этом же сайте в разделе Code Base могут быть...
 
vikzip:

Das Schreiben des EA scheint abgeschlossen zu sein, aber es erscheint eine Fehlermeldung

')' - nicht alle Kontrollpfade geben einen Wert zurück

Womit kann das zusammenhängen? Ich habe versucht, return zu setzen, der Fehler ändert sich

Die "Rückgabe" - die Funktion muss einen Wert zurückgeben


Vielleicht muss die Funktion(0) zurückgeben;

 
Vitaly Muzichenko:

Vielleicht ist einReturn(0) wie dieser erforderlich;


AAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH !!!! Danke!!!

 
vikzip:

AAAAAAAAAA HURRA!!!! Ich danke Ihnen!!!

Warum "Danke"? Die Funktion sollte einen Wert zurückgeben. Und Sie geben immer Null zurück. Wenn sie nichts zurückgeben soll, sollte ihr Typ void sein.

 
Artyom Trishkin:

In mql4, mql5 wird ein Array immer nur per Referenz an eine Funktion übergeben (& == kaufmännisches Und)

Erstens: In den formalen Parametern einer Funktion gibt es ein kaufmännisches Und, das anzeigt, dass nicht das Array selbst an die Funktion übergeben wird, sondern ein Verweis darauf. Und dann - innerhalb der Funktion - arbeiten Sie bereits mit der Referenz, was bedeutet, dass Sie sie nicht erneut angeben müssen.

Die Tilde (~) steht vor dem Namen des Klassendestruktors - der Konstruktor und der Destruktor haben den gleichen Namen wie die Klasse selbst, aber der Destruktor hat ~.

Lesen Sie diesen Artikel darüber, wann Sie Referenzen und wann Sie Zeiger verwenden sollten.

Trotzdem müssen Sie die Grundlagen lesen.

Ich danke Ihnen!

Grund der Beschwerde: