Emulación de ticks de un EA/indicador - página 4

 
Zhunko:

¿Sólo un caso, por ejemplo?

Sólo hay que tomar mi ChartBuilder en la base de código. Puede utilizar un gran número de instrumentos de negociación. Y si para el instrumento, en el que se cuelga, no se reciben nuevos ticks durante algún tiempo, el valor mostrado ya es irrelevante (obsoleto).

En cuanto a la combinación Asesor Experto+indicador, si te refieres a trasladar el código al Asesor Experto para reducir la carga del hilo principal, parece más razonable portar el código a una DLL e importarlo al indicador. Si piensas en portar el código, debería ser en un entorno normal.

 
Meat: Descubrí cuál era el problema: el array tiene que ser declarado a nivel global, no a nivel local.

sin garrapatas.... ((((

registro:

18:33:34 test EURUSD,H1: cargado con éxito
18:33:36 test EURUSD,H1: inicializado

botón derecho del ratón "actualizar gráfico" el comentario era tick: 1, se convirtió en tick: 2

no hay errores en el registro

SZS: corté la interconexión marcando "enable proxy server" , reinicié el terminal - no hay conexión , pero cuando marqué la casilla. SZY: apagar el intercomunicador marcando "habilitar el servidor proxy" , reiniciar el terminal - no hay conexión, pero cuando se quita la casilla de verificación sobre el servidor proxy, como "comenzó" ..... ;)

 
Como idea - un Exe separado, encuentra la ventana MT - se desplaza a través de las ventanas dentro de ella
y comienza a enviarlos a la emulación de la garrapata en un intervalo establecido.
 
jartmailru:
Como idea - un Exe separado, encuentra la ventana MT - se desplaza dentro de ella las ventanas
y comienza a enviarles ticks de emulación.
Tengo uno igual. Sólo en DLL. Pero Alexey lo quiere sin DLLs y EXEs de terceros.
Carne:

1. Por ejemplo, mi ChartBuilder en el código base. Puede utilizar un gran número de instrumentos de negociación. Y si para el instrumento, en el que se cuelga, no vienen nuevos ticks durante algún tiempo, entonces el valor mostrado ya es irrelevante (obsoleto).

2. En cuanto al Asesor Experto+indicador, si te refieres a trasladar el código al Asesor Experto para reducir la carga del hilo principal, sería más razonable trasladar el código a una DLL e importarlo al indicador. Si quieres molestarte en portar el código, será mejor que al menos lo hagas en un buen entorno.

1. Lo repetiré una vez más. Si quiere reaccionar a la herramienta fuera de la ventana actual, debe utilizar la hora del servidor. La WinAPI no es necesaria para ello. MQL4 tiene una función de este tipo.

2. No importa cuál sea la encuadernación. Esta es la misma solución. Un Asesor Experto en bucle responde al cambio de hora del servidor. Esto es suficiente para resolver todos los problemas que se pretenden solucionar.

Sólo es necesario emular los ticks para iniciar el Asesor Experto en el fin de semana. No es necesario para nada más. He mostrado cómo actualizar el indicador. Sólo una línea.

=====================

La última versión del indicador no funciona en Windows 7.


 
IgorM:

sin garrapatas.... ((((

...............

SZS: cortar la interconexión marcando la casilla "permitir servidor proxy". Pero cuando desmarqué la casilla del proxy, simplemente se "apagó" ..... ;)

Igor, esta forma de desconectarse de Internet no es buena. Hay muchas cosas que no funcionan en este modo. No es necesario desactivar el acceso a Internet.

Por ejemplo, este código para el Asesor Experto:

#include <WinUser32.mqh


void init()
 {
  int hwndChart = WindowHandle(Symbol(), 0);
  int nNewMessageWindow = RegisterWindowMessageA("MetaTrader4_Internal_Message");
  for (int i = 0; i < 200; i++) PostMessageA(hwndChart, nNewMessageWindow, 2, 1);
 }

void start()
 {
  int nCounter = 0;
  while (!IsStopped())
   {
    nCounter++;
    Comment(nCounter);
    Sleep(500);
   }
 }

funciona los fines de semana y cuando no hay ticks, pero no funciona cuando se desconecta de Internet. Hay alguna oscura peculiaridad allí.

Tal vez, lo han optimizado en las últimas construcciones. Antes funcionaba.

Es mejor que elijas una herramienta que se actualice raramente.

 
Zhunko:
Tengo uno de esos hechos. Sólo en DLL. Pero Alexey lo quiere sin DLL y EXE de terceros.

1. Una vez más. Para reaccionar a una herramienta que no sea de la ventana actual, es necesario utilizar la hora del servidor. La WinAPI no es necesaria para esto. MQL4 tiene una función de este tipo.

2. No importa la encuadernación que se utilice. Esta es la misma solución. Un Asesor Experto en bucle responde al cambio de hora del servidor. Esto es suficiente para resolver todos los problemas que se pretenden solucionar.

Sólo es necesario emular los ticks para iniciar el Asesor Experto en el fin de semana. No es necesario para nada más. He mostrado cómo actualizar el indicador. Sólo una línea.

=====================

La última versión del indicador no funciona en Windows 7.


No entiendo lo que tratas de demostrar, que varios archivos en ejecución son más geniales que uno... Por supuesto, puedo ejecutar un Asesor Experto en bucle, pero no veo el sentido de hacer este lío de dos archivos de trabajo, cuando puedo hacer lo mismo en el propio indicador o en una dll conectada. Por supuesto, comprendo que prefieras tener varios programas diferentes en ejecución, y que cada programa realice su función especializada: uno limpia los registros, otro envía los tics, etc. Pero tu enfoque no es el único correcto.

La emulación de ticks sólo es necesaria para iniciar el Asesor Experto en el fin de semana

Repito, se equivoca. La necesidad de garrapatas no depende del día de la semana. Ya he explicado por qué. Si no operas tú mismo, pero créeme, he estado operando con futuros durante los últimos años, tienes que actualizar los ticks allí con bastante frecuencia.

 

Se supone que el código no funciona donde se instalan los 64 bits. Sólo tengo 32, así que no puedo comprobarlo. Intenta insertar cuatro bytes nulos después de PostMsgAddr allí (sin olvidar aumentar el tamaño del array). Tal vez funcione... Aunque supongo que debes hacer los otros dos parámetros de 64 bits también... o no... De todos modos, aún no he trabajado en un entorno de 64 bits, así que no lo sé.

 
Meat:


1. No lo entiendo, ¿qué está tratando de demostrarme? ¿Que varios archivos en funcionamiento son más geniales que uno? Por supuesto, puedo iniciar un Asesor Experto en bucle, pero no tiene sentido crear tal lío que consiste en dos archivos de trabajo, cuando puedo hacer las mismas cosas en el propio indicador o en una dll vinculada. Por supuesto, entiendo que prefieras tener varios programas diferentes en funcionamiento, y que cada uno realice su función especializada: uno limpia los registros, el otro envía los ticks, etc. Pero sólo su enfoque no es el único correcto.

2. De nuevo, se equivoca. La necesidad de garrapatas no depende del día de la semana. Ya he explicado por qué. A menos que usted sea un comerciante, pero créame, he estado operando con futuros durante los últimos años, a menudo es necesario actualizar las garrapatas allí.

1. Ahora no entiendo... ¿Dónde he dicho yo que sea más guay? Ya he reiterado muchas veces que la emulación de ticks no es necesaria para operar. Sólo es necesario para la depuración de fin de semana cuando no hay ticks.

2. ¿Cómo se negocia a partir de un indicador? MQL4 no lo proporciona. Necesitas un Asesor Experto o un script. El Asesor Experto hace un bucle y compara la hora del servidor con la anterior. Si hay un desajuste, se reacciona de la manera prescrita por la ST. ¡Eso es todo! No hay necesidad de ninguna emulación. ¿Qué está demostrando? Ya lo he escrito en varias versiones en varios posts. Hay que ejecutar dicho Asesor Experto en el fin de semana para depurarlo. He escrito el código anterior.

 
Zhunko:

1. Ahora no entiendo... ¿Dónde he dicho yo que sea más guay? Ya he reiterado muchas veces que la emulación de ticks no es necesaria para operar. Sólo es necesario para la depuración de fin de semana cuando no hay ticks.

2. ¿Cómo se negocia a partir de un indicador? MQL4 no lo proporciona. Necesitas un Asesor Experto o un script. El Asesor Experto hace un bucle y compara la hora del servidor con la anterior. Si hay una discrepancia, usted reacciona de acuerdo con su ST. ¡Eso es todo! No hay necesidad de ninguna emulación. ¿Qué está demostrando? Ya lo he escrito en varias versiones en varios posts. Hay que ejecutar dicho Asesor Experto en el fin de semana para depurarlo. He escrito el código anterior.

Pero los que comercian probablemente lo saben mejor, ¿no crees?

No quiero operar desde un indicador, y no necesito una cosa adicional en forma de un Asesor Experto en bucle cuando el indicador de ticking es bastante.

 
Meat:

Así que digo: si no tienes comercio, entonces personalmente no necesitas esta emulación. Pero los que sí comercian probablemente lo saben mejor, ¿no crees?

No quiero operar desde un indicador, y no necesito una cosa adicional en forma de un Asesor Experto en bucle si el indicador de ticking es suficiente.

¿Cómo se negocia con un indicador de ticking? MQL4 no lo contempla.

¡De verdad! ¿Por qué necesito un conjunto adicional del indicador de ticking que no puede operar, si puedo hacer todo en un Asesor Experto en bucle? No habrá necesidad en WinAPI, la interfaz de MT4 no se volverá lenta, el Asesor Experto operará 3 veces más rápido. ¿Por qué complicar tanto las cosas?