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

 
Nikolay Gaylis:
Hola, ¿podríais decirme cómo mostrar/eliminar un determinado símbolo de forma programada en la ventana de "visión general del mercado"?

Véase la función SymbolSelect.

 

Buenas tardes, ¿podría decirme dónde puede haber un error en este fragmento de código?

 if (TotalMax_1<1)Step_1max=TotalMax_0;                                                  // Если расчетов еще небыло Step_1max=TotalMax_0
 else Step_1max=TotalMax_0-TotalMax_1;                                                   // Если расчеты уже были Step_1max=TotalMax_0-TotalMax_1
 
 for (i_1max=Step_1max;TotalMax_0>TotalMax_1;i_1max--)                                   // Главный цикл для заполнения массива Max_1
  {
   if (Max_0[i_1max]>Min_0[i_1max] && Stop_1max==0)                                      // Если максимум больше минимума и Stop_1max равен 0 нужно произвести расчет Максимального Индекса
    {
     Mmax_1=Max_0[i_1max];                                                               // Задается значение параметру Mmax_1
     MIndex_1max=i_1max;                                                                 // Задается значение параметру MIndex_1max
       
     for (i_1maxH=i_1max;Max_0[i_1maxH]>=Min_0[i_1maxH];i_1maxH--)                       // Цикл для расчета Максимального Индекса
       {
        if (Max_0[i_1maxH]>Mmax_1)                                                       // Если встречается максимум и он выше предыдущего
         {
          Mmax_1=Max_0[i_1maxH];                                                         // ... то меняется значение параметра Mmax_1
          MIndex_1max=i_1maxH;                                                           // ... и параметра MIndex_1max
         }
       }
       
     Stop_1max=1;                                                                        // Задается значение пераметру Stop_1max
    }
                                                                             
   if (i_1max==MIndex_1max)                                                              // Условие для вычисления максимума
    {
     Max_1[i_1max]=Mmax_1;                                                               // Присвоение значения массиву Max_1
     TotalMax_1=ArraySize(Max_1);                                                        // Всего баров в массиве Max_1
     }
        
   else                                                                                  // Если нет
      { 
       Max_1[i_1max]=0;                                                                  // Присвоение 0 значения массиву Max_1
       TotalMax_1=ArraySize(Max_1);                                                      // Всего баров в массиве Max_1
       }

   if (Min_0[i_1max]>Max_0[i_1max]) Stop_1max=0;                                         // Если минимум больше максимума задается значение пераметру Stop_1max
       
  }
 

Hola a todos, me encuentro con el siguiente problema:

Abro una operación sin stoploss y takeprofit:

OrderSend("EURUSD",OP_BUY,0.1,Ask,0,0,0,"",Magic,0,Red);

Quiero cerrar este pedido

OrderClose(Magic,OrderOpenPrice(),Ask,0,Red);

Me sale este error: OrderClose error 131

Si en lugar deOrderOpenPrice() apunto 0.1 o OrderLots() hay un error: OrderClose error 138

¿Cuál es el problema?

 
labvic:

Hola a todos, me encuentro con el siguiente problema:

Abro una operación sin stoploss y takeprofit:

Quiero cerrar este pedido

Me sale este error: OrderClose error 131

Si en lugar deOrderOpenPrice() apunto 0.1 o OrderLots() hay un error: OrderClose error 138

¿Cuál es el problema?

Cierras a un precio equivocado
 
Artyom Trishkin:
Estás cerrando a un precio equivocado

¿Puede ser más específico sobre lo que debería ser? Gracias

 
labvic:

¿Puede ser más específico sobre lo que debería ser? Gracias

Esto es lo básico.
La compra se abre en el Ask y se cierra en el Bid.
La venta se abre a la oferta y se cierra a la demanda
 

¡Buenas tardes!

He leído detenidamente el tutorial sobre los archivos de inclusión, y en ninguna parte dice que un archivo de inclusión no puede ser "incluido" dos veces en el EA.

Tengo el primero "disparado", el segundo (con el mismo nombre) se salta/ignora.

Lo que hago: hago una copia del archivo incluido, añado una letra/dígito al nombre del archivo y en la línea EA, y todo funciona.

Pregunta: ¿es el lenguaje mql4 o yo?

¡¡¡Gracias de antemano!!!

 
Roni Iron:

¡Buenas tardes!

He leído detenidamente el tutorial sobre los archivos de inclusión, y en ninguna parte dice que un archivo de inclusión no puede ser "incluido" dos veces en el EA.

Tengo el primero "disparado", el segundo (con el mismo nombre) se salta/ignora.

Lo que hago: hago una copia del archivo incluido, añado una letra/dígito al nombre del archivo y en la línea EA, y todo funciona.

Pregunta: ¿es el lenguaje mql4 o yo?

¡¡¡Gracias de antemano!!!

¿Por qué incluir lo mismo dos veces en el listado?

Si el archivo de inclusión tiene la función f(), al incluirla dos veces en su código, obtendrá un error de compilación sobre la función f() ya declarada

 
Artyom Trishkin:

¿Por qué incluiría lo mismo dos veces en su lista?

Si hay una función f() en el archivo de inclusión, al incluirla dos veces en su código se producirá un error de compilación sobre una función f() ya declarada

Si utilizo el archivo de inclusión no como una función definida por el usuario, sino como una "sustitución"/inserción de un simple fragmento de código, por ejemplo, para buscar la última orden por su símbolo (o la presencia de una orden en absoluto). Y esta búsqueda puede utilizarse en un programa varias veces. Y puede haber muchas de estas "operaciones clásicas".
 
Roni Iron:
Si utilizo el archivo de inclusión no como una función personalizada, sino como una "sustitución"/inserción de un simple fragmento de código, como la búsqueda de la última orden por mi símbolo (o la presencia de una orden en absoluto). Y esta búsqueda puede utilizarse en un programa varias veces. Y puede haber muchas de estas "operaciones clásicas".

Aquí es donde te confundes. Puede haber muchas funciones útiles de este tipo en un archivo de inclusión. Incluya el archivo una vez y utilice las funciones disponibles del archivo.

Razón de la queja: