Errores, fallos, preguntas - página 2096

 
elibrarius:

Hmm. Bueno encontrarlo ))))

int OnInit()
  {
   return(INIT_SUCCEEDED);
}

void OnTick()
  {
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  }

¿Quién te ha dicho que el campo de spread de la barra actual es igual al spread actual o, por ejemplo, al mínimo?

UtiliceSymbolInfoTick, las barras son un rudimento histórico.

 
fxsaber:

¿Quién te ha dicho que el campo de spread de la barra actual es igual al spread actual o, por ejemplo, al mínimo?

Utilice SymbolInfoTick, las barras son un rudimento histórico.

CopySpread - recuerda lo mínimo - dijo la práctica, que en la mayoría de los casos resulta ser el criterio de la verdad. A partir de ella se establece que la barra 2017.10.23 01:00 CopySprea=-3, ya que no había menos al comprobar contra ticks.

Yo diría que las barras son una herramienta muy necesaria para analizar el pasado.

SymbolInfoTick es correcto, pero ¿es realmente la razón para dejar mal CopySpread? Entiendo que 1 pt. - es una nimiedad, creo, y fijarlo elemental s=s-1. Eso es todo.)

 
elibrarius:

SymbolInfoTick - se muestra correctamente, pero ¿es realmente necesario dejar CopySpread mal por esto? Entiendo que 1 pt. - es una nimiedad, creo, que es elemental corregirla s=s-1. Eso es todo.)

Antes de ejecutar el probador, mira el historial de la barra para ver si tiene un spread negativo. Es un campo torcido sobre nada.

Si los desarrolladores de hoy en día se plantearan MqlRates, habría campos normales en lugar de esta mierda. Pero no tienen tiempo para reconsiderar esta estructura y ya han hecho todo tipo de tonterías con ella. Por lo tanto, tenemos un rudimento de la historia. Y ahora estarán tirando de esta carga todo el tiempo.

 
elibrarius:

CopySpread - recuerda lo mínimo - dijo la práctica, que en la mayoría de los casos resulta ser el criterio de la verdad. A partir de ella se establece que la barra 2017.10.23 01:00 CopySprea=-3, ya que no había menos al comprobar por ticks.

Yo diría que las barras son una herramienta muy necesaria para analizar el pasado.

SymbolInfoTick es correcto, pero ¿es realmente la razón para dejar mal CopySpread? Entiendo que 1 pt. - es una nimiedad, creo, y fijarlo elemental s=s-1. Eso es todo.)

Si presta atención, puede observar los minutos y ver, que el último valor del spread se recuerda cuando aparece una nueva barra.

 
Alexey Viktorov:

Si está atento, puede observar los minutos para ver que el último valor del spread se recuerda cuando aparece una nueva barra.

Mirando más de cerca, estoy de acuerdo, pero en parte.

Código de experto:

void OnTick() { 
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  MqlTick last_tick;
  if(SymbolInfoTick(Symbol(),last_tick)) { Print(last_tick.time,": Bid = ",last_tick.bid, " Ask = ",last_tick.ask,"  SP = ",DoubleToString(last_tick.ask-last_tick.bid,5)); }
}

Aquí hay una impresión de un minuto - primero la propagación de CopySpread. Entonces se calcula a partir de Ask-Bid

2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17729 SP = 0.00014
2018.01.01 11:55:00.494 2017.10.23 01:00:00 9
2018.01.01 11:55:00.494 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17724 SP = 0.00009
2018.01.01 11:55:00.510 2017.10.23 01:00:00 9
2018.01.01 11:55:00.510 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17716 Ask = 1.17726 SP = 0.00010
...........
2018.01.01 11:55:01.023 2017.10.23 01:00:30 1
2018.01.01 11:55:01.023 2017.10.23 01:00:30 2017.10.23 01:00:30: Bid = 1.17704 Ask = 1.17705 SP = 0.00001
2018.01.01 11:55:01.876 2017.10.23 01:00:30 -1
2018.01.01 11:55:01.876 2017.10.23 01:00:30 2017.10.23 01:00:30: Bid = 1.17707 Ask = 1.17705 SP = -0.00002
2018.01.01 11:55:01.893 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.893 2017.10.23 01:00:31 2017.10.23 01:00:31: Bid = 1.17707 Ask = 1.17703 SP = -0.00004

2018.01.01 11:55:01.909 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.909 2017.10.23 01:00:31 2017.10.23 01:00:31: Bid = 1.17707 Ask = 1.17704 SP = -0.00003
2018.01.01 11:55:01.925 2017.10.23 01:00:32 -3
...........
2018.01.01 11:55:02.293 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.293 2017.10.23 01:00:48 2017.10.23 01:00:48: Bid = 1.17702 Ask = 1.17707 SP = 0.00005
2018.01.01 11:55:02.309 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.309 2017.10.23 01:00:48 2017.10.23 01:00:48: Bid = 1.17703 Ask = 1.17707 SP = 0.00004
2018.01.01 11:55:02.325 2017.10.23 01:00:49 -3
2018.01.01 11:55:02.325 2017.10.23 01:00:49 2017.10.23 01:00:49: Bid = 1.17707 Ask = 1.17707 SP = 0.00000

Es decir, el valor de CopySpread en la barra actual = mínimo.

Pero en la historia del bar el último valor se ha ido realmente.

<FECHA> <HORA> <ABIERTO> <ALTO> <BAJO><CLOSE> <TICKVOL> <VOL> <SPREAD>
2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0

La mayoría de las veces (mínimo 10 comprobado), pero aquí también hay fallos.
Aquí está el problema descrito anteriormente en 2017.10.23 00:53

En la historia.

2017.10.23 00:53:00 1.17685 1.17725 1.17685 1.17725 8 0 9

Y sobre las garrapatas:

2018.01.01 11:54:59.009 2017.10.23 00:53:43 48
2018.01.01 11:54:59.009 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17724 Ask = 1.17733 SP = 0.00009
2018.01.01 11:54:59.025 2017.10.23 00:53:43 48
2018.01.01 11:54:59.025 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17725 Ask = 1.17736 SP = 0.00011
2018.01.01 11:54:59.041 2017.10.23 00:53:43 48
2018.01.01 11:54:59.041 2017.10.23 00:53:43 2017.10.23 10.23 00:53:43: Bid = 1.17725 Ask = 1.17737 SP = 0.00012 <<<<<<---------- last bar tick
2017.10.23 00:53
2018.01.01 11:54:59.057 2017.10.23 00:54:11 9
2018.01.01 11:54:59.057 2017.10.23 00:54:11 2017.10.23 00:54:11: Bid = 1.17728 Ask = 1.17737 SP = 0.00009 <<<<<<---------- first tick bar 2017.10.23 00:54 - aquí coincide

Comprobada la versión de que el spread del primer tick de la siguiente barra pasa al historial. No está confirmado:

Historia
2017.10.23 00:59:00 1.17717 1.17723 1.17709 1.17715 14 0 3

1er tick de la siguiente barra
2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17729 SP = 0.00014

Historia

2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0

1er tick de la siguiente barra
2018.01.01 11:55:02.342 2017.10.23 01:01:03 1
2018.01.01 11:55:02.342 2017.10.23 01:01:03 2017.10.23 01:01:03: Bid = 1.17707 Ask = 1.17708 SP = 0.00001

En definitiva, un poco de lío con los diferenciales (

 
elibrarius:

...

En definitiva, cierta confusión sobre los diferenciales (


 

MT4 b1090, muchas docenas de símbolos en Market Watch, varios gráficos abiertos. terminal.exe está comiendo 0-1% de CPU.

MT5 b1730, sólo GBPUSD MetaQuotes-Demo en Market Watch, sin gráficos. terminal64.exe está comiendo 2-3% de CPU.

¿Es esto normal?

 
fxsaber:

MT4 b1090, muchas docenas de símbolos en Market Watch, varios gráficos abiertos. terminal.exe está comiendo 0-1% de CPU.

MT5 b1730, sólo GBPUSD MetaQuotes-Demo en Market Watch, sin gráficos. terminal64.exe está comiendo 2-3% de CPU.

¿Es normal?

El tema ha surgido varias veces. MT5 es un poco más intensivo en el uso de la CPU porque transmite más información.

Pero es incorrecto comparar dentro del 1-2%.

 
Andrey Khatimlianskii:

El tema ha surgido varias veces. MT5 es ligeramente más intensivo en cuanto a la CPU porque transmite más información.

Pero es incorrecto comparar dentro del 1-2%.

Varios navegadores con decenas de pestañas abiertas en modo lectura comen cero. Es extraño que un terminal completamente vacío consuma como un cliente de torrent. Y no cambia si desconectas Internet del ordenador.

 
fxsaber:

Varios navegadores con decenas de pestañas abiertas en modo lectura comen cero. Es extraño que un terminal completamente vacío consuma como un cliente de torrent. Y no cambia si lo desenchufas del ordenador.

Es incorrecto compararlo con un navegador. Las pestañas en segundo plano, por lo que veo, no consumen recursos en absoluto.

Y el terminal recibe los ticks y construye una serie temporal, independientemente de si el gráfico está activo o no, de modo que cuando se cambia a él, muestra la información actual sin retrasos.

Pero en realidad no estoy defendiendo a MT, sólo señalando que nadie se ha molestado en hacer una comparación completa con todos los cálculos para el servicio de atención al cliente.

Razón de la queja: