English Русский 中文 Deutsch 日本語 Português
Scalping combinatorio: analizando transacciones del pasado para aumentar el rendimiento de las transacciones futuras

Scalping combinatorio: analizando transacciones del pasado para aumentar el rendimiento de las transacciones futuras

MetaTrader 5Trading | 14 junio 2021, 14:38
1 520 0
Oleg Besedin
Oleg Besedin

Fórex es testigo: en contra de lo deseado, hemos tenido que meternos en el mundo del scalping. El autor no quería ser un tráder, y mucho menos un desarrollador de sistemas comerciales automatizados. ¡En vano! Como resultado de la investigación realizada, hemos conseguido una tecnología eterna que podrá ser heredada por hijos, nietos, bisnietos, tataranietos y quién sabe cuántos más. Bastará con que el mundo siga en pie y las bolsas sigan funcionando.


Sobre el método. Una discripción visual

Imagínese que tenemos un cañón (algún tipo de sistema comercial o algoritmo) y 2 cajas de proyectiles para él: una con transacciones positivas (rentables) y otra con transacciones negativas (no rentables). Si disparamos y analizamos los cráteres en el campo de batalla, resultará que hay transacciones positivas que nunca caen en cráteres negativos a lo largo de la historia de las batallas.

Visualmente, podría verse así

Figura 1. Campo digital de la historia de transacciones

Figura 1. Campo digital de la historia de transacciones


Si en la Figura 1 prestamos atención al eje de coordenadas, veremos que, como parámetro clave de la metodología, se indica el tiempo. Estamos hablando del tiempo de expiración de la transacción (duración de una orden abierta hasta su cierre forzoso). En cuanto a unidad de medición, el tiempo juega un papel principal, dado que, para un mismo evento (condición para la apertura de una orden según el sistema comercial), los resultados serán distintos, y dependerán del tiempo de expiración. Para un periodo temporal, los resultados pueden ser constantemente negativos, para el siguiente, mediocres, y para otro, consistentemente rentables. Y este desempeño se distribuye a lo largo de la historia comercial sin ningún orden en particular.

Sobre el método. Detalles

Muchos desarrolladores han intentado crear sistemas comerciales basados ​​en indicadores: variedades de tipos de velas japonesas, patrones y combinaciones de las mismas, y muchas otras construcciones de diverso tipo en busca del Grial. Como resultado, obtenían un resultado "promedio" en la salida, es decir, dichos asesores incluían simultáneamente todos los extremos: tanto los buenos resultados, que eran rentables, como los peores, en los que se perdía completamente el balance. Pero, si al sistema de desarrollo añadimos primero el tiempo y luego analizamos los resultados en la historia comercial para cada expiración, podremos identificar cuáles de ellas son siempre rentables y cuáles invariablemente no lo son. Solo nos queda encontrar y formalizar las diferencias entre los resultados. Por consiguiente, incluiremos en el sistema de comercio automatizado solo las construcciones rentables, excluyendo del código las no rentables.

Figura 2.  Implementación de expiraciones en el sistema de desarrollo del sistema comercial

Figura 2. Implementación de expiraciones en el sistema de desarrollo del sistema comercial


Ejemplo:

Si ponemos a prueba en la historia de transacciones, por ejemplo, la vela de inversión de "martillo", en algunos casos se producirá el viraje de tendencia esperado y las transacciones serán rentables, mientras que, en otros casos, nos encontraremos con el fenómeno opuesto: no habrá viraje y el patrón ofrecerá pérdidas. Pero si ponemos a prueba el mismo "martillo" con la misma distancia en pips para todas las órdenes y con 5 minutos de expiración (es decir, para 5 minutos desde que se abre la orden hasta que se cierra forzosamente), durante 6 minutos, 7 minutos, 8 minutos, etcétera, al final, resulta que, por ejemplo, en el minuto 7 (Figura 1) tenemos los mejores resultados: la tendencia siempre se ha revertido y no nos hemos encontrado una sola falla en el patrón. En este caso, deberemos encontrar en el gráfico las diferencias entre los resultados del minuto 7 y todos los demás y describir dichas diferencias en el código. De la misma manera, podemos hacer lo contrario: encontrar las diferencias entre los malos resultados, formalizarlas y prohibir al asesor abrir transacciones en estas condiciones. Como resultado, el asesor podrá trabajar con los siguientes pronósticos de rendimiento de un año a otro:


Figura 3. Resultados del simulador de estrategias (EURUSD, M1, lote mínimo)

Figura 3. Resultados del simulador de estrategias (EURUSD, M1, lote mínimo)


Modelo matemático

No en vano se dice que, cuanto más simple, mejor. En este caso, las matemáticas son muy simples. Para describir las diferencias y formalizar los resultados o simular las condiciones para la apertura de una transacción, bastará con tomar las medidas digitales de las velas (barras) que participan en el proceso.

Las medidas digitales (en pips) son la longitud de la vela, el cuerpo de la vela y la dirección (color) de la vela. Las sombras no tomarán parte.

Figura 4. Las medidas digitales (en pips) son la longitud de la vela, el cuerpo de la vela y el color de la vela.

Figura 4. Las medidas digitales (en pips) son la longitud de la vela, el cuerpo de la vela y el color de la vela.


Resulta que la descripción de las medidas digitales de solo 3 velas (situadas frente a la vela de apertura de la transacción) resulta suficiente para que su combinación sea única en la historia.

«Longitud de la vela 1 y cuerpo de la vela 1 y color de la vela 1, 
longitud de la vela 2 y cuerpo de la vela 2 y color de la vela 2,
longitud de la vela 3 y cuerpo de la vela 3 y color de la vela 3»


Ejemplo de mediciones digitales de combinaciones tomadas de transacciones rentables que se han repetido en la historia de transacciones usando el mismo algoritmo de transacciones, la misma expiración y el mismo take profit:

22.04.2009 03:23;R  31 - 26;G  13 - 3;G  21 - 11

07.10.2009 20:55;R  31 - 13;G  13 - 3;G  21 - 11

25.11.2011 19:48;R 22 - 2;G  13 - 3;G  21 - 11

07.06.2013 10:59;R  16 - 13;R  13 - 3;G  21 - 11

26.02.2019 18:35;R  22 - 9;G  13 - 3;G  21 - 11

Para la base de combinaciones del asesor, será mejor tomar aquellas medidas que coincidan completamente en la dirección (color), donde G será verde (el color del crecimiento), mientras que R será rojo (el color de la disminución). En nuestro ejemplo, coinciden y se ajustan las siguientes medidas:

22.04.2009 03:23;R  31 - 26;G  13 - 3;G  21 - 11

07.10.2009 20:55;R  31 - 13;G  13 - 3;G  21 - 11

25.11.2011 19:48;R 22 - 2;G  13 - 3;G  21 - 11

26.02.2019 18:35;R  22 - 9;G  13 - 3;G  21 - 11

Luego, deberemos combinar estas medidas en una sola para facilitar su transferencia al código. Para ello, escribiremos los números de las columnas correspondientes en el rango:

R  (22-31) - (2-26);G  13 - 3;G  21 - 11

Se presupone que podemos tomar cualquier sistema comercial (algoritmo de apertura de transacciones), por ejemplo, la apertura de una transacción después de una vela (verde) ascendente con un tamaño de 10 pips y probarlo en la historia comercial del mercado deseado usando obligatoriamente la iteración de expiraciones y distancias para reunir una base de datos con las combinaciones de las medidas digitales de las transacciones positivas. Después de completar el trabajo de identificación de transacciones rentables (repitimos, que según su expiración nunca han coincidido con las no rentables) y tomar medidas a partir de ellas, podemos conectar la base de combinaciones resultante al algoritmo. Después de eso, el asesor monitoreará y ejecutará solo las combinaciones exitosas identificadas.

Como utiliza una base de combinaciones, hemos denominado al método descrito "scalping combinatorio". Se basa en el supuesto de que el rendimiento de cualquier sistema comercial puede mejorarse si realizamos un análisis preliminar de los resultados de las transacciones en la historia comercial usando las expiraciones. Durante dicho análisis, podemos seleccionar para su uso posterior una combinación de medidas digitales de los mejores resultados.

Se supone que la probabilidad de que una transacción exitosa se dé y se repita se multiplica si la combinación de sus medidas digitales se repite en la historia comercial sin casos no rentables. Este método nos permite convertir un sistema comercial ordinario y mediocre (por ejemplo, uno de indicador) en un asesor exitoso con indicadores de alto rendimiento.


Aquí tenemos un ejemplo del desempeño previsto para un asesor con la misma base de combinaciones a lo largo de los años:

2016


2017


2018


2019


2020

Figura 5. Ejemplo de simulación de un asesor con la misma base de combinaciones a lo largo de varios años.

Figura 5. Ejemplo de simulación de un asesor con la misma base de combinaciones a lo largo de varios años



¿Por qué hemos elegido el scalping?

El nombre original era: "actualización de combinación" o "método de modificación de combinación", "método de actualización de combinación". Pero, "R, la realidad" puso todo en su lugar.
En primer lugar: scalping (del inglés scalping — arrancar el cuero cabelludo, cortar la parte superior). El método propuesto no cambia ni reemplaza los sistemas y algoritmos comerciales existentes, sino que solo nos permite cortar una cierta parte del "iceberg", la parte superior de estos sistemas, para así exponer su interior digital y revelar su mecanismo efectivo.

En segundo lugar: lamentablemente, en estos momentos, el método puede extender su poder y funcionar de manera efectiva solo dentro del día comercial y en distancias cortas en pips. Y esta razón se encuentra en la historia comercial. Se adaptará absolutamente cualquier mercado, incluso a las acciones o los envoltorios de caramelos de TumbaUmba Ltd, pero la historia comercial es importante. Cuanto más largo sea el archivo, mejor resultará la selección. La opción más adecuada es el mercado de divisas. Por desgracia, en Fórex sucedió un evento histórico que inutilizó la mayoría de los archivos de cotizaciones. Hablamos del paso de los centros de negociación en 2009 de las cuotas de cuatro dígitos a las cuotas de cinco dígitos, es decir, del paso de los brókeres a las cotizaciones con cinco dígitos decimales. Toda la historia de cotizaciones anterior se fue por la borda. Y para el método solo resultó adecuada la historia desde el año 2009.

Este es el momento histórico que supuso el paso de los cuatro dígitos a los cinco:


Figura 6. Momento histórico del cambio de cotizaciones en uno de los brókeres (20 - 23 de febrero de 2009). Sobre las velas se indica la longitud en pips.

Figura 6. Momento histórico del cambio de cotizaciones en uno de los brókeres (20 - 23 de febrero de 2009).
Sobre las velas se indica la longitud en pips


¿Qué va mal? ¿Por qué no sirven las cotizaciones de cuatro dígitos?
Todo es simple. Imaginemos que en el mundo anterior a 2009 no existieran los milímetros. Había metros, había centímetros, pero no milímetros. Cualquier milímetro se redondeaba hasta cero, o bien hasta un centímetro. Genial, ¿no? En términos generales, este fue el caso de Fórex: las velas de 15 milímetros de largo no existían, pero en el gráfico se mostraban exactamente de 1 o 2 centímetros de largo. ¡Qué precisas son las mediciones digitales! (sarcasmo)


Como resultado, en este momento, para procesar las historias son solo relevantes los últimos 4 400 000 minutos de cualquier instrumento de Fórex. Imaginemos asimismo, que, de estos 4 millones de barras, solo hay cobertura estadística completa para las velas con las longitudes más comunes (de 5 a 40 pips) y las distancias de take profit "garantizado" de 5 a 15 pips. Las distancias lejanas de take profit y las grandes dimensiones de las velas tienen importantes lagunas en sus estadísticas debido a lo breve de la historia de transacciones, es decir, el archivo de cotizaciones de la última década se encuentra todavía en la etapa inicial de adecuación a la tecnología, a saber, un cierto mínimo inicial que normalmente abarca solo las medidas digitales iniciales de las combinaciones de velas y las distancias.

Figura 7. Relación aproximada del crecimiento de las distancias de take profit "garantizadas" a medida que la historia comercial se incrementa

Figura 7. Relación aproximada del crecimiento de las distancias de take profit "garantizadas" a medida que la historia comercial se incrementa


Después de 10 años, las velas de 50 pips y las distancias de 20 pips tendrán una cobertura total. Otros 10 años ofrecerán datos para las velas de 60 pips y las distancias más largas. Y así con cada década de transacciones. Es por eso que el método actual solo es apto para el scalping. Las distancias comerciales largas presentan demasiados huecos y demasiado ruido en los archivos de cotizaciones. Obviamente, podemos intentar crear una muestra para una distancia de take profit de 1000 pips (100 puntos), pero la efectividad de la actualización del sistema comercial resultará la misma que sin ella. La siguiente sección lo demuestra con claridad (se trata de la composición de una de las bases de datos de combinaciones):

Pips Combinations


 10  12 384
 20  4 045
 30  2 768
 40  820
 50  236
 60  76
 70  24
 80  12
 90  7
100  3
110  1
120  0

es decir, después de 100 pips, aún tenemos un vacío. Las estadísticas son demasiado escasas. Las cifras de arriba indican la siguiente: de toda la historia comercial disponible, en más de 4 400 000 minutos y 12 384 combinaciones, de ellas, a una distancia de de take profit de 10 pips, ninguna ha dado pérdidas. Es como en el ejemplo del cañón: se han disparado 4 400 000 proyectiles negativos a una distancia de 10 pips y nunca han alcanzado 12 384 edificios positivos. A una distancia de 20 pips, solo quedan 4045 edificios. Además, a una distancia de 60 pips, solo 76 disparos de 4 400 000 no han alcanzado el objetivo.


Desventajas del método

  1. Procesamiento de la historia comercial
    Por una parte, por el momento tenemos poca historia; por otra, incluso con el archivo disponible, no todo resulta tan sencillo. 4 400 000 unidades de prueba suponen una simulación con la historia según la medida digital de alguna longitud de la vela. Y ahora, las velas más "populares" en las transacciones son las de 5 a 40 pips. Por lo tanto, la prueba histórica completa se realiza para todas las variantes de longitud (35 ciclos, de 5 a 40):


    4 400 000 * 35 = 154 000 000 veces.

    Y esto solo en la dirección Buy. Necesitamos el mismo número de operaciones de procesamiento para la dirección Sell. Además, debemos añadir aquí las expiraciones, por ejemplo, de un minuto, durante 30 minutos. El total es:


    154 000 000 * 30 *2 = 9 240 000 000 operaciones.

    Por consiguiente, la tarea del procesamiento de la historia de transacciones no es algo trivial. No obstante, las herramientas y posibilidades modernas nos permiten resolver estos problemas en unas pocas horas.

  2. Actualización periódica de la base de datos de combinaciones
    A lo largo del tiempo de negociación, la historia de cotizaciones cambia y se completa. Por consiguiente, los resultados pueden cambiar y las combinaciones de medidas digitales se pueden corregir. Por ello, la base de datos de combinaciones debe ser actualizada periódicamente. Hablamos de una frecuencia en semanas o meses.

  3. Dependencia de la historia comercial respecto al proveedor
    Este es el principal inconveniente. El método depende completamente de la historia comercial. Cada bróker tiene su propio proveedor de cotizaciones, y, por lo tanto, no existe una historia única. Por eso, la base de datos de combinaciones con las transacciones exitosas funcionará solo con el bróker de quien se ha tomado la historia comercial. 


    Aquí vemos una ilustración visual de los resultados de la prueba de la misma base de combinaciones para diferentes brókeres:



    №1: Resultados de la prueba con un bróker cuya historia comercial ha formado la base de combinaciones

    №2: Otro bróker


    Figura 8. Ilustración visual de los resultados de la prueba con la misma base de combinaciones para diferentes brókeres (del 2018.06 al 2021.03, EURUSD, М1). Primer ejemplo: bróker cuya historia comercial ha formado la base de datos de combinaciones. Segundo ejemplo: otro bróker


    Figura 8. Ilustración visual de los resultados de la prueba con la misma base de combinaciones para diferentes brókeres (del 2018.06 al 2021.03, EURUSD, М1).
    Primer ejemplo: bróker cuya historia comercial ha formado la base de datos de combinaciones. Segundo ejemplo: otro bróker


  4. Asimismo, los resultados dependen por completo del instrumento comercial
    Por ejemplo, la base de combinaciones de EURUSD no será compatible con AUDUSD o cualquier otra pareja. Y al contrario.



Parte final

A pesar de la sencillez de la idea, el método propuesto no resulta sencillo. La principal dificultad es la implementación del procesamiento de los datos de volumen. Otra característica desagradable es la dependencia del bróker (de su historia comercial) y la sensibilidad al spread del instrumento comercial. A pesar de que con el método podemos aumentar la eficacia de cualquier sistema comercial, no nos encontramos ante el Grial. Todavía no es el Grial. Desgraciadamente, hay transacciones negativas, porque la historia comercial aún es demasiado pequeña y tiene lagunas que solo se llenarán en el futuro. Sea com fuere, esta es una tecnología "eterna" que funciona en cualquier mercado financiero donde podamos acceder a la historia comercial. Al mismo tiempo, con cada nuevo año o década, la efectividad de la base de combinaciones solo aumentará y el número de combinaciones crecerá.

 

Bonus para los que han leído el artículo hasta el final.

Tras observar los resultados y obtener las estadísticas de los asesores activos que trabajan con bases de combinaciones, hemos logrado encontrar varios puntos interesantes. El scalping combinado ha revelado el plano digital interior de los procesos que resultan invisibles (especialmente para los tráders "manuales"). Queremos compartir la información sobre uno de ellos.

A pesar de la variedad de parejas de divisas existentes, el mercado de divisas se compone de vasos comunicantes. Todos ellos están coordinados entre sí: la base subyacente de dicha coordinación es EURUSD. Esta pareja inicia las principales olas del mercado, en cuyo caso otras parejas deberán encontrar el equilibrio.

Entonces, hemos notado que hay algunas cifras "armoniosas" para este equilibrio. Y no hablamos de números de Fibonacci, Gann u otro cualquiera. Al parecer, son algunos valores de coordinación específicos relacionados con los movimientos y las correcciones de los tipos de cambio en el mercado Fórex.

Cifras de desviación y equilibrio (en pips):

37.5 
75
112.5
150
187.5
225

La siguiente investigación ofrece la confirmación de que EURUSD supone la base para ajustar el resto de las parejas: si, según un algoritmo comercial (cualquiera), abrimos órdenes en un momento y lugar arbitrarios de un flat dentro de un día, entonces el tipo de cambio en la mayoría de los casos primero tenderá hacia alguna desviación, pero luego se corrigirá de nuevo hacia el lugar de la apertura. Y precisamente en EURUSD es donde esta desviación no suele superar los 37,5 pips: solo a veces alcanza los 75 pips o más. Para otras parejas, estas desviaciones no resultan estables, y a menudo se salen de la escala por encima de la desviación estándar de 37,5 pips. En general, solo EURUSD tiene un comportamiento más seguro según estos valores. El resto de parejas dependientes se comportan de una forma "más nerviosa".

Además, estos números son responsables del movimiento objetivo del tipo de cambio durante el día. 225 pips es la unidad de cálculo estándar para un movimiento hasta el objetivo por día (en una dirección). Hay movimientos de 4-5 unidades por día (en una dirección), es decir, 900-1125 pips. Básicamente, 2-3 unidades de movimiento objetivo por día.

En los gráficos, los números de movimiento objetivo se comportan de la siguiente forma:



Y ahora, lo mismo, pero con una representación completa de los valores:



Otro ejemplo: 



Y lo mismo, pero con una representación completa de los valores:



Para los marcos temporales diarios y semanales, la unidad de cálculo estándar del movimiento objetivo será:

37,5 * 60 minutos = 2250 pips

Lo cual incluye armoniosamente 10 unidades de cálculo de movimientos objetivo en marcos temporales de 1 minuto (2250/225).

Estamos seguros de que los tráders se beneficiarán de estos números, pero es posible que estos valores acordados cambien con el tiempo. Sin embargo, incluso en este caso, el scalping combinatorio podrá realizar nuevamente un análisis y averiguar los nuevos valores de los números de equilibrio y movimiento.

¡Gracias por su atención!

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/9231

Otras clases en la biblioteca DoEasy (Parte 69): Clases de colección de objetos de gráfico Otras clases en la biblioteca DoEasy (Parte 69): Clases de colección de objetos de gráfico
A partir de este artículo, comenzaremos el desarrollo de una colección de clases de objetos de gráfico que almacenará una colección de lista de objetos de gráfico con sus subventanas y los indicadores en ellas, y nos permitirá trabajar con cualquier gráfico seleccionado y sus subventanas, o bien directamente con una lista de varios gráficos al mismo tiempo.
Otras clases en la biblioteca DoEasy (Parte 68): Clase de objeto de ventana de gráfico y clases de objetos de indicador en la ventana del gráfico Otras clases en la biblioteca DoEasy (Parte 68): Clase de objeto de ventana de gráfico y clases de objetos de indicador en la ventana del gráfico
En este artículo, seguiremos desarrollando la clase de objeto de gráfico. Para ello, le añadiremos una lista de objetos de ventana de gráfico, en la que, a su vez, estarán disponibles las listas de indicadores colocados en ellos.
Consejos de un programador profesional (parte I): guardado, depuración y compilación de códigos. Trabajando con proyectos y logs Consejos de un programador profesional (parte I): guardado, depuración y compilación de códigos. Trabajando con proyectos y logs
Consejos de un programador profesional sobre métodos, técnicas y herramientas auxiliares para facilitar la programación.
Otras clases en la biblioteca DoEasy (Parte 67): Clase de objeto de gráfico Otras clases en la biblioteca DoEasy (Parte 67): Clase de objeto de gráfico
En este artículo, crearemos una clase de objeto de gráfico (de un gráfico de un instrumento comercial) y modificaremos la clase de colección de objetos de señal mql5 para que cada objeto de señal guardado en la colección actualice también todos sus parámetros al actualizarse la lista.