Errores, fallos, preguntas - página 2138

 

Creo que hay un problema con la carga del historial.

Ayer esperé unos 30 minutos, luego cambié de cuenta y hoy he decidido volver a comprobarlo:


  1. Abro una cuenta en rublos RUR
  2. en el probador estoy ejecutando una prueba en EURUSD
  3. El terminal está intentando cargar las cotizaciones de EURRUR
  4. No hay citas, el probador se congeló



Me esforcé de alguna manera, entonces decidí descargar el historial, que no existe

2018.02.21 15:58:48.244 Tester  EURRUR: history data begins from 2018.02.21 00:00
2018.02.21 15:58:48.344 Tester  USDRUR: preliminary downloading of M1 history started
2018.02.21 15:58:49.244 Tester  USDRUR: 20% history downloaded
2018.02.21 15:58:49.544 Tester  USDRUR: 30% history downloaded
2018.02.21 15:58:49.844 Tester  USDRUR: 40% history downloaded
2018.02.21 15:58:50.144 Tester  USDRUR: 51% history downloaded
2018.02.21 15:58:50.444 Tester  USDRUR: 61% history downloaded
2018.02.21 15:58:50.657 Tester  USDRUR: 71% history downloaded
2018.02.21 15:58:51.057 Tester  USDRUR: 81% history downloaded
2018.02.21 15:58:51.357 Tester  USDRUR: 91% history downloaded
2018.02.21 15:58:51.657 Tester  USDRUR: preliminary downloading of M1 history completed in 0:03.417
2018.02.21 15:58:51.657 Tester  USDRUR: history data begins from 2016.12.26 00:00
2018.02.21 15:58:51.661 Core 1  agent process started
2018.02.21 15:58:52.095 Core 1  connecting to 127.0.0.1:3000
2018.02.21 15:58:52.095 Core 1  connected
2018.02.21 15:58:52.103 Core 1  authorized (agent build 1755)
2018.02.21 15:58:52.105 Tester  EURUSD,H1 (Alpari-MT5-Demo): testing of Experts\Exp - TickSniper PRO FULL v36 20180220.ex5 from 2018.01.01 00:00 to 2018.02.10 00:00
2018.02.21 15:58:52.891 Core 1  common synchronization completed
2018.02.21 15:58:53.064 Tester  quality of analyzed history is 100%
2018.02.21 15:58:54.393 Core 1  EURRUR: history synchronization started



Está bien en el USDJPY

 

Es una situación tonta con las barras de caracteres personalizadas. Puedo escribir en el historial (CustomRatesReplace) todas las barras que quiera, pero no puedo leerlas (CopyRates) aquí (TERMINAL_MAXBARS).

Tenemos que resolver esta situación errónea de alguna manera. Ver perfectamente el inicio de la Historia local a través de

SeriesInfoInteger(_Symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE);

Pero para llegar a ella.

¿Tal vez para dar la posibilidad de cambiar TERMINAL_MAXBARS a través de MQL? ¿O hacer que CopyRates se sobrecargue sin límite de MaxBars?

 

Observé este comportamiento de MT5 durante mucho tiempo, pero ahora decidí escribir.

Estoy trabajando en ME y MT5+tester. A veces no puedo conectarme al Agente y necesito reiniciar el Terminal. Me he acostumbrado a este bicho, así que no se trata de eso.

Entonces, cierro Terminal y presiono F4 en ME para abrir Terminal. Y aquí es donde empiezan algunas tonterías.

ME entra en estado "No responde" varias veces. El terminal no se inicia. Después de unos segundos, vuelvo a pulsar F4 y la reacción es la misma que antes.

Como resultado, en 20 segundos (mínimo) en una máquina no débil (mucha memoria, SSD, 95% de CPU libre) se lanza el Terminal.

Si lo comparas con MT4 - es el cielo y la tierra. MT4 se lanza casi instantáneamente por F4 desde ME. MT5 - se lanza como una aplicación súper cruda.

 
fxsaber:

Es una situación tonta con las barras de caracteres personalizadas. Puedo escribir en el historial (CustomRatesReplace) todas las barras que quiera, pero no puedo leerlas (CopyRates) aquí (TERMINAL_MAXBARS).

Tenemos que resolver esta situación errónea de alguna manera. Ver perfectamente el inicio de la Historia local a través de

Pero para llegar a ella.

¿Tal vez sería posible cambiar TERMINAL_MAXBARS a través de MQL? ¿O hacer que CopyRates se sobrecargue sin límite de MaxBars?

SD cree que no hay problema cuando no se puede llevar el historial de cotizaciones más allá de MaxBars. Este ejemplo (uno de los muchos escenarios en los que el historial requerido, que ya ESTÁ en la máquina local)

Se supone que el límite se establece para ahorrar recursos. Y con razón.

Imaginemos un Producto de Mercado, que está diseñado para calcular las estadísticas de la línea equitativa.

Resulta que el usuario, antes de aplicar este producto, tendrá que hacer UnlimitBars. Y después de aplicarlo, devolverlo.

no está impresionado. ¡La muleta se mantiene viva!

 

Los indicadores no siempre devuelven ACCOUNT_LOGIN al iniciar el terminal

0 11:00:01.880 Probador de indicadores personalizados EURUSD,H1: cargado con éxito
0 11:00:01.887 tester EURUSD,H1: OnInit 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) devuelve 0
0 11:00:01.887 tester EURUSD,H1: inicializado
0 11:00:01.887 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) devuelve 0
0 11:00:05.980 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) devuelve 0
0 11:00:06.654 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) devuelve 0
0 11:00:07.030 tester EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) devuelve el número de cuenta
0 11:00:07.040 tester EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) devuelve el número de cuenta

Código fuente

//+------------------------------------------------------------------+
//|                                                       tester.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnInit "+text);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnCalculate "+text);
   return(rates_total);
  }
//+------------------------------------------------------------------+

Puede que me equivoque pero en mi opinión ningún programa puede funcionar si no se conoce el número de cuenta.....

 
Vladimir Pastushak:

Puede que me equivoque, pero en mi opinión ningún programa puede funcionar si no se conoce el número de cuenta.....

Nunca utilizo elnúmero de cuenta en los EAs e indicadores, excepto en el caso de Report-dealing.

Pero estoy de acuerdo en que, incluso fuera de línea, el número de cuenta (la última conexión antes de que se apagara el terminal) debería estar siempre disponible.

 
fxsaber:

Nunca utilizoel número de cuenta en los EAs e indicadores, excepto en los Report-doors.

Pero estoy de acuerdo en que, incluso fuera de línea, el número de cuenta (última conexión antes de que se apagara el terminal) debería estar siempre disponible.

También en línea. Siempre hay que saber y entender bajo qué cuenta ocurrió y en qué momento.

Cómo se puede ejecutar un programa si no se sabe para qué cuenta se hace algo.

Esto no es "sharash montash", la gente puede tener millones en sus cuentas aquí....

 
Vladimir Pastushak:

También en línea. Siempre hay que saber y entender bajo qué cuenta ocurrió y en qué momento.

Cómo se puede ejecutar un programa si no se sabe para qué cuenta se está haciendo algo.

Esto no es "sharash montash", la gente puede tener millones en sus cuentas aquí....

El 99% de los EAs no analizan los números de cuenta.

 
fxsaber:

El 99% de los asesores no analiza el número de cuenta

porque el 99,99% de los EAs son "sharash montash" ....

Estoy seguro de que cada EA de calidad debería mantener su propio registro de operaciones, ya sea durante la operación o al descargar el EA el usuario debería obtener el registro de operaciones a petición. En caso de errores críticos, es obligatorio.

Por error crítico me refiero a la desconexión, a las recotizaciones, al código lento.

 
Vladimir Pastushak:

porque el 99,99% de los EAs son "sharash montash" ....

Escribo exactamente ese tipo de asesores.

Razón de la queja: