Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 326

 
Vitaly Muzichenko:

Utilice el botón para insertar el código.

Gracias))) Ahora lo sabré)) He indicado en qué lugar se produce un error durante la compilación
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());                                    //Сообщение об ошибке
Es extraño porque PriceBlizko1 se describe en la línea anterior
 

¿Qué, nadie usa indicadores de ClusterDelta?

 
vikzip:
Gracias))) Ahora sabré)) He indicado en qué lugar da un error al compilar
Es extraño porque PriceBlizko1 se describe en la línea anterior

Se describe exactamente en la línea anterior. Debe definirse globalmente para que esté disponible para todas las unidades, no sólo para la local(actual)

 
voron_026:

¿Nadie utiliza indicadores de ClusterDelta?

Leer objetos y tomar datos de ellos:ObjectGetDouble

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

Se describe exactamente en la línea anterior. Debe definirse globalmente, para que esté disponible para todas las unidades, no sólo para la local(actual)


Gracias)

 

Parece que ha terminado de escribir el EA, pero aparece un error

')' - no todas las vías de control devuelven un valor

Con qué puede estar relacionado. He intentado poner return, el error cambia

'return' - la función debe devolver un valor


posible uso de la variable no inicializada 'Ticket'
posible uso de la variable no inicializada 'LtsB'
posible uso de la variable no inicializada 'LtsS'
'return' - la función debe devolver un valor
1 error(es), 3 advertencia(s)

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

Parece que ha terminado de escribir el EA, pero aparece un error

')' - no todas las vías de control devuelven un valor

Con qué puede estar relacionado. He intentado poner return, el error cambia

El 'return' - la función debe devolver un valor


Tal vez la función debedevolver(0);

 
Vitaly Muzichenko:

Tal vez sea necesario unreturn(0) como éste;


¡¡¡¡AAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH !!!! ¡¡¡Gracias!!!

 
vikzip:

¡¡¡¡AAAAAAAA HOORAY!!!! ¡¡¡Gracias!!!

¿Por qué "gracias"? La función debe devolver un valor. Y siempre se devuelve el cero. Si se supone que no devuelve nada, su tipo debe ser void.

 
Artyom Trishkin:

En mql4, mql5 un array siempre se pasa a una función sólo por referencia (& == ampersand)

Primero - en los parámetros formales de una función, hay un ampersand, e indica que no es el propio array el que se pasa a la función, sino una referencia a él. Y entonces -dentro de la función- ya estás trabajando con la referencia, lo que significa que no tienes que especificarla de nuevo.

La tilde (~) precede al nombre del destructor de la clase - el constructor y el destructor tienen el mismo nombre que la propia clase, pero el destructor tiene ~.

Lee este artículo sobre cuándo usar referencias y cuándo usar punteros.

Aunque, de todos modos, hay que leer lo básico.

Gracias.

Razón de la queja: