Seleccione un símbolo en los ajustes - página 3

 
Alexey Viktorov:

Llenar un array de caracteres y trabajar con el array.

Hay un EA gratuito que utiliza el código anterior ***


ps; drubashka, deberías haber eliminado el enlace. Entre mis productos en el mercado, sólo DOS son de pago. Uno de 2017 ha sido alquilado 4 veces, y el otro de 2014 por 10 libras no ha sido comprado ni una sola vez. Así que aquí no hay que esperar publicidad.

No sé por qué me uní a este hilo - ahora estoy luchando, y no funciona. Todavía estoy buscando una manera de hacer que funcione.

No sé, tal vez esto funcione.

struct translate{
   string EURUSD;
   string GBPUSD;
   string USDCHF;
   string USDJPY;
   string USDCAD;
   string AUDUSD;
   string AUDNZD;
   string AUDCAD;
   string AUDCHF;
   string AUDJPY;
   string CHFJPY;
   string EURGBP;
   string EURAUD;
   string EURCHF;
   string EURJPY;
   string EURNZD;
   string EURCAD;
   string GBPCHF;
   string GBPJPY;
   string CADCHF;
};
translate langs;
 
Aleksandr Klapatyuk:

Gracias por responder, no sé por qué he llegado a este hilo, ahora estoy luchando y no consigo que funcione.

No sé, tal vez esto funcione.

Estás perdiendo el tiempo. No podrá rellenar la estructura o el enum mediante programación. Y la matriz sólo se puede utilizar para un EA multidivisa. El EA multidivisa no es el que se puede poner en cualquier símbolo, sino el que puede operar con varios símbolos estando en uno de los gráficos. En ese enlace puedes ver un ejemplo de este tipo de EA multidivisa. La selección de las monedas puede establecerse en una de las tres opciones:

  1. sólo se negociará el par en el que se encuentra el Asesor Experto
  2. una lista separada por comas de las monedas que se negociarán
  3. todos los pares abiertos en el momento de lanzar el Asesor Experto se negocian
Pero las opciones se seleccionan a través de enum
 
Alexey Viktorov:

No deberías hacer esto. Ni la estructura ni el enum se pueden rellenar mediante programación. Y la matriz sólo se puede utilizar para un EA multidivisa. El EA multidivisa no es el que se puede ajustar a cualquier símbolo, sino el que está en uno de los gráficos y puede operar con varios símbolos. En este enlace hay un ejemplo de este tipo de EA multidivisa. La selección de las monedas puede establecerse en una de las tres opciones:

  1. sólo el par en el que se negocia el Asesor Experto
  2. una lista separada por comas de las monedas que se negociarán
  3. todos los pares de divisas abiertos en el momento de lanzar el Asesor Experto se negocian
Pero las opciones se seleccionan a través de enum

¡Gracias! He empezado a hacer algo que no puedo pagar. Prefiero aprender algo más fácil.

Ya lo he hecho antes y todo ha funcionado.

string         Symb[3]={"EURUSD","GBPUSD","EURJPY"};
double         prPos[3];
------------------------------------------------------------
   for(int i=0;i<3; i++)
      if(PositionSelect(Symb[i]))
        {
         prPos[i]=(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n;
        }
      else
        {
         prPos[i]=0;
        }
 
Aleksandr Klapatyuk:

¡Gracias! Estoy haciendo algo que no sé hacer. Prefiero aprender algo más fácil.

Así es como lo hice - todo funcionó.

Esta es la segunda opción que he descrito. Opere con divisas de la lista preparada en una línea separada por comas. Pero mi versión es un poco diferente. La lista tiene el siguiente aspecto

"EURUSD,GBPUSD,EURJPY"

entonces el array se llena de esta lista y se trabaja con el array. Además, el sufijo de la moneda se define y se une automáticamente alrellenar la matriz. Esto es para evitar tener que volver a escribir la lista en diferentes cuentas.

 
Alexey Viktorov:

No estamos hablando de lo mismo.

simv

syTotal = SymbolsTotal(true) parece ser siempre 1, porque si es true, SymbolTotal() no mostrará el número de símbolos en Market Watch, sino el número de símbolos seleccionados en Market Watch y esto plantea la cuestión de cómo recorrer la lista antes de seleccionar el siguiente elemento.

 
andre:


syTotal = SymbolsTotal(true) parece ser siempre 1 porque si es true SymbolTotal() no da el número de símbolos en Market Watch, sino el número de símbolos seleccionados en él y esto plantea la cuestión de cómo recorrer la lista antes de seleccionar el siguiente elemento.

En el probador, sí, siempre hay un símbolo. Por eso hay una advertencia en la descripción del EA, que en el probador sólo se puede probar en un símbolo o en una lista de símbolos.

 
Desgraciadamente, para hacerlo bonito, tienes que dibujar tú mismo el panel de entrada, implementar una lista desplegable, en general, nada fundamentalmente complicado, pero sí turbio. Si la religión y/o el cliente lo permiten, entonces es más fácil implementarlo en Sharp, a través de windowsform. En cuanto a la posibilidad técnica de hacerlo en el panel estándar, no veo ningún problema en principio, es más una cuestión de deseo de los creadores. Es posible implementar el proporcionar la selección de valores, para el compilador sólo debemos introducir palabras clave adicionales, para escribir como: __declsymb input string value=__default(o __pos1), en general los desarrolladores del compilador/terminal tienen que desarrollarlo.
 
Vladimir Simakov:
Desgraciadamente, para hacerlo bonito, tienes que dibujar tú mismo el panel de entrada, implementar una lista desplegable, en general, nada fundamentalmente complicado, pero sí turbio. Si la religión y/o el cliente lo permiten, entonces es más fácil implementarlo en Sharp, a través de windowsform. En cuanto a la posibilidad técnica de hacerlo en el panel estándar, no veo ningún problema en principio, es más una cuestión de deseo de los creadores. Es posible implementar el proporcionar la selección de valores, para el compilador sólo debemos introducir palabras clave adicionales para escribir como: __declsymb input string value=__default(o __pos1), en general los desarrolladores del compilador/terminal tienen que desarrollarlo.

Pues sí. Si usas dll, puedes jugar a los tanques en la terminal. Pero el problema se planteó sin tener en cuenta las capacidades de dll

 
Alexey Viktorov:

Pues sí. Si utilizas la dll, también puedes jugar a los tanques en el terminal. Pero el problema se planteó sin tener en cuenta las capacidades de la dll

Entonces, reza a los creadores o escribe tu propio panel de entrada. En el inicio del robot (más complicado con el indicador) en OnTimer() se inicia el panel de entrada auto-escrito, los datos de entrada, entonces el robot ha ido a trabajar. Es así.
 
Vladimir Simakov:
Entonces, reza a los creadores o escribe tu propio panel de entrada. Cuando el robot arranca (más complicado con el indicador) se lanza el panel de entrada auto-escrito en OnTimer(), se introducen los datos, entonces el robot comienza a trabajar. Es así.

Primero hay que preguntarse: "¿Quién lo necesita?".

Me gustaría probarlo pero no ha funcionado, le he dicho al Expert Advisor que no se puede hacer con MQL. Pero nadie le preguntó cómo hacerlo con otros medios. ¿Qué sentido tienen todas estas tonterías? Hay suficientes personas aquí que pueden dibujar caricaturas en el gráfico de la terminal.