Bibliotecas: MT4Orders - página 34

 

Resuelto.

int i; // no funciona

int i=0; // todo funciona

 
Vladislav Andruschenko:

una cosa interesante que noté

Escribe una fuente corta para reproducir esta característica. Entonces será posible actuar sin adivinar.


La selección por ticket funciona

#include <MT4Orders.mqh>

void OnStart()
{
  TICKET_TYPE Tickets[];
  
  const int Size = ArrayResize(Tickets, OrdersHistoryTotal());
  
  for (int i = 0; i < Size; i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
      Tickets[i] = OrderTicket(); // Memorización de billetes
      
  for (int i = 0; i < Size; i++)
    if (OrderSelect(Tickets[i], SELECT_BY_TICKET)) // Elegido por billete
      OrderPrint();
}
 
fxsaber:

Escribe una breve fuente para jugar a esta función. Entonces será posible actuar sin adivinar.


Funcionamiento de la selección de entradas


Probablemente la culpa (para mí) la tiene la inicialización de variables.

Analizando más a fondo.

 
Andrey Khatimlianskii:

Desenterrado en nuestra correspondencia:

En esta tarea.

Un ejemplo de una tarea con una orden pendiente: el nivel de establecimiento de una orden se calcula basándose en el historial de precios, pero se ajusta basándose en la naturaleza del movimiento de los ticks. Después de que la orden se activa y la operación se cierra, el EA no debe colocar una orden basada en el mismo nivel de precio (pero se puede ajustar en ese momento por un valor diferente). Yo almaceno esta información (el nivel al que se refiere la orden) en la variable principal vinculada a la entrada. Por supuesto, se puede escribir en un comentario, pero no siempre es conveniente y fiable.

Lo lógico es enlazar con OrderTicketOpen. Entonces tenemos que hacer SELECT_BY_TICKET para TicketOpen-transacción, que no tenemos ahora. Bueno, y añadir SELECT_BY_TICKET para TicketOpen orden.

Está claro que puede haber varios ENTRY_OUT-deals para ambas variantes de TicketOpen, pero sólo uno debe ser seleccionado. Sin embargo, para este tipo de tareas contables esta ambigüedad no es un obstáculo.

Buena observación, gracias. No había pensado en tal disposición.

 

es interesante que en los informes de mt5 todo se cuenta de forma diferente que en los informes de mt4.


en mt4 - la ordenación va por hora de cierre, y si la hora de cierre de una operación es la misma, se cuenta por ticket.


entonces en mt5 es diferente, en mt5 la ordenación en los informes va por la hora de apertura de las operaciones.

inconveniente.



@fxsaber ¿Cómo has implementado la ordenación? como en mt4 por hora de cierre? o como en mt5 por número de ticket (hora de apertura)?

 
Vladislav Andruschenko:

es interesante que en los informes de mt5 todo se cuenta de forma diferente que en los informes de mt4.

En mt4 - la clasificación se realiza por hora de cierre, y si la horade cierre de una operación es la misma, se cuenta por ticket.

hora de apertura de las operaciones.

inconveniente.

Y no lo es.

@fxsaber ¿Cómo se ha implementado la clasificación? como en mt4 por hora de cierre? o por número de ticket (hora de apertura)?

En MT5 la ordenación por hora de cierre - así es como la propia MT5 pone sus registros en el historial.

 
fxsaber:

No loes.

Y no lo es.

MT5 ordena por hora de cierre - así es como el propio MT5 pone sus registros en el historial.


Estoy usando el informe descargado de mt4.

Cuando estaba haciendo un indicador de estadísticas, mis cifras no coincidían con el informe de mt4.

Descubrí por experiencia que para que todas las cifras sean idénticas, todas las posiciones deben ser ordenadas por hora de cierre (y si la hora es la misma, ordenamos estas posiciones por operaciones).

segun este principio todas las cifras de estadisticas de mi informe y del informe de mt4 son identicas.

En el caso de mt5 - no cambie nada en mis calculos, solo aplique tu libreria. y encontre que la ordenacion en mt5 al subir el informe - ordenacion por hora de apertura.

No, lo hice. SELECT_BY_TICKET no funciona correctamente por alguna razón.

 
Vladislav Andruschenko:


Me guío por el informe descargado de mt4.

Cuando hice el indicador de estadísticas, mis cifras no coinciden con el informe de mt4.

Descubrí por experiencia que para que todas las cifras sean idénticas, es necesario ordenar todas las posiciones por hora de cierre (y si la hora es la misma, ordenamos estas posiciones por operaciones).

De acuerdo con este principio, todas las cifras de las estadísticas de mi informe y el informe de mt4 son idénticas.

En el caso de mt5 - no cambie nada en mis calculos sino que solo aplique tu libreria. y descubri que la ordenacion en mt5 al cargar el informe es la ordenacion por hora de apertura.

No, lo hice. SELECT_BY_TICKET no funciona correctamente por alguna razón.

lo que funciona perfectamente en mt4 no funciona perfectamente en mt5.

 
Vladislav Andruschenko:


Me guío por el informe descargado de mt4.

Cuando hice el indicador de estadísticas, mis cifras no coinciden con el informe de mt4.

Descubrí por experiencia que para que todas las cifras sean idénticas, es necesario ordenar todas las posiciones por hora de cierre (y si la hora es la misma, ordenamos estas posiciones por operaciones).

De acuerdo con este principio, todas las cifras de las estadísticas de mi informe y el informe de mt4 son idénticas.

En el caso de mt5 - no he cambiado nada en mis cálculos, pero sólo se aplica su biblioteca. y encontró que la clasificación en mt5 al cargar el informe - la clasificación por hora de apertura.

Realizar

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.

Bibliotecas: Informe

fxsaber, 2018.12.11 12:28 pm.

Para entender inmediatamente cómo se ve el informe, basta con ejecutar este script en su cuenta

#define  REPORT_BROWSER      // Crear un informe con el inicio del navegador - requiere permiso DLL.
#include <Report.mqh> // https://www.mql5.com/es/code/18801

void OnStart()
{
  REPORT::ToFile(); // Crear y abrir el informe en el navegador.
}

y no, lo he cambiado, SELECT_BY_TICKET no funciona correctamente por alguna razón

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.

Bibliotecas: MT4Orders

fxsaber, 2019.03.11 21:40

La selección de tickets funciona

#include <MT4Orders.mqh>

void OnStart()
{
  TICKET_TYPE Tickets[];
  
  const int Size = ArrayResize(Tickets, OrdersHistoryTotal());
  
  for (int i = 0; i < Size; i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
      Tickets[i] = OrderTicket(); // Memorización de billetes
      
  for (int i = 0; i < Size; i++)
    if (OrderSelect(Tickets[i], SELECT_BY_TICKET)) // Elegido por billete
      OrderPrint();
}
 
Vladislav Andruschenko:

lo que funciona perfectamente en mt4 no funciona perfectamente en mt5.

Desafortunadamente, sin el código tales declaraciones no causarán ninguna discusión constructiva.