Errores, fallos, preguntas - página 611

 
x100intraday:

Me da miedo imaginar cómo. En realidad, necesito una variante flexible, no necesito una cadena en forma inalterada, sino varias cadenas diferentes para formar, en un bucle... Si es posible, me gustaría ver un ejemplo más concreto...

...

También puede formar condiciones más complicadas en #define en una sola línea:

#define LOG(text,logs,html,type,spc,style)  if(type){if(logs){okLOG(text,spc);}if(html){okHTML(text,spc,style);}}  if(!type){if(logs){erLOG(text,spc);}if(html){erHTML(text,spc,style);}}

No sé cómo resolver tu problema, no lo he probado. Tendré que experimentar... ))

Tal vez usted puede formar varios #define como este y luego elegir lo que puede necesitar en un bucle.

Desde la cadena hasta el enum se puede preparar la función con el interruptor de antemano. Pero puede tener un número muy grande de opciones, aparentemente, este método tampoco funcionará...

¡Oh, aquí hay otra opción! Puede generar un archivo mqh, que está preconectado al archivo principal. Es decir, debe haber una función que acepte una cadena y luego genere un archivo mqh. El archivo se sobrescribirá todo el tiempo. Así es exactamente como funcionará)))

 

tol64, la opción #define me hace sudar frío... No discuto que probablemente pueda trabajar donde sea necesario, pero es en algún lugar de la Olimpiada de la programación utilizando formas no estándar - aunque sea para lograr el resultado a cualquier costo. Rechacé el método del interruptor por la misma razón que he descrito anteriormente: no quiero añadir grandes bloques de código adicionales para una tarea ideológicamente elemental. Me parece que debería haber una forma estándar bastante sencilla... De lo contrario, empiezo a sentirme como un pirata informático que intenta hackear el sistema y obtener el resultado deseado de forma sofisticada...

Hay una pregunta crucial en el aire: ¿es posible y cómo acceder elemento por elemento a la lista estándar de los mismos períodos de tiempo, a la lista de visibilidad de los objetos de tiempo y a las listas preparadas similares? Hasta ahora tengo que llenar manualmente el array por fuerza bruta y luego recuperar de ahí lo que necesito por índice:

ENUM_TIMEFRAMES TFsArr[3]={PERIOD_M15, PERIOD_M20, PERIOD_M30);
¡Cuánto tiempo más! ¿Tal vez puedas sacar estos elementos de la matriz/lista predefinida de una vez? Una cosa es que no tenga suficientes conocimientos... pero aún no he encontrado a nadie que acceda a recursos predefinidos en el código de otra persona sin rellenar antes el cojín con copias de plumas...
 
x100intraday:
¿Cómo puedo preparar de antemano una cadena con enumeración lógica(?) como: OBJ_PERIOD_M10| OBJ_PERIOD_H4, y luego simplemente sustituir en ObjectSetInteger () la variable lista en forma de cadena pegada? Intenté pegarlo simbólicamente y luego envolverlo en StringToInteger(), pero no funcionó... PorqueOBJ_PERIOD_... - es un elemento de tipo enum pero tiene el equivalente hexadecimal del tipo int? Entonces esta enumeración se parece más a una operación O a nivel de bits...
Podrías sumarlos, algo así:
ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,(int)OBJ_PERIOD_M10+(int)OBJ_PERIOD_H4);

...es decir, añadiendo los enums necesarios a la variable int.

 

Diferencias poco realistas:

En el servidor de AlpariFS GBPUSD 648, USDCHF 110

GBPUSD 168, USDCHF 185 en el servidor MQ-Demo

otros símbolos están dentro de la norma.

¿Es una peculiaridad del mercado delgado o un error en MetaTrader 5?

La libra parece haberse calmado ahora, pero los diferenciales de la canadiense y la australiana son de 88 y 61 respectivamente. El suizo sigue atascado con un spread de 185 pips.

void OnStart()
  {
   while(!IsStopped()){Comment(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));Sleep(100);}
   Comment("");
  }
 
Swan:
Puedes sumarlos, así es como funciona:

es decir, añadiendo los enums deseados a la variable int.

¿De dónde sacas los enums? Están como incrustados en el lenguaje como palabras/valores predefinidos (reservados). No quiero tener mi propia matriz de enums duplicados.
 
x100intraday:

¿Cómo puedo anteponer una cadena con enumeración lógica(?) como: OBJ_PERIOD_M10| OBJ_PERIOD_H4

Entonces, esta enumeración se parece más a una operación O a nivel de bits...

No lo parece. Es lo que es.

¿De dónde sacas los enums? Están como incrustados en el lenguaje en forma de palabras/valores predefinidos (reservados).

De los enums, por supuesto. Mira en la ayuda.

No quiero crear mi propia matriz de enums duplicados.

tendrás que tener algo al menos... enums, arrays, defines.

si no, no llegarás más lejos

 
sergeev:

No lo parece. Es lo que es.

de los enums, por supuesto. Mira en la ayuda.

Tendrás que hacer algo al respecto. Enums, arrays, defines.

No llegarás más lejos que eso.

Si quieres empezarlo, está bien, ya está hecho. Pero, ¿por qué no podemos acceder al repositorio de elementos de la lista incrustados en el lenguaje en forma de nombres y constantes predefinidos? En algún lugar los desarrolladores escondieron todas estas enumeraciones...
 
x100intraday:
¿De dónde sacas los enums? Están como incrustados en el lenguaje como palabras/valores predefinidos (reservados). No quiero crear mi propia matriz de enums duplicados.

no entienden la pregunta)

ENUMs = números enteros, sin matriz/lista predefinida.

 
Swan:

no entienden la pregunta)

ENUM_es = números enteros, sin matriz/lista predefinida.

ENUM_y = es un enum. Una lista predefinida.
 
x100intraday:
Pero, ¿por qué no podemos acceder a un repositorio de elementos de la lista incrustados en el lenguaje en forma de nombres y constantes predefinidos? ¿Dónde pusieron los desarrolladores todas estas enumeraciones...

¿Qué? Usas el mismo ENUM_TIMEFRAMES, ¿qué te parece?