Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 284

 
barabashkakvn:
¿El número de secuencia en "Market Watch" o el precio actual?

El número de secuencia en Market Watch.

Entiendo cómo obtener una descripción de cadena de un símbolo con SymbolInfoString, pero no puedo encontrar el número en cualquier lugar (:

 
Crucian:

Un número de serie en la revisión del mercado.

En primer lugar

int  SymbolsTotal(
   bool  selected      // true – только символы в MarketWatch
   );

entonces

string  SymbolName(
   int   pos,          // номер в списке
   bool  selected      // true – только символы в MarketWatch
   );

y una vez que SymbolName==Su símbolo, sabrá su pos.

 
barabashkakvn:

En primer lugar

entonces

y una vez que SymbolName==Su símbolo, sabrá su pos.

Gracias.

Pero por alguna razón no funciona, pos siempre = 0. Tal vez esté haciendo algo mal, lo descubriré por la mañana :).

 
Crucian:

Gracias.

Pero por alguna razón no funciona, ros siempre = 0. Tal vez esté haciendo algo mal, lo descubriré por la mañana :).

En SymbolName se pasa pos y se comprueba la salida del parámetro encadenado.
 
Crucian:

Gracias.

Pero por alguna razón no funciona, ros siempre = 0. Tal vez esté haciendo algo mal, lo descubriré por la mañana :).

//+------------------------------------------------------------------+
   int PositionsSymbolInList(string sy) {
      for(int i=0; i<SymbolsTotal(false); i++) {
         string symbol_name=SymbolName(i,false);
         if(sy==symbol_name) return i;
         }
      return -1;
   }
//+------------------------------------------------------------------+
 
Crucian:

Gracias.

Pero por alguna razón no funciona, ros siempre = 0. Tal vez esté haciendo algo mal, lo descubriré por la mañana :).

//+------------------------------------------------------------------+
int IndexSymbolInMarketWatch(string sy)
  {
   for(int i=SymbolsTotal(true)-1; i>=0; i--)
     {
      if(SymbolName(i,true)==sy)
         return (i);
     }
   return (-1);
  }
//+------------------------------------------------------------------+
 
artmedia70:

Gracias su código funciona, pero el código paladin800 no (.

Pero, no hay una secuencia en los números. Por ejemplo, EUR=21, GBP=28, CHF=36, JPY=40, EUR/JPY=16. ¿Debería ser así?

 
Crucian:

Gracias tu código funciona, pero el código paladin800 no lo hace por alguna razón (.

Pero, no hay una secuencia en los números. Por ejemplo, EUR=21, GBP=28, CHF=36, JPY=40, EUR/JPY=16. ¿Se supone que debe ser así?

SymbolsTotal(false)

Se trata de una búsqueda en la lista de símbolos disponibles, si es verdadera, entonces sólo los seleccionados en Market Watch.

El orden en que se colocan en la lista de símbolos disponibles es el orden en que se devuelven los índices. Mientras que, si se toma de la lista en MarketWatch (si es cierto), entonces los índices dependen de la ordenación de los símbolos (se pueden arrastrar y soltar con el ratón) en Market Watch, lo que no siempre es conveniente - hay dependencia de las "plumas traviesas del usuario".

 

Una pregunta más.

Al compilar MetaEditor, comenzó a mostrar una advertencia:

El valor de retorno de'OrderSend' debe ser comprobado Bollinger_Bands_strategy_4.mq5 690 7

Compruebo el resultado después de enviar la solicitud:

           OrderSend(mrequest,mresult);
            if(mresult.retcode==10009 || mresult.retcode==10008)
              { 
             
               Print("Set pending order SellStop"  );
               ModificationPosition=0;
            }else
              {
               Print(ResultRetcodeDescription(mresult.retcode));
               return;
              }

¿O no es suficiente? ¿Qué quiere MetaEditor?

 
Crucian:

Una pregunta más.

Al compilar MetaEditor ha comenzado a mostrar una advertencia:

El valor de retorno de 'OrderSend' debe ser comprobado Bollinger_Bands_strategy_4.mq5 690 7
(Hay que comprobar el valor de retorno de "OrderSend")

Compruebo el resultado después de enviar una consulta:

¿O no es suficiente? ¿Qué quiere MetaEditor?

if(OrderSend(...))

O

bool res=OrderSend(...);

No, mi error. Ya estoy dormido. Ese soy yo por costumbre de mis funciones de clases... Aunque es para mql4, como en Five - dunno... :)

int ticket=OrderSend()