¿Puede un EA monitorizar y operar con varios pares de divisas desde un mismo gráfico? - página 2

 
angevoyageur:

Si no quieres responder a su pregunta, no respondas, es simple. No es necesario ofender a la gente.

Y créeme, está disponible para mí también, si he publicado todo lo que quiero publicar, tengo 1000 puntos de calificación más, por lo menos.



si hubiera investigado y buscado en Code Base entonces habría encontrado por ejemplo https://www.mql5.com/en/code/11176

y se pueden encontrar más ejemplos de este tipo la forma en que está pidiendo ahora es mirar a mí y supongo que a los demás

que él no hace lo suficiente para aprender a codificar y quiere obtener de otros para codificar para él para obtener ejemplos de cómo hacer el comercio de un EA diferentes símbolos

sin hacer ningún intento de sí mismo ...

Como CodeMonkey escribió a xennon

'El problema aquí no es que no se pueda hacer, es que no te has molestado en intentar hacerlo. '

.

si xennon se pone a hacer estas respuestas que no le gustan entonces también es su forma de reaccionar de una manera equivocada

creo que entiendes la situación como yo la veo...

 
deVries:


si hubiera investigado y buscado en Code Base entonces hubiera encontrado por ejemplo https://www.mql5.com/en/code/11176

y se puede encontrar más ejemplos de este tipo la forma en que está pidiendo ahora está buscando a mí y supongo que a los demás

que no hace lo suficiente para aprender a codificar y quiere obtener de otros para codificar para él para obtener ejemplos de cómo hacer el comercio de un EA diferentes símbolos

sin hacer ningún intento de sí mismo ...

Como CodeMonkey escribió a xennon

'El problema aquí no es que no se pueda hacer, es que no te has molestado en intentar hacerlo. '

.

si xennon se pone a hacer estas respuestas que no le gustan entonces también es su forma de reaccionar de una manera equivocada

creo que entiendes la situación como yo la veo...

Por supuesto, estoy de acuerdo.

Pero también estoy de acuerdo en que si alguien contesta, no es necesario ofender al OP (ni a ningún otro usuario). Creo que este foro necesita un mejor ambiente.

 
deVries:

xennon: está registrado desde enero de 2012 y ahora viene aquí con esta pregunta?

me parece que es hora de que investigue leyendo y aprendiendo

si quiere hacer ese EA entonces tiene que venir con su intento si tiene problemas para hacerlo

es posible .... después de más de 2 años que sabe que ahora con seguridad


Sí, 2 años, ¿y qué? No significa que he sido activamente jugando en MQL lo hace? - de hecho mi experiencia colectiva con MQL es probablemente menos de un mes, TOTAL. Le sugiero que o bien aportar algo positivo y útil o xxxx. Qué declaración tan estúpida e idiota.
 
xennon:

Sí, 2 años, ¿y qué? No significa que he estado activamente jugando en MQL lo hace? - de hecho mi experiencia colectiva con MQL es probablemente menos de un mes, TOTAL. Le sugiero que o bien aportar algo positivo y útil o xxx. Qué declaración estúpida e idiota para hacer.

Ya te aconsejo que cuides tu lenguaje. Esta es mi última advertencia.

Gracias.

 
xennon:

Sí, 2 años, ¿y qué? No significa que he sido activamente jugando en MQL lo hace? - de hecho mi experiencia colectiva con MQL es probablemente menos de un mes, TOTAL. Le sugiero que o bien aportar algo positivo y útil o xxxx. Qué declaración tan estúpida e idiota.


el ejemplo de codebase que señalé ???? https://www.mql5.com/en/forum/149766/page2#915892

 
xennon:

Me pregunto si es posible tener un solo EA que se ejecute en cualquier par de divisas, pero que monitoree múltiples pares de divisas y responda a los desencadenantes que surjan en cada par.

Esencialmente quiero un EA que sondee todos los pares de interés, pruebe los criterios preconfigurados en cada uno y responda con compra/venta/cierre/alertas según sea necesario.

Sospecho que esto no se puede hacer, pero estaría interesado en escuchar si alguien tiene alguna idea de cómo lograr esto sin tener que abrir un montón de gráficos y aplicar el EA a cada gráfico por separado, principalmente en aras de la eficiencia (mejor tener 1 bloque de código en lugar de una docena?)


Gracias.


Yo apostaría por una matriz de cadenas para los símbolos y luego pasar por un bucle para todos los símbolos de interés

Algo así como

string nameArray[]={"EURUSD","...","USDJPY"};

entonces

for(x=numberOfSymbols;x>=0;x--)
   {
   string symbol=nameArray[x];
   CustomCondition(symbol)
   ....
   .....
//or something like that
 
xennon:

Me pregunto si es posible tener un solo EA que se ejecute en cualquier par de divisas, pero que monitoree múltiples pares de divisas y responda a los desencadenantes que surjan en cada par.

Esencialmente quiero un EA que sondee todos los pares de interés, pruebe los criterios preconfigurados en cada uno y responda con compra/venta/cierre/alertas según sea necesario.

Sospecho que esto no se puede hacer, pero estaría interesado en escuchar si alguien tiene alguna idea de cómo lograr esto sin tener que abrir un montón de gráficos y aplicar el EA a cada gráfico por separado, principalmente en aras de la eficiencia (mejor tener 1 bloque de código en lugar de una docena?)


Gracias.

Hola xennon,

La respuesta corta a tu pregunta es sí.

He pensado en hacer algo similar, pero no he llegado a codificar nada todavía, así que te daré el esquema básico de cómo estructuraría el código, pero no los detalles, ya que probablemente sería mejor si investigaras cómo codificar cada parte por ti mismo y te refirieras a la base de código y otras fuentes como ejemplos de codificación como un ejercicio de aprendizaje, ya que te ayudará más en la futura escritura de código que simplemente copiar el código de los ejemplos y pegar una solución sin entender realmente lo que está pasando y por qué, además de que ayudará en la depuración de errores de código. Aunque la base de código puede ser confusa si no estás familiarizado con la codificación, ya que alguna terminología puede ser difícil de seguir.

También como mi idea no ha sido probada o implementada todavía por lo que posiblemente hay mejores formas de codificarla o errores que no he previsto ya que no soy un maestro de la codificación ni mucho menos y estoy bastante oxidado en general por lo que si alguien tiene alguna sugerencia soy todo oídos y si hay errores por favor no me derriben.

La idea general es utilizar el evento del temporizador de milisegundos como el evento OnTick sólo funcionará para el gráfico que se adjunta a las garrapatas para otros pares de divisas no generará un evento de garrapatas y la EA no se ejecutará, pero el temporizador de eventos milisegundos puede desencadenar varias veces por segundo y controlar los cambios de precios. También utilice tres arrays, uno para almacenar las cadenas de los símbolos que desea utilizar y otro para almacenar los datos del precio.

Trataré de explicarlo un poco. El array nombreArray almacenará cada símbolo como un array pero lo más importante es que el elemento del array puede ser usado para establecer la posición para otros los otros dos arrays ya que no pueden usar una cadena para localizar una posición en un array pero el valor del índice sí. Como los ticks de cada símbolo se reciben en diferentes momentos, los datos escritos en el PriceArray no serán todos al mismo tiempo, ya que algunos símbolos están más activos en diferentes momentos, por lo que el segundo array almacena el índice del array PriceData para que pueda ser escrito rápidamente sin sobrescribir ningún dato de precios anteriores. La tercera matriz escribirá los datos de precios necesarios que usted requiera.

El código es una combinación de código e inglés con lo que hay que añadir. Es muy simple pero debería proporcionarle un punto de partida para su idea. Hay numerosas lagunas, como por ejemplo cuándo tratar las matrices cuando llegan al final, pero todo esto es parte de la curva de aprendizaje. Te sugiero que consigas que el código funcione con un símbolo y luego con dos, y así sucesivamente para que puedas eliminar y arreglar cualquier error en el código. Como he dicho, esto es sólo un borrador, así que utilícelo como tal y las mejoras son posibles, por ejemplo, puede utilizar un tipo de datos Struct o un objeto en lugar de las tres matrices para almacenar los datos de la garrapata, pero este diseño es un poco más simple para empezar y usted puede mirar a las estructuras y la programación orientada a objetos en una etapa posterior de la codificación.

He tratado de ser claro, pero esto puede ser muy confuso para usted, así que si usted tiene alguna otra pregunta sobre la claridad hágamelo saber y voy a ayudar en lo que pueda, pero por desgracia no tengo tiempo para codificar nada como esto.

Aquí está el pseudo código,

// OnInit ()
    {
     string nameArray[]={"EURUSD","...","USDJPY"};                         // As suggested by thrdel. Creates an array with currency pairs
     int TicksRecorded [#  of symbols monitored];                           // Records the required position in the PriceData array to write the next tick data to for each symbol
     double PriceData [#  of symbols monitored][Ticks][data to record];     // Stores price data for each symbol required for as many ticks as required

     Create the timer and set an appropriate interval
     Open a file to save data if required for future use
     
     for (x=0; x < #  of symboels; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {                                                               // Also adapted from thrdel's code example
            PriceData [x][0][0] = Ask;
            PriceData [x][0][0] = Bid;
            ... whatever else you want to record
           }

// EventSetMillisecondTimer()
    {
     Refresh all price data for all symbols
     for (x=0; x < #  of symbols; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {
            if ((current Ask != to previously recorded Ask for that x) or (current Bid != to previously recorded Bid for that x)... and every other price data you want)
                {
                 TicksRecorded [x]++;                                    // Increments the position in the PriceData array holding the latest tick data for that symbol
                 PriceData [x][TicksRecorded[x]][0] = Ask;
                 PriceData [x][TicksRecorded[x]][1] = Bid;
                 ... and whatever else you want to record
                 Flag to indicate a new tick has been received set to true
                }
            if (new data)
                {
                 Set new data flag to false
                 Do custom action
                }
           }
     }

// OnDeinit ()
     {
      Kill the timer
      Save data to a file if required
     }
 

Yo simplemente uso Variables Globales para permitir que mi ea monitoree/haga operaciones desde un gráfico.

Aunque usted tiene que hacer su ea un poco más robusto y no específica a un gráfico.

 

¿Por qué no funcionaría lo siguiente?


si (esto es cierto){

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,"",0,0,Red);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,",0,0,Green);

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,"",0,0,Green);

}


aparece un error 4106 símbolo desconocido

 
Daniel Laverdiere: ¿Por qué no funcionaría lo siguiente?

si (esto es cierto){

ticket=Enviar orden("GBPUSD",OP_SELL,lote,Oferta,0,0,0,"",0,0,Rojo);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,",0,0,Green);

ticket=OrderSend("USDJPY",OP_BUY,lot, Ask,0,0,"",0,0,Green);

}


aparece un error 4106 símbolo desconocido

  1. ¡Cuando publiques el código por favor usa el botón SRC !

  2. Si el patrón de nomenclatura de sus gráficos no es exactamente"BasQuo" entonces no puede funcionar.

  3. No opere con múltiples divisas en un EA.