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

 

Prueba a hacerlo así, por ejemplo.

En lugar de

if(!DatabaseExecute(db, "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1,'Paul',a,'California',Mass[0]); "
                       "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2,'Allen',25,'Texas',Mass[1]); "
                       "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3,'Teddy',a,'Norway',Mass[2]);"
                       "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4,'Mark',25,'Rich-Mond',65000.00);"))

escriba

if(!DatabaseExecute(db, "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1,'Paul',a,'California'," + DoubleToString(Mass[0]) + "); "
                       "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2,'Allen',25,'Texas'," + DoubleToString(Mass[1]) + "); "
                       "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3,'Teddy',a,'Norway'," + DoubleToString(Mass[2]) + ");"
                       "INSERT INTO COMPANY_2 (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4,'Mark',25,'Rich-Mond',65000.00);"))

Esta no es la única manera.

 
Yuriy Bykov #:

Prueba a hacerlo así, por ejemplo.

En lugar de

escriba

No es la única manera.

¡Gracias! Funciona. ¿Dónde puedo leer sobre ello? ¿Y otras formas?

 
lego9955 cree un personaje personalizado.

Necesito cambiarlo para que cree no solo un personaje, sino varios personajes que se escriben en el script.

Por ejemplo, tres AB AC AD, en el futuro cualquier número de este principio.

Ciclo con la sustitución del siguiente nombre de símbolo de la lista cada vez.

Algo así como:

string sNames = "AB,AC,AD";
string aNames[];

void OnStart()

  {
   int i;
   bool ch=true;

   if(StringSplit(sNames,StringGetCharacter(",",0),aNames) <= 0)return;

   ResetLastError();
   for(i=0; i<ArraySize(aNames); i++)
      {
       ch=ch && CustomSymbolCreate(aNames[i]);
       if(!ch)
         {
          PrintFormat("Symbol '%s' : error %d",aNames[i],GetLastError());
          break; // При первой ошибке выходим
         }
      }
   if(!ch)return;
   ...
  } 
 

Ya hice esto antes, pensé que lo había hecho y borré mi mensaje.

void OnStart()
{
string arr[]= { "AB", "AC", "AD" };

  for(int i=0; i<ArraySize(arr); i++)

  {
   bool ch =CustomSymbolCreate(arr[i]);
   SymbolSelect(arr[i],true); 
  }  
}

Cuando actualicé la página vi que habías respondido. Sí, el tratamiento de errores es más correcto. Gracias.

 
lego9955 tratamiento de errores es más correcto. Gracias.
ArraySize(arr)

Sería más correcto definir en ushort fuera del bucle

 
lynxntech #:

sería más correcto definir en uint fuera del bucle

A menudo hago esto, pero aún quiero creer que el compilador puede optimizar cosas tan estándar.

 

El robot tiene dos filtros: Estocástico y RSI, cada uno con un conjunto de parámetros. Sólo debe utilizarse un filtro. Es decir, si estocástico está activado, RSI debe estar desactivado y viceversa.

Ahora he hecho esto:

  • Hice variables de entrada para Estocástico y RSI, activando y desactivando su trabajo.
  • En el bloque OnInit compruebo, si Estocástico y RSI están activados al mismo tiempo, el error INIT_PARAMETERS_INCORRECT.
  • En el bloque OnInit compruebo si Stochastic está desactivado, entonces todos sus parámetros deben ser cero, en caso contrario el error INIT_PARAMETERS_INCORRECT/ Análogamente con RSI.

Objetivo:

  • No perder tiempo al optimizar para opciones incompatibles. Por ejemplo, para que si se selecciona RSI, no se busquen los parámetros de Stochastic (tamaño de las zonas de sobrecompra/sobreventa, periodos K, D, desaceleración, método de suavizado, precio).
  • Resulta que mi opción no funciona. Durante la optimización, estas variantes parecen estar sobreoptimizadas de todos modos, lo que afecta al resultado final de la optimización.

Por favor, indíqueme cómo hacer que el optimizador no busque parámetros estocásticos cuando RSI está activado y viceversa.

 
lego9955 tratamiento de errores es más correcto. Gracias.

Por si acaso, es más fácil escribirlos en una línea, como he mostrado, que un array de líneas separadas.

 
Alexey Petrov #:

Hola,

Intenta buscar en el mercado soluciones ya preparadas - https://www.mql5.com/fr/search#!keyword=money%20management&module=mql5_module_market

También puedes encargar una solución personalizada a Freelance - https://www.mql5.com/fr/job

Hola y gracias por su respuesta. He sido capaz de crear un script que cumple con mis expectativas, pero por desgracia todavía hay dos errores que no puedo entender o corregir. ¿Sabría usted a quién contactar para un poco de ayuda? Son sólo dos líneas de código que se registran como errores después de la compilación...
 
Feliz Año Nuevo ¿Qué ventanas es mejor para MT5 10 o 11? Sentado en AMD 5900X portátil
Razón de la queja: