Cómo protegerse contra la copia de operaciones largas del probador - página 6

 
Alexey Viktorov:

...Exactamente un mes antes del final de la prueba. Y no importa dónde mueva el tiempo del ordenador... el resultado seguirá siendo el mismo, un mes antes de la finalización de la prueba.

Pero si no hay forma de saber la fecha de finalización de la prueba, entonces la idea es imposible.

Sí, otra opción es conocer la fecha exacta de finalización del examen. En este caso - también está bien, pero ¿cómo averiguar esta fecha?
 
George Merts:

Bueno, cómo decirlo... Una vez hubo una situación con la reventa de señales, y ahora hay clientes que utilizan este TS para trabajar en sus PAMMs.

Este sistema de comercio no es muy "súper rentable", sin embargo, su estabilidad es muy alta. Y lo principal - la capacidad de copiar las operaciones del probador no es conveniente para su autor. Y sugiere que yo, como programador, debería pensar en formas de resolver este problema.

Bueno, excepto que es un problema puramente técnico. Pero desde el punto de vista del cliente seguirá siendo un sinsentido.

 
George Merts:
Sí, otra opción es conocer la fecha exacta de finalización del examen. En este caso también está bien, pero ¿cómo sabemos esta fecha?

La fecha de finalización de la prueba se puede poner en el futuro, no rueda.

Pruebe esta opción: la primera ejecución debe ir sin ninguna acción, y sólo con recordar la fecha del último tick.
La segunda ejecución debe operar, pero sólo hasta la fecha deseada (memorizada menos un mes). Dónde recordar (y cómo cifrar) la fecha del último tic es una cuestión de técnica.
El único inconveniente (y hasta ahora el menor): hay que hacer la prueba dos veces ;)

 
Si es tan serio, puede obtener la hora en algún lugar de Internet.
 
George Merts:

Dimitri, el reto es dejar de procesar los ticks en el probador antes de la fecha real. Para ello es necesario conocer esta fecha real. Desde el probador se puede encontrar sólo como se ha escrito anteriormente - por la operación de archivo. Pero, si un usuario astuto adelanta la hora en el ordenador, la operación del archivo también dará no la hora real, sino la hora adelantada.

El problema, de hecho, es que si el EA se ejecuta en el timeframe M5 o posterior (un problema particular en el diario) - se hace posible ejecutarlo en el probador de estrategias y leer la última acción, transfiriéndola a otro terminal, y no comprar un EA, utilizando sólo la versión demo.

Prohibir artificialmente la prueba en las últimas barras N.
 
Dmitry Fedoseev:
Si es tan serio, podría obtener el tiempo de Internet en algún lugar.
Dicen que WebRequest no funciona en el probador...
 
Vitalie Postolache:
Me pregunto si el autor de este hilo puede dar al menos un ejemplo en el que alguien haya sido capaz de reproducir operaciones en una cuenta real basándose en los resultados de las pruebas y obtener beneficios. ¿Con sólo el demo-asesor en el probador y nada más?
Si nos lo proponemos, podemos copiar las estrategias de los scalpers. ¿Qué le impide seguir una señal del probador cada 2-3 segundos?
 
Dmitiry Ananiev:
Si te lo propones, puedes copiar estrategias de scalper como ésta. ¿Qué le impide seguir una señal del probador cada 2-3 segundos?
El hecho de que sea un probador, a priori funciona en el pasado y por mucho que se intente, no se puede repetir la operación en las mismas condiciones y a la misma hora. Pero si no se trata de pips, sino de largo plazo, entonces sí que alguien puede pensar en hacerlo, aunque de todas formas no tiene mucho sentido, es más fácil averiguar la estrategia y repetir.
 
Игорь Герасько:
Dicen que WebRequest no funciona en el probador...
Ya lo he probado. Funciona. Probado en MT4 en tester, en experto.
 
George Merts:
...

El problema no es tan sencillo como puede parecer a primera vista. Se puede sugerir lo siguiente (seguir el pensamiento):

  1. El Asesor Experto es compilado con la fecha actual escrita en él.
  2. El usuario recibe el Asesor Experto y lo ejecuta en el probador de estrategias.
  3. Durante la primera ejecución, el Asesor Experto comercia en el Probador de Estrategias hasta la fecha especificada en él (o un mes antes de esa fecha, las condiciones son a discreción del autor).
  4. Después de la fecha especificada en él, sigue recibiendo cotizaciones memorizando la hora de la última cotización recibida en el probador de estrategias, pero sin realizar ninguna acción de negociación.
  5. Al final de la prueba, guarda el último tiempo almacenado en un archivo especial.
  6. El propio registro está encriptado y, por tanto, su contenido no puede modificarse de forma que indique una fecha futura al desencriptar el registro.
  7. Durante la siguiente ejecución en el Probador de Estrategias, el Asesor Experto leerá este archivo, descifrará su contenido y se dará cuenta de que ya ha sido ejecutado al menos hasta la fecha especificada en el mismo.
  8. A continuación, durante la segunda y siguientes ejecuciones, continuará negociando hasta la fecha especificada en el archivo menos un mes.
  9. A medida que reciba nuevas fechas en el Probador de Estrategias o en la cuenta real, seguirá moviéndose automáticamente tras el nuevo historial y mantendrá la distancia de un mes.

Desde el punto de vista del usuario, tendrá el siguiente aspecto: la primera vez, durante la ejecución, no operará hasta el final del período de optimización seleccionado por alguna razón. Sin embargo, a partir de la segunda corrida y en adelante, su desfase disminuirá y corresponderá a un mes aproximadamente.

En este caso, la protección sólo puede eliminarse mediante el descifrado completo del archivo encontrando una clave o descompilando el Expert Advisor. Dada la tecnología actual y la calidad de la protección de los programas de MQ, esto es prácticamente imposible. Si el usuario decide borrar el archivo de encriptación, el Asesor Experto lo creará de nuevo, con la antigua fecha de protección en la compilación, y el usuario seguirá sin poder realizar una operación en el momento actual.

Lo bueno es que este método sólo limita ligeramente la comodidad del usuario. Volver a ejecutar el EA arreglará por completo el retraso excesivo. Al mismo tiempo, este tipo de protección no requiere DLL externas, lo que significa que puede distribuirse en el mercado. Por ejemplo, puede crear una versión gratuita que opere sólo hasta una fecha determinada.