asesor experto - preguntas varias - página 17

 

#Cálculos de pedidos y actualizaciones de la información de la cuenta- Abierto

( Una vez que pregunté - pero todavía necesito ayuda )

Llamo a mis funciones de cálculo por el OnTick() o Start(), y dependen de los Ticks del símbolo del gráfico.
Y he empezado a investigar cómo puedo hacer las actualizaciones de cálculo de mi EA no depende de los Ticks y los Símbolos ( / Chart - Ticks, Symbols ).
Sólo estoy tratando de hacer 'Todos los cálculos de las órdenes y la información de la cuenta' se actualizala sincronización ( / tiempo real) con 'Terminal> Comercio'.

Por favor, ayúdeme, gracias.
Gracias de antemano.

 
Documentation on MQL5: Language Basics / Functions / Event Handling Functions
Documentation on MQL5: Language Basics / Functions / Event Handling Functions
  • www.mql5.com
Language Basics / Functions / Event Handling Functions - Reference on algorithmic/automated trading language for MetaTrader 5
 
Marco vd Heijden:

Y SymbolName(x,1);

Buen comentario, el cual me ayudó, muchas gracias.
Ahora, estoy usando OnTick() y OnTimer(), ambas funciones funcionan bien para mí. ( Es la primera vez que uso OnTimer() para EA's )

---

También me gustaría probar Ticks. Sólo necesito los Ticks de los símbolos ( Pares ) en 'Terminal > Trade' y el símbolo del gráfico actual. ¿Esta SymbolName() podría ayudarme?
Por favor, ayúdeme o aconséjeme, ¿cómo puedo hacerlo?

Todo lo mejor.

 
   for(int i=0;i<SymbolsTotal(1);i++)
     {
      Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
     }
 
Marco vd Heijden:
   for(int i=0;i<SymbolsTotal(1);i++)
     {
      Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
     }

Increíble ejemplo y comentario realmente útil para mí, muchas gracias hombre.

¿Es posible que los Ticks provengan de los Pares / Símbolos comerciales, por favor?
Porque casi todo el tiempo mi Market Watch muestra todos los símbolos - especialmente busco nuevos y buenos Pares para las Operaciones y esa es la única razón por la que estoy investigando algunas formas de cómo puedo obtener ' Terminal > Comercio ' símbolos / pares, sólo la apertura de las operaciones de garrapatas.

Muchas gracias de antemano.

 
No, pero puedes actualizar el precio en la función OnTimer() con un valor bajo, por ejemplo, 250 milisegundos será igual a 4 ticks por segundo, así que ¿por qué lo necesitas?
 
Marco vd Heijden:
no, pero puedes actualizar el precio en la función OnTimer() con un valor bajo, por ejemplo, 250 milisegundos será igual a 4 ticks por segundo, así que ¿por qué lo necesitas?

Gracias por su comentario.

( subtema -#Cálculos de órdenes y actualizaciones de la información de la cuenta - Abierto) Como he mencionado que uso los cálculos de beneficios de las órdenes y que no se está ejecutando la sincronización con ' Terminal > Comercio ', que es la única razón.
Por lo tanto, a veces la volatilidad muy baja, Ticks viene menos cantidades, y creo que las funciones podrían estar ejecutando 4 veces en un segundo, por lo que correr para nada ( / vano ).

Si no puedo encontrar la manera que me puede dar ' Terminal > Comercio ' garrapatas para órdenes cálculos de ganancias y cuenta info ( / actualizaciones ) sincronización. Utilizaré sus métodos muy útiles - que me mostró que las formas en sus últimos comentarios, muchas gracias. ( Ya he probado y esa manera me funciona )

Gracias de antemano.

 

Bueno, si su realmente en él se puede utilizar:

struct MqlTick
  {
   datetime     time;          // Time of the last prices update
   double       bid;           // Current Bid price
   double       ask;           // Current Ask price
   double       last;          // Price of the last deal (Last)
   ulong        volume;        // Volume for the current Last price
   long         time_msc;      // Time of a price last update in milliseconds
   uint         flags          // Tick flags
  };

La estructura para devolver los precios actuales (MqlTick)

Esta es una estructura para almacenar los últimos precios del símbolo. Está diseñada para obtener rápidamente la información más solicitada sobre los precios actuales.

La variable de tipo MqlTick permite obtener los valores de Ask, Bid, Last y Volume en una sola llamada a la función SymbolInfoTick().

Los parámetros de cada tick se rellenan independientemente de si hay cambios respecto al tick anterior. Así, es posible averiguar un precio correcto para cualquier momento del pasado sin necesidad de buscar valores anteriores en el historial de ticks. Por ejemplo, aunque sólo cambie el precio de la oferta durante la llegada de un tic, la estructura sigue conteniendo también otros parámetros, como el precio de la demanda anterior, el volumen, etc.

Puede analizar las banderas de los ticks para saber qué datos se han modificado exactamente:

  • TICK_FLAG_BID - el tick ha cambiado un precio de Oferta
  • TICK_FLAG_ASK - un tick ha cambiado un precio Ask
  • TICK_FLAG_LAST - un tick ha cambiado el precio de la última operación
  • TICK_FLAG_VOLUME - un tick ha cambiado un volumen
  • TICK_FLAG_BUY - un tick es el resultado de una operación de compra
  • TICK_FLAG_SELL - un tick es el resultado de una operación de venta

Ejemplo:

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

Véase también

https://www.mql5.com/en/docs/constants/structures/mqltick

Estructuras y Clases, CopyTicks(), SymbolInfoTick()

Así que puedes usarlo para comprobar si hay un nuevo tick para un símbolo específico, pero esto será en realidad un paso más que leer directamente los niveles de precios, así que una vez más, ¿por qué lo necesitas?

Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Price Data Structure
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Price Data Structure
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Price Data Structure - Reference on algorithmic/automated trading language for MetaTrader 5
 

Marco vd Heijden:

Bueno, si su realmente en él se puede utilizar: ...
Así que u puede utilizarlo para comprobar si había una nueva garrapata para un símbolo específico, pero esto será en realidad un paso más entonces directamente la lectura de los niveles de precios directamente así que una vez más, ¿por qué lo necesita.

Gracias por su comentario informativo, muy apreciado.

---

Si estoy en lo cierto esta parte de la frase es una pregunta.

... por qué lo necesitaría.
Sólo
hay una razón, estoy tratando de evitar que los bucles de la función irrelevante / se ejecuta.

( Me gustaría mencionar que hoy mientras estaba probando el cálculo de las órdenes de ganancias de mi EA, el cálculo se actualiza continuamente ( / bucles para nada ) Lo estaba probando en el gráfico EURUSD, y mientras estaba probando, vi un volumen muy bajo casi 20 ( no más ) por minuto.
Y mientras estaba probando, una vez más estaba seguro, pude encontrar una manera que me dará sólo 'Terminal > Trade' Ticks. Me gustaría decir una vez más, no hay ninguna razón.
Sólo sé que las formas que me pueden dar ticks OnTick() sólo ticks podrían venir de Chart Symbol. Y otros OnTimer() podría darme 4 ticks por segundo... y así sucesivamente, lo cual aprendí de sus muy útiles y grandes comentarios, una vez más muchas gracias por eso. )

Y tengo que describir mi situación.

Mi Cálculo de Ganancias de Órdenes podría ser sincronizado con el panel de Comercio de la Terminal mientras mi EA está corriendo en el símbolo del gráfico que uno ( por ejemplo: EURUSD ) si el símbolo del gráfico es igual al Símbolo de la Orden, pero si abro una nueva posición para GBPUSD y luego la sincronización se interrumpirá con el panel de Comercio de la Terminal.
Y si tengo órdenes para EURUSD, pero trato de buscar nuevos pares buenos para el comercio en otro símbolo gráfico ( por ejemplo: GBPUSD, NZDUSD y así sucesivamente. ) Órdenes de cálculo de beneficios no se sincroniza con el panel de 'Terminal > Comercio'.
( No olvide que ya conozco OnTimer(), que me ayudó como puedo usarlo para 4 ticks por segundo. )

Toda esa preocupación viene de aquí.

Hoy en día, abro posiciones para plazos cortos, si abro posiciones para plazos largos, no voy a dar atención a esa sincronización con el Comercio de la Terminal.

---

Espero que me entiendas ahora más claramente.

Todo lo mejor.

 

Bueno, si realmente quieres esperar por cada tick tendrás que escribir un EA separado para cada símbolo y usar la función OnTick().

Pero te puedo decir que también programo microcontroladores y están en un bucle while interminable (para siempre) hasta que se produce un fallo de alimentación, o una interrupción.

Para comprobar si una condición es verdadera o falsa, utiliza el tipo de datos booleano más pequeño y su procesador ya hace eso millones si no miles de millones de veces por segundo con todos los procesos que se ejecutan en segundo plano y los gráficos, etc.

Es cuando empiezas a hacer cálculos pesados que implican tipos de datos más grandes, que esto se convierte en un problema.

Razón de la queja: