Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 636

 

Línea de código:

int Dgt=MarketInfo(Symbol(),MODE_DIGITS);

Advertencia:

posible pérdida de datos debido a la conversión de tipo FinBuy1531.mq4 144 7

Creo que los tipos se corresponden entre sí. ¿Qué ocurre aquí?

 
hurkin:

Línea de código:

Advertencia:

posible pérdida de datos debido a la conversión de tipo FinBuy1531.mq4 144 7

Los tipos corresponden a mi opinión. ¿Qué pasa aquí?

No coincide, MarketInfo(...) devuelve el valor de tipodouble

algo así:

int Dgt=(int)MarketInfo(Symbol(),MODE_DIGITS);
 
r772ra:

No hay coincidencia, MarketInfo(...) devuelve un valor de tipodouble

así:

Ejemplo del directorio:

double vpoint =MarketInfo("EURUSD",MODE_POINT);
int vdigits =MarketInfo("EURUSD",MODE_DIGITS);
¿Algo más parece estar mal?

 
Shurkin:

Un ejemplo del directorio:

double vpoint =MarketInfo("EURUSD",MODE_POINT);
int vdigits =MarketInfo("EURUSD",MODE_DIGITS);
¿Algo más parece estar mal?

En el caso de "MODE_DIGITS", "MarketInfo" devuelve un valor de tipo "double". Aquí parece un error de implementación de "MarketInfo". Por lo tanto, la forma correcta sería:

int Dgt=(int)MarketInfo(Symbol(),MODE_DIGITS);
 

¡Toda la última pregunta!

HayOBJ_LABEL. en las descripciones de los objetos, hay texto (no nombre) y dígito, el dígito cambia con los ticks.

¿Cómo puedo sacar el número?

 
Top2n:

¡Toda la última pregunta!

Hay OBJ_LABEL. en las descripciones de los objetos, hay texto (no nombre) y dígito, el dígito cambia con los ticks.

¿Cómo puedo sacar el número?

StringFind le ayudará. Y allí int StrToInteger o long StringToInteger
 

Buenas tardes. Por favor, ayúdenme a resolver el problema.

He instalado la build 646 de MT4. He colocado en la carpeta ...\MetaTrader 4 Admiral Markets AS\MQL4\Indicators dos archivos - un archivo con el código del indicador LC-RSI_Histo3.mq4 y un archivo con el indicador compilado LC-RSI_Histo3.ex4. Ejecuto el indicador - funciona. Sin embargo, quiero cambiar el código fuente. Abro el editor de código incrustado. El problema es que después de cualquier cambio, incluso cosmético, en el código (por ejemplo, añadiendo un espacio) y su posterior compilación, el indicador después del arranque funciona incorrectamente - todas sus columnas muestran el mismo valor:

El archivo .ex4 compilado (adjunto con el nombre LC-RSI_Histo3_1.ex4) pesa mucho más que el original (copiado en la carpeta).

¿Cuál es la razón? ¿Cómo corregirlo?

Archivos adjuntos:
 

Hola a todos.

Ayúdame con este error: "No hay suficientes derechos" o "No hay suficientes derechos" código #7

Qué sucede: Un Asesor Experto en un par EURCHFX M1 no puede abrir una posición, aparece este error (encontrado en el diario), pero al mismo tiempo, se abre sin problemas en otros pares y EURCHF M5. Se abre a mano sin problemas. En otro corredor funciona. ¿Cuál es el problema?

Le agradezco de antemano su ayuda.

 
AlexeyVik:
StringFind es su guía. Y luego int StrToInteger o long StringToInteger


Esta función devuelve el número de posición en el marco temporal, no el número en sí.

int  StringFind(
   string  string_value,        // строка, в которой ищем
   string  match_substring,     // что ищем
   int     start_pos=0          // с какой позиции начинать поиск
   );

Digamos que tengo el número de posición, entonces, ¿cómo consigo esta posición?

 
Boeing747:

¿Alguien tiene un fragmento de código para un ejemplo en el que los elementos de una matriz de cadenas se agrupen en orden alfabético?

gracias de antemano.


   string w[]={"E","c","f","b","j","R","A","H","a","c"}; // массив для экзекуции
   int size=ArraySize(w);
   string abc[]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
   string ABC[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
   int c,e,i;

   for(i=0; i<26; i++)
     {
      for(e=c; e<size; e++)
        {
         if(ABC[i]==w[e])
           {
            w[e]=w[c];
            w[c]=ABC[i];
            c++;
           }
         else
           {
            if(abc[i]==w[e])
              {
               w[e]=w[c];
               w[c]=abc[i];
               c++;
              }
           }


        }
     }
   
   Alert(w[0],w[1],w[2],w[3],w[4],w[5],w[6],w[7],w[8],w[9]);

Otro ejemplo de tareas aplicadas

   string w[]={"EURUSD","USDCHF","BRNQ4","AUDUSD","GOLD","AUDCHF","NZDUSD","USDCAD","SILVER","GBPUSD"}; // массив для экзекуции
   int size=ArraySize(w);
   string f=" ";
   string ABC[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
   int c,e,i;

   for(i=0; i<26; i++)
     {
      for(e=c; e<size; e++)
        {
         f=w[e];
         if(ABC[i]==StringSubstr(f,0,1))
           {
            w[e]=w[c];
            w[c]=f;
            c++;
           }
        }
     }

   Alert(w[0],", ",w[1],", ",w[2],", ",w[3],", ",w[4],", ",w[5],", ",w[6],", ",w[7],", ",w[8],", ",w[9]);