Descargar MetaTrader 5

Análisis avanzado de una cuenta de trading

11 mayo 2016, 12:58
Nefedov Kirill
0
610

Introducción

Este artículo aborda el sistema de análisis del funcionamiento de un sistema de trading automatizado mediante el script MQLab™ Graphic Report.

El artículo tiene tres objetivos:

  • Mostrar las ventajas de los resultados de este análisis en comparación con el informe estándar del terminal de MetaTrader 4.
  • Describir los métodos de análisis para determinar todos los parámetros del trading.
  • Sacar las conclusiones sobre la mejora del trading después de revisar en detalle el informe obtenido.

Para el análisis he utilizado una de mis más prometedoras estrategias de trading. Puesto que es improbables que el Asesor Experto que funciona en una cuenta demo (de prueba) sea utilizado por el público en general, no voy a abordar las estrategias de trading en este artículo. Además, se han eliminado algunas partes de los informes publicados y se han ordenado las transacciones de manera que no se puedan desvelar los métodos del trading.

Cada copia del Asesor Experto funciona con su propio par de divisas y su propia configuración, por lo que es imposible evaluar y entender todos los detalles de las transacciones realizadas mediante las herramientas habituales del terminal de MetaTrader 4. Hacen falta sistemas de análisis más avanzados para entender lo que está sucediendo.

Planteamiento del problema:

1. Analizar el funcionamiento de los Asesores Expertos en una cuenta de trading.

2. Identificar los parámetros que afectan negativamente el funcionamiento de los Asesores Expertos, así como la rentabilidad conjunta o de cada par de divisas por separado.

3. Encontrar los patrones que afectan la rentabilidad, las disminuciones, las previsiones, etc.

4. Encontrar la mejor combinación de pares de divisas para trabajar con ella posteriormente.

5. Generar un listado de posibles mejoras en el funcionamiento del sistema del Asesor Experto.


Motivos y requisitos previos para generar un informe ampliado

A partir de la versión MetaTrader 3, los traders ya pueden participar en el cambio de divisas internacionales sin salir de casa.

wikipedia.org
FOREX es la abreviatura del término inglés FOReign EXchange.
El término Forex hace referencia al cambio de divisas libremente convertibles, y no a todas las transacciones de cambio de divisas. En general, se usa la frase "Mercado Forex" para hacer hincapié en el principio del mercado (en lugar del administrativo) para la generación de cotizaciones en el mercado. Dependiendo de los objetivos, las operaciones del mercado Forex pueden ser de tipo trading, especulativo, de cobertura o de regulación (intervenciones de los bancos centrales en materia de divisas).

Además, el término Forex se refiere a menudo al trading puramente especulativo de divisas a través de los bancos comerciales o centros de negociación e implicando el apalancamiento, es decir, el trading de margen.

Con el desarrollo y la transición a la plataforma MetaTrader 4, es posible ahora realizar transacciones de un modo totalmente automatizado las 24 horas del día.

Puesto que los terminales de ambas versiones permiten a los usuarios llevar a cabo sus transacciones con varios pares de divisas en la misma cuenta, las estadísticas del trading son comunes a toda la cuenta. Los desarrolladores no han proporcionado las herramientas técnicas para el análisis de las transacciones llevadas a cabo con un par de divisas determinado o con un conjunto de pares de divisas. Las estadísticas de ejecución siguen siendo las mismas desde la tercera generación del terminal. Se espera que el informe del próximo terminal de MetaTrader 5 sea mejor y que incluya más detalles y mayor escalabilidad.

Durante los últimos 3 años, aparecieron muchas estrategias de trading automatizado (sistemas de trading automatizado, Asesores Expertos, robots de trading, etc.) en Internet y se organizaron 3 campeonatos internacionales, pero los métodos de análisis no han cambiado mucho. Se usaron estadísticas más detalladas en los campeonatos, pero no se pueden utilizar ni en nuestras cuentas de trading ni en las de otros traders.

En mi opinión, la evaluación de los parámetros de trading de los Asesores Expertos que se venden por Internet es la menos eficiente. El foro también está lleno de soluciones milagrosas. Sus desarrolladores están convencidos de que sus estrategias de trading son rentables y muchos de los usuarios que estudian los informes publicados empiezan a inundar los temas del foro.

La cuarta razón de generación de informes son los inversores. A mi juicio, estas personas carecen prácticamente de cualquier tipo datos analíticos sobre las operaciones de trading llevadas a cabo en una cuenta demo o cualquier otro tipo de cuenta. Un inversor no es capaz de evaluar el funcionamiento del sistema al máximo, incluso cuando tiene acceso a la cuenta que quiere. La mayoría de estas inversiones acaban con pérdidas.

Teniendo en cuenta este aspecto, me he propuesto la tarea de desarrollar un informe más detallado y versátil. El trabajo para mejorar su contenido sigue en marcha, pero les voy a mostrar sus características y métodos de aplicación actuales.

Características del informe ampliado

El informe ampliado incluye todos los parámetros del informe estándar. Se han tomado las fórmulas para el cálculo de la fuente original. La siguiente tabla muestra las novedades implementadas en el informe ampliado:


El informe detallado es un archivo HTML. Incluye todos los parámetros del informe estándar, además de otros:

  • Profit (pips)
  • Summ ($) = Profit ($) + Swap
  • Risk factor (%)
  • Profit factor
  • Avg profit factor
  • Expected payoff
  • Avg. Expected payoff
  • Balance
  • Comment

Se presenta la parte gráfica del informe en forma de gráficos dinámicos Flash, gráficos y diagramas circulares.
El informe incluye los siguientes elementos gráficos.

  • Balance week
  • Balance day
  • Order - Deposit Balance
  • Number of characters
  • Count win/loss dynamics
  • Order lot & Profit Pips & Risk factor %
  • Profit ($) & Summ ($)
  • Profit factor & AVG. Profit factor





  • El gráfico Balance week muestra las ganancias o las pérdidas semanales mediante la suma de las posiciones rentables y las que generan pérdidas.
  • El gráfico Balance day muestra las ganancias o las pérdidas diarias mediante la suma de las posiciones rentables y las que generan pérdidas.
  • Order - Deposit Balance muestra las ganancias o las pérdidas de cada transacción.

El diagrama circular Number of characters muestra el número de órdenes cerradas por cada par de divisas. Se asigna un color a cada par y se muestran los valores más altos como una extensión del gráfico.






El gráfico de columna Count win/loss dynamics muestra el número de transacciones rentables y las que generan pérdidas por el tipo de orden para un par de divisas.


Creación automática de los archivos XML para generar los gráficos. Se guardan los archivos en el disco duro de su ordenador.






El sistema de comprobaciones y avisos. Este sistema evita la configuración equivocada de los parámetros y avisa cuando los datos son incorrectos.


Informe del sistema de filtrado. Se puede generar este informe de distintas maneras mediante la aplicación de varios filtros. Como resultado del filtrado, obtenemos exactamente el informe que necesitamos para el análisis.






Filtro de fecha y hora. Este filtro es necesario si quiere generar un informe para una fecha u hora determinada. El informe incluye todas las órdenes cerradas, abiertas y pendientes cuyas condiciones de apertura y cierre coinciden con los ajustes de tiempo establecidos.


Filtro de comentarios de órdenes. Esta función filtra el informe mediante un parámetro específico y añade las transacciones cuyos comentarios coinciden con los comentarios indicados en los ajustes del script.






El filtro del número MAGIC es necesario para separar el trading automatizado del manual o el trading automatizado con varios Asesores Expertos en una sola cuenta. Este informe incluye únicamente las posiciones y órdenes cuyo parámetro MAGIC coincide con aquel establecido en los ajustes del script.


Función para mostrar/ocultar las órdenes pendientes en el informe. No hace falta mostrar siempre las órdenes pendientes en el informe puesto que no llevan ningún dato relevante para el análisis y pueden revelar el funcionamiento del Asesor Experto o la lógica del trading manual a terceros.






Función para mostrar/ocultar las posiciones abiertas en el informe. No siempre hace falta mostrar las órdenes abiertas en el informe al los inversores u otras personas.


Función para mostrar/ocultar las posiciones sin ganancias en el informe. Si el historial de las transacciones incluye órdenes con beneficio cero sería mejor eliminarlas del informe ya que no contienen ningún dato importante y pueden ralentizar el cálculo de los datos como el factor de beneficio, las expectativas, etc.






Filtro para mostrar solamente las columnas necesarias. Este filtro es necesario para la representación compacta de la información, así como para ocultar las partes importantes de la estrategia de trading sin distorsionar los resultados.


Ordenación de las órdenes durante la generación del informe. Se puede ajustar mediante cualquier columna. Esta función permite interpretar el informe más rápidamente, además de ajustar los parámetros del informe mediante de una serie de parámetros, por ejemplo, mediante el tiempo de apertura y cierre, el par de divisas, el lote, etc. Se pueden almacenar las órdenes en el informe de modo que no se desvele la lógica de funcionamiento del Asesor Experto. Esto se refiere a las estrategias con múltiples divisas en las que se puede llevar a cabo la apertura en distintos pares de divisas mediante un parámetro determinado.






Cálculo de la duración de una orden. Este parámetro es muy importante para comprender los parámetros del Asesor Experto o el estilo del trading. Cuanto más larga es la duración de una orden, mayor es la probabilidad de que la precisión de las señales de entrada sea baja y que la orden se encuentre en un estado de pérdidas durante un tiempo muy largo. Si la duración es corta, significa que la estrategia está basada en el scalping y el pipsing. Esto puede llevar a veces al endurecimiento de las reglas de trading de por parte de los centros de negociación.


Cálculo en pips de la cuantía de las ganancias o pérdidas del par de divisas. Este parámetro proporciona una visión más amplia de los objetivos alcanzados por el Asesor Experto. Estos cálculos no dependen de la dinámica del lote, el apalancamiento, etc.


Análisis del funcionamiento del Asesor Experto

Como se mencionó antes, el Asesor Experto opera con cada par de divisas por separado al no existir reglas para múltiples divisas. Se optimiza cada par de divisas en la prueba de estrategias. Puesto que en la mayoría de los casos cualquier estrategia puede operar en casi cualquier par de divisas, se decidió probar el Asesor Experto con 22 pares de divisas. Se calculó el depósito inicial en base al número de pares de divisas multiplicado por 10 mil. El resultado es un depósito inicial de 220 000. Antes de iniciar la prueba hay que optimizar cada par de divisas en el intervalo de 1 mes.

Después de 2 meses de trading totalmente automatizado, hemos podido finalmente analizar los resultados. Se ha ejecutado MQLab™ Graphic Report en una cuenta demo y hemos obtenido los siguientes resultados.

Se puede descargar y analizar el informe completo. Es el archivo adjunto FULL_Report.zip (440.3 Kb)

Podemos ver a continuación 2 tablas comparativas de los informes estándar y ampliado.

Informe estándar (Standard report)

Gross Profit: 950 592,08 Gross Loss: -161 808,04 Total Net Profit: 788 784,04
Profit Factor: 5,87 Expected Payoff: 949,20

Absolute Drawdown: 0,00 Maximal Drawdown: 40 642.35 (4.26%) Relative Drawdown: 4.26% (40 642.35)
Total Trades: 831 Short Positions (won %): 221 (65.16 %) Long Positions (won %): 610 (81.15 %)


Profit Trades (% of total): 639 (76.90 %) Loss trades (% of total): 192 (23.10 %)
Largest
profit trade: 31 003,20 loss trade: -11 536,80
Average
profit trade: 1 487,62 loss trade: -842,75
Maximum
consecutive wins ($): 46 (74 627.29) consecutive losses ($): 11 (-2 050.92)
Maximal
consecutive profit (count): 115 265.49 (45) consecutive loss (count): -26 364.80 (4)
Average
consecutive wins: 9 consecutive losses: 3


Informe ampliado (Extended report)

Gross Profit: 950592,08 Gross Loss: -161808,04 Total Net Profit: 788784,04
Profit Factor: 5,87 Avg. profit factor: 1,77 Expected Payoff: 949,20
Absolute Drawdown: 0,00 Maximal Drawdown: 19084.09 (2.31%) Relative Drawdown: 2.67% (12866.40)
Total Trades: 831 Short Positions (won %): 221 (65.16 %) Long Positions (won %): 610 (81.15 %)


Profit Trades (% of total): 639 (76.90 %) Loss trades (% of total): 192 (23.10 %)
Largest
profit trade: 31003,20 loss trade: -11536,80
Average
profit trade: 1487,62 loss trade: -842,75
Maximum
consecutive wins ($): 57 (105530.75) consecutive losses ($): 8 (-764.64)
Maximal
consecutive profit (count): 107894,42 (28) consecutive loss (count): -11536,80 (1)
Average
consecutive wins: 6 consecutive losses: 1


Al comparar la dos tablas, podemos observar que algunos parámetros (Maximal Drawdown, Relative Drawdown, etc.) del informe ampliado no coinciden con los del informe estándar. Estos no son errores de generación del informe. Como se mencionó antes, se ordenan las posiciones cerradas en el informe sin desvelar la lógica de funcionamiento del Asesor Experto (en los ajustes del script).

Se usa el siguiente criterio para ordenar el informe ampliado:

1. En el momento de apertura, en orden ascendiente.
2. En el momento de cierre, en orden descendiente.

Esta funcionalidad no está disponible en el informe estándar.

Por supuesto, se calculan todos los parámetros en base a esta modalidad de ordenación.

Además, aparece un nuevo parámetro en el informe ampliado; Avg. profit factor (cálculo del factor promedio de beneficio). Creo que los datos que proporciona contienen más información y son más estables en comparación con el parámetro Profit Factor (factor de beneficio) del informe estándar. Dependiendo del beneficio o la pérdida, Profit Factor puede cambiar su valor en un rango bastante amplio. Siendo uno de los parámetros más importantes del informe, se calcula Profit Factor para todas las posiciones cerradas y se muestra en una columna separada de la tabla del informe extendido. Se calcula Avg. profit factor y se muestra de la misma manera. Con estos datos podemos crear un gráfico comparativo que muestra de forma visual el desarrollo del trading en la cuenta. Se puede observar cómo se distorsiona esta figura al producirse las transacciones.

Un pequeño inciso.
Puesto que el sitio no es compatible con la inserción de animaciones Flash externas y tampoco se pueden subir al servidor, se han sustituido los gráficos y los diagramas circulares en este archivo por imágenes estáticas. Al visualizar el informe completo, se puede ver el gráfico dinámico entero.

El informe extendido dispone de un gráfico comparativo de los parámetros Profit Factor y Avg. profit factor.


Profit factor y Avg. profit factor

Moviendo el control deslizante horizontal, podemos observar visualmente donde han habido subidas y bajadas del parámetro Profit Factor, la línea Avg. profit factor es más suave. Los puntos representan los valores de las transacciones.

Desde mi propia experiencia, puedo decir que el parámetro Profit Factor supera siempre el parámetro Avg. profit factor. En este caso, se considera que el sistema es más rentable y estable. Si Profit Factor es inferior a Avg. profit factor, hay que dar la voz de alarma y examinar en detalle lo que ha podido pasar.

En mi caso, el factor de beneficio cayó por debajo del promedio en la transacción 376, es decir casi tres semanas después de iniciar la prueba. Al analizar detalladamente el informe, me quedó claro que hay que optimizar el sistema de trading con nuevos datos aproximadamente cada dos semanas. En este caso, la eficiencia de los parámetros Profit Factor y Avg. profit factor se mantendría a un nivel alto.

Así que hemos averiguado que hay que optimizar el Asesor Experto por lo menos una vez cada dos semanas. Por consiguiente, surgieron otras cuestiones:

  • ¿Qué par de divisas hay que optimizar?
  • ¿Cuántos pares de divisas participan en el trading?
  • ¿Qué pares de divisas son rentables y cuáles generan pérdidas?
  • etc.

Para responder a estas preguntas, se han añadido unos diagramas gráficos al informe ampliado. El diagrama circular muestra el número de transacciones en cada par de divisas, mientras que el segundo diagrama muestra las estadísticas de las operaciones por el tipo de orden con el cálculo de las transacciones rentables y las que generan pérdidas en cada par de divisas.

Analizando el diagrama circular Numbers of characters, podemos detectar rápidamente los pares de divisas con el menor número de transacciones. Además, los pares de divisas con el mayor número de transacciones están representadas en el diagrama mediante "porciones" extendidas.

Después de seleccionar los pares con el menor número de transacciones del diagrama circular, a saber, EURCAD, CADCHF, CHFJPY y GBPJPY, analizamos las estadísticas de los tipos de transacciones en el diagrama Count win / lose dynamics. En este diagrama se puede ver que aparte de llevarse a cabo pocas transacciones en estos pares de divisas, las transacciones con beneficio están compensadas por el mismo número de transacciones perdedoras. Es decir que este par de divisas no es rentable y que seguramente genera pérdidas.

La separación de estas operaciones por el tipo de transacción y por el cálculo es necesaria para determinar en qué dirección opera mejor el Asesor Experto con determinados parámetros. Si los parámetros para las posiciones Long y Short son distintos, es entonces más fácil configurar o desactivar el trading en una dirección determinada u optimizar los parámetros de compra o venta después de recibir estas estadísticas.

Seguimos con el análisis del diagrama Count win/lose dynamics y establecemos 7 pares de divisas en una sola dirección: AUDUSD, CADJPY, USDJPY, EURGBP, GBPJPY, EURNZD, NZDCHF y 3 pares de divisas más USDCHF, CADCHF, EURCAD con una relación de tipos de órdenes bastante grande. Es muy difícil detectar este hecho en el informe estándar. He agrupado todos estos pares en un grupo con una misma dirección de trading. Las razones para trabajar de esta forma pueden depender de la estrategia de trading o de la dinámica del mercado. En otras palabras, podemos examinar el gráfico del par de divisas para determinar los motivos de trabajar así y ver todo en detalle. No voy a hacerlo en este artículo. Es básicamente un trabajo manual y cada trader puede hacerlo por su cuenta.

Por lo tanto, hemos sido capaces de identificar el número de pares de divisas cuya efectividad está en duda. La principal duda es el valor de la disminución durante la prueba. Maximal Drawdown: 2,31%. Podemos suponer que durante el trading se utilizaron pares de divisas que reducen su rentabilidad u ocasionan pérdidas, haciendo más rentable el trabajo con otros pares de divisas. Tenemos que analizar cada par por separado para determinar estos pares de divisas y excluirlos del trading. El informe estándar no ofrece esta posibilidad y es por ello que he desarrollado el método de filtrado de pares de divisas.

Mediante el script de filtrado de pares de divisas, podemos obtener un informe detallado de cada par, incluidos los cálculos de su rentabilidad, disminución, previsión matemática, etc. De la misma manera, se generan los diagramas basados en los datos filtrados.

Un pequeño inciso:
Al script MQLab™ Graphic Report le precede una serie de ajustes que nos permiten no sólo analizar las transacciones de un par de divisas determinado, sino también filtrarlas mediante el número MAGIC y mediante los comentarios de las órdenes. Estos filtros pueden dividir la cuenta fácilmente en base a los pares de divisas, además del tipo de trading (manual o automatizado) o analizar únicamente las órdenes que contienen unos comentarios determinados, por ejemplo, las condiciones de entrada al mercado. También se puede combinar el número MAGIC, el par de divisas y los comentarios de la posición u orden.

Se adjuntan al artículo los informes completos de cada par de divisas: Records_of_individual_currencies.part1.rar (3.8 Mb) y Records_of_individual_currencies.part2.rar (3.7 Mb)

Los resultados obtenidos están resumidos en esta tabla:


Gross Profit
Gross Loss
Total
Net Profit
Profit
Factor
Avg.
profit factor
Exp.
Payoff
Abs.
Drawd.
Max.
Drawd.
Total
Trades
Short
Positions
Long
Positions
GBPCAD
61664,17
-13150,13
48514,04
4,69
1,30
703,10
0,00
11881,17
69
22
47
GBPCHF
47115,25
-1913,54
45201,71
24,62
5,47
1027,31
0,00
1207,25
44
16
28
GBPUSD
114853,31
-49384,70
65468,61
2,33
0,46
1190,34
0,00
21779,60
55
25
30
AUDUSD
61227,83
-3446,00
57781,83
17,77
1,97
1444,55
0,00
3203,00
40
0
40
CADJPY
28850,51
-2051,31
26799,20
14,06
4,69
837,48
989,40
1810,67
32
0
32
EURUSD
100910,61
-20189,97
80720,64
5,00
2,60
2124,23
9366,76
11961,84
38
17
21
EURJPY
28099,81
-2606,26
25493,55
10,78
2,70
509,87
0,00
1847,96
50
10
40
EURCHF
35744,67
-1843,92
33900,75
19,39
6,68
869,25
0,00
873,09
39
18
21
EURAUD
64700,63
-8901,46
55799,17
7,27
3,63
1328,55
387,07
3924,49
42
11
31
GOLD
32420,35
-7822,52
24597,83
4,14
0,60
390,44
0,00
3622,96
63
19
44
USDCHF
36319,19
-12784,30
23534,89
2,84
1,67
871,66
1786,53
11316,21
27
3
24
USDJPY
36685,74
-989,33
35696,41
37,08
17,45
1427,86
772,90
963,67
25
0
25
AUDCHF
30933,15
-8692,07
22241,08
3,56
1,37
411,87
208,19
4935,03
54
22
32
EURGBP
35672,84
-5011,78
30661,06
7,12
3,56
1022,04
0,00
2414,87
30
0
30
AUDJPY
46455,59
-937,53
45518,06
49,55
8,74
1137,95
0,00
853,87
40
6
34
GBPJPY
4799,64
-181,80
4617,84
26,40
5,28
384,82
0,00
181,80
12
0
12
AUDCAD
63144,23
-4970,32
58173,91
12,70
5,08
1385,09
263,21
3734,90
42
15
27
CHFJPY
6878,05
-1119,51
5758,54
6,14
2,46
411,32
653,61
755,33
14
7
7
CADCHF
2367,64
-57,69
2309,95
41,04
9,12
210,00
0,00
33,36
11
2
9
GBPAUD
93826,55
-15290,74
78535,81
6,14
2,79
1227,12
513,66
11497,83
64
19
45
EURCAD
2524,46
-463,16
2061,30
5,45
4,36
229,03
124,98
311,34
9
8
1
EURNZD
15388,79
0,00
15388,79
0,00
0,00
512,96
0,00
0,00
30
0
30
NZDCHF
9,07
0,00
9,07
0,00
0,00
9,07
0,00
0,00
1
1
0
Average value
41330,09
-7035,13
34294,96
13,39
4
855,04
655,06
4309,14
36,13
10
27

Después de elaborar la tabla y calcular el valor de cada parámetro, he introducido un "umbral" que tiene que ser superior a los parámetros, según mi criterio. Si los resultados obtenidos son inferiores al umbral, el trading en este par de divisas es de baja rentabilidad o genera pérdidas.

Vamos a dividir los pares de divisas en dos grupos. Los parámetros principales serían Gross Profit y Total Trades


Trading bueno:


Gross Profit
Gross Loss
Total
Net Profit
Profit
Factor
Avg.
profit factor
Exp.
Payoff
Abs.
Drawd.
Max.
Drawd.
Total
Trades
Short
Positions
Long
Positions
GBPCAD
61664,17
-13150,13
48514,04
4,69
1,30
703,10
0,00
11881,17
69
22
47
GBPCHF
47115,25
-1913,54
45201,71
24,62
5,47
1027,31
0,00
1207,25
44
16
28
GBPUSD
114853,31
-49384,70
65468,61
2,33
0,46
1190,34
0,00
21779,60
55
25
30
AUDUSD
61227,83
-3446,00
57781,83
17,77
1,97
1444,55
0,00
3203,00
40
0
40
EURUSD
100910,61
-20189,97
80720,64
5,00
2,60
2124,23
9366,76
11961,84
38
17
21
EURAUD
64700,63
-8901,46
55799,17
7,27
3,63
1328,55
387,07
3924,49
42
11
31
AUDJPY
46455,59
-937,53
45518,06
49,55
8,74
1137,95
0,00
853,87
40
6
34
AUDCAD
63144,23
-4970,32
58173,91
12,70
5,08
1385,09
263,21
3734,90
42
15
27
GBPAUD
93826,55
-15290,74
78535,81
6,14
2,79
1227,12
513,66
11497,83
64
19
45

Se puede descargar y analizar el informe completo. Es el archivo adjunto Good_trade_Report.zip (402.9 Kb)

La tabla incluye los pares de divisas con los parámetros Gross Profit y Total Trades por encima del valor promedio. Estos son los pares de divisas más rentables en la prueba. En otras palabras, es la locomotora de la rentabilidad.


Trading medio:


Gross Profit
Gross Loss
Total
Net Profit
Profit
Factor
Avg.
profit factor
Exp.
Payoff
Abs.
Drawd.
Max.
Drawd.
Total
Trades
Short
Positions
Long
Positions
CADJPY
28850,51
-2051,31
26799,20
14,06
4,69
837,48
989,40
1810,67
32
0
32
EURJPY
28099,81
-2606,26
25493,55
10,78
2,70
509,87
0,00
1847,96
50
10
40
EURCHF
35744,67
-1843,92
33900,75
19,39
6,68
869,25
0,00
873,09
39
18
21
GOLD
32420,35
-7822,52
24597,83
4,14
0,60
390,44
0,00
3622,96
63
19
44
USDCHF
36319,19
-12784,30
23534,89
2,84
1,67
871,66
1786,53
11316,21
27
3
24
USDJPY
36685,74
-989,33
35696,41
37,08
17,45
1427,86
772,90
963,67
25
0
25
AUDCHF
30933,15
-8692,07
22241,08
3,56
1,37
411,87
208,19
4935,03
54
22
32
EURGBP
35672,84
-5011,78
30661,06
7,12
3,56
1022,04
0,00
2414,87
30
0
30
EURNZD
15388,79
0,00
15388,79
0,00
0,00
512,96
0,00
0,00
30
0
30

Se puede descargar y analizar el informe completo. Es el archivo adjunto Average_trade_Report.zip (395.7 Kb)

Se llevó a cabo la selección en esta tabla en base al siguiente principio:
1. Gross Profit < Gross Profit valor promedio
2. Gross Profit > (Gross Profit valor promedio / 2)

El único par que no cumple esta condición es EURNZD. Está incluido en esta tabla ya que este par no tiene ni una sola transacción con pérdidas.


Trading malo:


Gross Profit
Gross Loss
Total
Net Profit
Profit
Factor
Avg.
profit factor
Exp.
Payoff
Abs.
Drawd.
Max.
Drawd.
Total
Trades
Short
Positions
Long
Positions
GBPJPY
4799,64
-181,80
4617,84
26,40
5,28
384,82
0,00
181,80
12
0
12
CHFJPY
6878,05
-1119,51
5758,54
6,14
2,46
411,32
653,61
755,33
14
7
7
CADCHF
2367,64
-57,69
2309,95
41,04
9,12
210,00
0,00
33,36
11
2
9
EURCAD
2524,46
-463,16
2061,30
5,45
4,36
229,03
124,98
311,34
9
8
1
NZDCHF
9,07
0,00
9,07
0,00
0,00
9,07
0,00
0,00
1
1
0

Se puede descargar y analizar el informe completo. Es el archivo adjunto Bad_Trade_Report.zip (364.7 Kb)

Este grupo de pares de divisas representa un freno para nuestra actividad de trading. Impide a la locomotora de nuestros pares más rentables ir a toda máquina.

Después de dividir todos los símbolos en grupos, sería interesante saber cuáles serían los resultados del trading para cada grupo si se hubiera probado cada grupo por separado. Para ello, tenemos que utilizar el filtrado y agrupar por pares de divisas.

Trading bueno:

Gross Profit: 653898,17 Gross Loss: -118184,39 Total Net Profit: 535713,78
Profit Factor: 5,53 Avg. profit factor: 1,68 Expected Payoff: 1234,36
Absolute Drawdown: 0,00 Maximal Drawdown: 19168,35 (2,92%) Relative Drawdown: 3,81% (10933,02)
Total Trades: 434 Short Positions (won %): 131 (66,41 %) Long Positions (won %): 303 (81,19 %)


Profit Trades (% of total): 333 (76,73 %) Loss trades (% of total): 101 (23,27 %)
Largest
profit trade: 31003,20 loss trade: -11536,80
Average
profit trade: 1963,66 loss trade: -1170,14
Maximum
consecutive wins ($): 26 (74353,47) consecutive losses ($): 8 (-764,64)
Maximal
consecutive profit (count): 98581,16 (19) consecutive loss (count): -11536,80 (1)
Average
consecutive wins: 6 consecutive losses: 1

Trading medio:

Gross Profit: 312961,61 Gross Loss: -52744,84 Total Net Profit: 260216,77
Profit Factor: 5,93 Avg. profit factor: 1,77 Expected Payoff: 712,92
Absolute Drawdown: 0,00 Maximal Drawdown: 7621,15 (1,98%) Relative Drawdown: 1,98% (7621,15)
Total Trades: 365 Short Positions (won %): 74 (66,22 %) Long Positions (won %): 291 (79,73 %)


Profit Trades (% of total): 281 (76,99 %) Loss trades (% of total): 84 (23,01 %)
Largest
profit trade: 23814,20 loss trade: -2877,67
Average
profit trade: 1113,74 loss trade: -627,91
Maximum
consecutive wins ($): 32 (67689,94) consecutive losses ($): 12 (-7482,88)
Maximal
consecutive profit (count): 67689,94 (32) consecutive loss (count): -7482,88 (12)
Average
consecutive wins: 6 consecutive losses: 2

Trading malo:

Gross Profit: 16578,86 Gross Loss: -1822,16 Total Net Profit: 14756,70
Profit Factor: 9,10 Avg. profit factor: 3,12 Expected Payoff: 313,97
Absolute Drawdown: 0,00 Maximal Drawdown: 388,36 (0,17%) Relative Drawdown: 0,17% (388,36)
Total Trades: 47 Short Positions (won %): 18 (55,56 %) Long Positions (won %): 29 (86,21 %)


Profit Trades (% of total): 35 (74,47 %) Loss trades (% of total): 12 (25,53 %)
Largest
profit trade: 3348,53 loss trade: -388,36
Average
profit trade: 473,68 loss trade: -151,85
Maximum
consecutive wins ($): 10 (7119,78) consecutive losses ($): 2 (-364,18)
Maximal
consecutive profit (count): 7119,78 (10) consecutive loss (count): -388,36 (1)
Average
consecutive wins: 3 consecutive losses: 1

A partir de estos resultados, podemos observar que los pares de divisas del "Trading bueno" no influyen mucho en la rentabilidad. Se puede excluir este grupo de pares de divisas de las pruebas.

Vamos a juntar los grupos "Trading bueno" y "Trading medio" en el mismo informe.

Se puede descargar y analizar el informe completo de los dos grupos. Es el archivo adjunto Good_Average_trade_Report.zip (437.4 Kb)

Gross Profit: 966859,78 Gross Loss: -170929,23 Total Net Profit: 795930,55
Profit Factor: 5,66 Avg. profit factor: 1,70 Expected Payoff: 996,16
Absolute Drawdown: 0,00 Maximal Drawdown: 19084,09 (2,33%) Relative Drawdown: 2,70% (12866,40)
Total Trades: 799 Short Positions (won %): 205 (66,34 %) Long Positions (won %): 594 (80,47 %)


Profit Trades (% of total): 614 (76,85 %) Loss trades (% of total): 185 (23,15 %)
Largest
profit trade: 31003,20 loss trade: -11536,80
Average
profit trade: 1574,69 loss trade: -923,94
Maximum
consecutive wins ($): 37 (67514,27) consecutive losses ($): 8 (-764,64)
Maximal
consecutive profit (count): 108047,10 (19) consecutive loss (count): -11536,80 (1)
Average
consecutive wins: 6 consecutive losses: 2

Después de comparar los resultados obtenidos de los grupos juntos con las estadísticas del informe completo, podemos ver los siguientes parámetros.


Informe completo
Informe combinado
Gross Profit: 950592,08 966859,78
Gross Loss: -161808,04 -170929,23
Total Net Profit: 788784,04 795930,55
Profit Factor: 5,87 5,66
Avg. profit factor: 1,77 1,70
Expected Payoff: 949,20 996,16
Absolute Drawdown: 0,00 0,00
Maximal Drawdown: 19084,09 (2,31%) 19084,09 (2,33%)
Relative Drawdown: 2,67% (12866,40) 2,70% (12866,40)
Total Trades: 831 799
Short Positions (won %): 221 (65,16 %) 205 (66,34 %)
Long Positions (won %): 610 (81,15 %) 594 (80,47 %)
Profit Trades (% of total): 639 (76,90 %) 614 (76,85 %)
Loss trades (% of total): 192 (23,10 %) 185 (23,15 %)
Largest profit trade: 31003,20 31003,20
Largest loss trade: -11536,80 -11536,80
Average profit trade: 1487,62 1574,69
Average loss trade: -842,75 -923,94
Maximum consecutive wins ($): 57 (105530,75) 37 (67514,27)
Maximum consecutive losses ($): 8 (-764,64) 8 (-764,64)
Maximal consecutive profit (count): 107894,42 (28) 108047,10 (19)
Maximal consecutive loss (count): -11536,80 (1) -11536,80 (1)
Average consecutive wins: 6 6
Average consecutive losses: 1 2

Podemos ver a partir de la tabla que algunos parámetros han aumentado mientras que otros han disminuido, pero no se observan grandes diferencias. Esto se debe al hecho de que el grupo "Trading malo" no genera pérdidas. Se pueden observar aquí los resultados de un caso especial en el que cada par de divisas incrementa la rentabilidad global.

¿Qué más puedo hacer para aumentar la rentabilidad y estabilidad de este método de trading? En base a los resultados obtenidos y los informes de cada par de divisas, he llegado a la conclusión de que falta un pequeño detalle para conseguir un sistema de trading más rentable. Se trata de las condiciones de entrada al mercado en base a otros pares de divisas.

Puesto que se opera en cada par de divisas por separado y se lleva a cabo la optimización para cada par, los ajustes son distintos para cada par. Esto quiere decir que los pares de divisas van a entrar al mercado en distintos momentos y direcciones. Pero después de definir los pares principales, los podemos unir a ellos.

Creación del sistema de filtrado de transacciones

Nadie había desarrollado o probado antes el sistema de filtrado mencionado en este artículo. Así que lo vamos a abordar como una teoría que voy a describir en detalle.

Vamos a crear la tabla de balance basada en las estadísticas del grupo "Trading bueno" para cada par de divisas.

Puesto que este grupo contiene 9 pares de divisas, vamos a asignar de 1 a 9 puntos a cada uno de ellos. El parámetro más bajo de la columna recibe 1 punto, el más alto recibe 9 puntos.

Si coinciden los parámetros de 2 pares o más, se añade el mismo número de puntos.

Abs. Drawd. y Max. Drawd. se comparan las columnas en orden inverso.


P.
Gross
Profit
P.
Gross
Loss
P.
Total Net
Profit
P.
Profit
Factor
P.
Avg. profit
factor
P.
Exp.
Payoff
P.
Abs.
Drawd.
P.
Max.
Drawd.
P.
Total
Trades
P.
Short
Positions
P.
Long
Positions
GBPCAD
4
61664,17
4
-13150,13
3
48514,04
2
4,69
2
1,30
1
703,10
5
0,00
3
11881,17
7
69
8
22
9
47
GBPCHF
2
47115,25
8
-1913,54
1
45201,71
8
24,62
8
5,47
2
1027,31
5
0,00
8
1207,25
4
44
5
16
3
28
GBPUSD
9
114853,31
1
-49384,70
7
65468,61
1
2,33
1
0,46
4
1190,34
5
0,00
1
21779,60
5
55
9
25
4
30
AUDUSD
3
61227,83
7
-3446,00
5
57781,83
7
17,77
3
1,97
8
1444,55
5
0,00
7
3203,00
2
40
1
0
7
40
EURUSD
8
100910,61
2
-20189,97
9
80720,64
3
5,00
4
2,60
9
2124,23
1
9366,76
2
11961,84
1
38
6
17
1
21
EURAUD
6
64700,63
5
-8901,46
4
55799,17
5
7,27
6
3,63
6
1328,55
3
387,07
5
3924,49
3
42
3
11
5
31
AUDJPY
1
46455,59
9
-937,53
2
45518,06
9
49,55
9
8,74
3
1137,95
5
0,00
9
853,87
2
40
2
6
6
34
AUDCAD
5
63144,23
6
-4970,32
6
58173,91
6
12,70
7
5,08
7
1385,09
4
263,21
6
3734,90
3
42
4
15
2
27
GBPAUD
7
93826,55
3
-15290,74
8
78535,81
4
6,14
5
2,79
5
1227,12
2
513,66
4
11497,83
6
64
7
19
8
45


Vamos a sumar los puntos obtenidos por cada par de divisas.

Par de divisas Puntos obtenidos
Resultado
GBPCAD 4 + 4 + 3 + 2 + 2 + 1 + 5 + 3 + 7 + 8 + 9
48
GBPCHF 2 + 8 + 1 + 8 + 8 + 2 + 5 + 8 + 4 + 5 + 3
54
GBPUSD 9 + 1 + 7 + 1 + 1 + 4 + 5 + 1 + 5 + 9 + 4
47
AUDUSD 3 + 7 + 5 + 7 + 3 + 8 + 5 + 7 + 2 + 1 + 7
55
EURUSD 8 + 2 + 9 + 3 + 4 + 9 + 1 + 2 + 1 + 6 + 1
46
EURAUD 6 + 5 + 4 + 5 + 6 + 6 + 3 + 5 + 3 + 3 + 5
51
AUDJPY 1 + 9 + 2 + 9 + 9 + 3 + 5 + 9 + 2 + 2 + 6
57
AUDCAD 5 + 6 + 6 + 6 + 7 + 7 + 4 + 6 + 3 + 4 + 2
56
GBPAUD 7 + 3 + 8 + 4 + 5 + 5 + 2 + 4 + 6 + 7 + 8
59

Ahora vamos a determinar el par de divisas más equilibrado.

Vamos a definir ahora el balance de las divisas de base y de cotización por separado. Para ello, tenemos que elaborar la siguiente tabla con las divisas de base y de cotización separadas.

Par de divisas Divisa de base Divisa de cotización
GBPAUD GBP AUD
AUDJPY AUD JPY
AUDCAD AUD CAD
AUDUSD AUD USD
GBPCHF GBP CHF
EURAUD EUR AUD
GBPCAD GBP CAD
GBPUSD GBP USD
EURUSD EUR USD

Vamos a calcular el número de repeticiones de las divisas de base y de cotización y crear la siguiente tabla.


GBP AUD EUR JPY CAD USD CHF
Divisa de base 4
3
2




Divisa de cotización
2

1
2
3
1

Después de sumar Short Positions y Long Positions para todos los pares de divisas de los grupos "Trading bueno" y "Trading medio", obtenemos el siguiente resultado:

Short Positions = 203 transacciones

Long Positions = 581 transacciones

Puesto que hay muchas transacciones en ambas direcciones, trataremos de tener en cuenta todos los casos de filtrado.

Vamos a desarrollar el sistema de filtrado de transacciones que impedirá la apertura de una dirección en la dirección opuesta. Se basa este sistema en la divisa de base para Short Positions y Long Positions en todos los pares de divisas.


No abrir
Si una transacción Short Positions está activa en el siguiente símbolo
Si una transacción Long Positions está activa en el siguiente símbolo

GBPCAD

Long Positions: GBPCHF, GBPUSD, GBPJPY, GBPAUD
EURGBP
Short Positions:
EURGBP
GBPCHF, GBPUSD, GBPJPY, GBPAUD
 

GBPCHF

Long Positions:
GBPCAD, GBPUSD, GBPJPY, GBPAUD
EURGBP
Short Positions:
EURGBP
GBPCAD, GBPUSD, GBPJPY, GBPAUD
 

GBPUSD

Long Positions:
GBPCAD, GBPCHF, GBPJPY, GBPAUD
EURGBP
Short Positions:
EURGBP
GBPCAD, GBPCHF, GBPJPY, GBPAUD  

AUDUSD

Long Positions:
AUDCHF, AUDJPY, AUDCAD
EURAUD, GBPAUD
Short Positions:
EURAUD, GBPAUD
AUDCHF, AUDJPY, AUDCAD  

CADJPY

Long Positions:
CADCHF
GBPCAD, AUDCAD, EURCAD
Short Positions:
GBPCAD, AUDCAD, EURCAD
CADCHF  

EURUSD

Long Positions:
EURJPY, EURCHF, EURAUD, EURGBP, EURCAD, EURNZD

Short Positions:

EURJPY, EURCHF, EURAUD, EURGBP, EURCAD, EURNZD  

EURJPY

Long Positions:
EURUSD, EURCHF, EURAUD, EURGBP, EURCAD, EURNZD

Short Positions:

EURUSD, EURCHF, EURAUD, EURGBP, EURCAD, EURNZD  

EURCHF

Long Positions:
EURUSD, EURJPY, EURAUD, EURGBP, EURCAD, EURNZD

Short Positions:

EURUSD, EURJPY, EURAUD, EURGBP, EURCAD, EURNZD  

EURAUD

Long Positions:
EURUSD, EURJPY, EURCHF, EURGBP, EURCAD, EURNZD

Short Positions:

EURUSD, EURJPY, EURCHF, EURGBP, EURCAD, EURNZD  

USDCHF

Long Positions:
USDJPY
GBPUSD, AUDUSD, EURUSD
Short Positions:
GBPUSD, AUDUSD, EURUSD
USDJPY  

USDJPY

Long Positions:
USDCHF
GBPUSD, AUDUSD, EURUSD
Short Positions:
GBPUSD, AUDUSD, EURUSD
USDCHF  

AUDCHF

Long Positions:
AUDUSD, AUDJPY, AUDCAD
EURAUD, GBPAUD
Short Positions:
EURAUD, GBPAUD
AUDUSD, AUDJPY, AUDCAD  

EURGBP

Long Positions:
EURUSD, EURJPY, EURCHF, EURAUD, EURCAD, EURNZD

Short Positions:

EURUSD, EURJPY, EURCHF, EURAUD, EURCAD, EURNZD  

AUDJPY

Long Positions:
AUDUSD, AUDCHF, AUDCAD
EURAUD, GBPAUD
Short Positions:
EURAUD, GBPAUD
AUDUSD, AUDCHF, AUDCAD  

GBPJPY

Long Positions:
GBPCAD, GBPCHF, GBPUSD, GBPAUD
EURGBP
Short Positions:
EURGBP
GBPCAD, GBPCHF, GBPUSD, GBPAUD  

AUDCAD

Long Positions:
AUDUSD, AUDCHF, AUDJPY
EURAUD, GBPAUD
Short Positions:
EURAUD, GBPAUD
AUDUSD, AUDCHF, AUDJPY  

CHFJPY

Long Positions:

GBPCHF, EURCHF, USDCHF, AUDCHF, CADCHF, NZDCHF
Short Positions:
GBPCHF, EURCHF, USDCHF, AUDCHF, CADCHF, NZDCHF

 

CADCHF

Long Positions:
CADJPY
GBPCAD, AUDCAD, EURCAD
Short Positions:
GBPCAD, AUDCAD, EURCAD
CADJPY  

GBPAUD

Long Positions:
GBPCAD, GBPCHF, GBPUSD, GBPJPY
EURGBP
Short Positions:
EURGBP
GBPCAD, GBPCHF, GBPUSD, GBPJPY  

EURCAD

Long Positions:
EURUSD, EURJPY, EURCHF, EURAUD, EURGBP, EURNZD

Short Positions:

EURUSD, EURJPY, EURCHF, EURAUD, EURGBP, EURNZD  

EURNZD

Long Positions:
EURUSD, EURJPY, EURCHF, EURAUD, EURGBP, EURCAD

Short Positions:

EURUSD, EURJPY, EURCHF, EURAUD, EURGBP, EURCAD  


Vamos a desarrollar el sistema de filtrado de transacciones que impedirá la apertura de una dirección en la dirección opuesta. Se basa este sistema en la divisa de cotización para Short Positions y Long Positions en todos los pares de divisas.


No abrir
Si una transacción Short Positions está activa en el siguiente símbolo
Si una transacción Long Positions está activa en el siguiente símbolo

GBPCAD

Long Positions: AUDCAD, EURCAD CADCHF, CADJPY
Short Positions: CADCHF, CADJPY
AUDCAD, EURCAD  

GBPCHF

Long Positions: EURCHF, USDCHF, AUDCHF, CADCHF
Short Positions:
EURCHF, USDCHF, AUDCHF, CADCHF  

GBPUSD

Long Positions: AUDUSD, EURUSD USDCHF, USDJPY
Short Positions: USDCHF, USDJPY AUDUSD, EURUSD  

AUDUSD

Long Positions: GBPUSD, EURUSD USDCHF, USDJPY
Short Positions: USDCHF, USDJPY GBPUSD, EURUSD  

CADJPY

Long Positions: EURJPY, USDJPY, AUDJPY, GBPJPY, CHFJPY
Short Positions:
EURJPY, USDJPY, AUDJPY, GBPJPY, CHFJPY  

EURUSD

Long Positions: GBPUSD, AUDUSD
USDCHF, USDJPY
Short Positions: USDCHF, USDJPY GBPUSD, AUDUSD  

EURJPY

Long Positions: CADJPY, USDJPY, AUDJPY, GBPJPY, CHFJPY
Short Positions:
CADJPY, USDJPY, AUDJPY, GBPJPY, CHFJPY  

EURCHF

Long Positions: GBPCHF, USDCHF, AUDCHF, CADCHF, NZDCHF

Short Positions:
GBPCHF, USDCHF, AUDCHF, CADCHF, NZDCHF  

EURAUD

Long Positions: GBPAUD
AUDUSD, AUDCHF, AUDJPY, AUDCAD
Short Positions: AUDUSD, AUDCHF, AUDJPY, AUDCAD GBPAUD  

USDCHF

Long Positions: GBPCHF, EURCHF, AUDCHF, CADCHF, NZDCHF
Short Positions:
GBPCHF, EURCHF, AUDCHF, CADCHF, NZDCHF  

USDJPY

Long Positions: CADJPY, EURJPY, AUDJPY, GBPJPY, CHFJPY
Short Positions:
CADJPY, EURJPY, AUDJPY, GBPJPY, CHFJPY  

AUDCHF

Long Positions: GBPCHF, EURCHF, USDCHF, CADCHF, NZDCHF
Short Positions:
GBPCHF, EURCHF, USDCHF, CADCHF, NZDCHF  

EURGBP

Long Positions:
GBPCAD, GBPCHF, GBPUSD, GBPJPY, GBPAUD
Short Positions: GBPCAD, GBPCHF, GBPUSD, GBPJPY, GBPAUD
 

AUDJPY

Long Positions: CADJPY, EURJPY, USDJPY, GBPJPY, CHFJPY
Short Positions:
CADJPY, EURJPY, USDJPY, GBPJPY, CHFJPY  

GBPJPY

Long Positions: CADJPY, EURJPY, USDJPY, AUDJPY, CHFJPY
Short Positions:
CADJPY, EURJPY, USDJPY, AUDJPY, CHFJPY  

AUDCAD

Long Positions: GBPCAD, EURCAD
CADJPY, CADCHF
Short Positions: CADJPY, CADCHF GBPCAD, EURCAD  

CHFJPY

Long Positions: CADJPY, EURJPY, USDJPY, AUDJPY, GBPJPY
Short Positions:
CADJPY, EURJPY, USDJPY, AUDJPY, GBPJPY  

CADCHF

Long Positions: GBPCHF, EURCHF, USDCHF, AUDCHF, NZDCHF
Short Positions:
GBPCHF, EURCHF, USDCHF, AUDCHF, NZDCHF  

GBPAUD

Long Positions: EURAUD AUDUSD, AUDCHF, AUDJPY, AUDCAD
Short Positions: AUDUSD, AUDCHF, AUDJPY, AUDCAD EURAUD  

EURCAD

Long Positions: CADJPY,CADCHF
GBPCAD, AUDCAD
Short Positions: GBPCAD, AUDCAD CADJPY,CADCHF  

NZDCHF

Long Positions: GBPCHF, EURCHF, USDCHF, AUDCHF, CADCHF
Short Positions:
GBPCHF, EURCHF, USDCHF, AUDCHF, CADCHF  


Supongamos que el Asesor Experto funciona en todos los pares de divisas de los grupos "Trading bueno" y "Trading medio".
Vamos a escribir el código para el par de divisas GBPCAD de acuerdo con las tablas de filtrado de transacciones:

int start(){
//----
   OpenPositions();
//----
   return(0);
  }
//+------------------------------------------------------------------+
void OpenPositions(){
// --- Short Positions
   if (Signal(Symbol()) == -1){
      if (!ExistPositions(Symbol(), OP_SELL, Magic, 0)) OpenPosition(Symbol(), OP_SELL, 1, 0, 0, Magic);
   }

// --- Long Positions
   if (Signal(Symbol()) == 1){
      if (!ExistPositions(Symbol(), OP_BUY, Magic, 0))  OpenPosition(Symbol(), OP_BUY, 1, 0, 0, Magic);
   }
}

int Signal(string Symbols){
//----
   if (... Sell signal condition...){
      if (Symbol() == Symbols){ // Filtration rules for GBPCAD
         // Rules according to base currency
         if (ExistPositions("GBPCHF", OP_BUY, Magic, 0)) return(0);
         if (ExistPositions("GBPUSD", OP_BUY, Magic, 0)) return(0);
         if (ExistPositions("GBPJPY", OP_BUY, Magic, 0)) return(0);
         if (ExistPositions("GBPAUD", OP_BUY, Magic, 0)) return(0);
         if (ExistPositions("EURGBP", OP_SELL, Magic, 0))return(0);
         // Rules according to quote currency
         if (ExistPositions("AUDCAD", OP_BUY, Magic, 0)) return(0);
         if (ExistPositions("EURCAD", OP_BUY, Magic, 0)) return(0);
         if (ExistPositions("CADCHF", OP_SELL, Magic, 0)) return(0);
         if (ExistPositions("CADJPY", OP_SELL, Magic, 0)) return(0);
      }
      return(-1);
   } 
   if (... Buy signal condition...){
      if (Symbol() == Symbols){ // Filtration rules for GBPCAD
         // Rules according to base currency
         if (ExistPositions("GBPCHF", OP_SELL, Magic, 0)) return(0);
         if (ExistPositions("GBPUSD", OP_SELL, Magic, 0)) return(0);
         if (ExistPositions("GBPJPY", OP_SELL, Magic, 0)) return(0);
         if (ExistPositions("GBPAUD", OP_SELL, Magic, 0)) return(0);
         if (ExistPositions("EURGBP", OP_BUY, Magic, 0))  return(0);
         // Rules according to quote currency
         if (ExistPositions("AUDCAD", OP_SELL, Magic, 0)) return(0);
         if (ExistPositions("EURCAD", OP_SELL, Magic, 0)) return(0);
         if (ExistPositions("CADCHF", OP_BUY, Magic, 0)) return(0);
         if (ExistPositions("CADJPY", OP_BUY, Magic, 0)) return(0);
      }   
      return(1);
   }
//----
   return(0);
}

No voy a escribir todo el código para todos los pares de divisas. Es muy parecido a este y lo puede hacer por sí mismo.

Espero que esta teoría de filtrado reducirá las disminuciones y mejorará la estabilidad del sistema.

Conclusión

1. En este artículo hemos analizado los parámetros más detallados del informe generado mediante el script MQLab™ Graphic Report.

2. Se han visto los métodos de análisis para todos los pares de divisas, por separado y en grupos. Se ha mostrado la posibilidad de combinarlos.

3. Se ha analizado la actividad de trading del Asesor Experto y se han determinado los parámetros favorables y desfavorables del trading.

4. Se ha descartado una serie de pares de divisas por ser ineficientes con esta estrategia.

5. Se han desarrollado medidas para mejorar el trading.


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

Optimización visual de la rentabilidad de indicadores y señales Optimización visual de la rentabilidad de indicadores y señales

Este artículo es una continuación y un desarrollo de mi artículo anterior "Pruebas visuales y rentabilidad de los indicadores y señales". Después de haber añadido un poco de interactividad al proceso de cambio de los parámetros y cambiado los objetivos del estudio, he podido conseguir una nueva herramienta que no sólo muestra los posibles resultados del trading en base a las señales que se usan, sino también nos permite obtener inmediatamente la distribución de las transacciones, el gráfico del balance y el resultado final del trading moviendo los botones deslizantes virtuales que controlan los valores de los parámetros de la señal en el gráfico principal.

Lite_EXPERT2.mqh: Un conjunto operativo para los desarrolladores de Asesores Expertos Lite_EXPERT2.mqh: Un conjunto operativo para los desarrolladores de Asesores Expertos

Este artículo es una continuación de la serie de artículos "Asesores Expertos basados en sistemas populares de trading, y un poco de alquimia en la optimización de robots". Permite familiarizar los lectores con una librería de funciones más universales del archivo Lite_EXPERT2.mqh.

Lite_EXPERT2.mqh: Ejemplos de implementación de Asesores Expertos Lite_EXPERT2.mqh: Ejemplos de implementación de Asesores Expertos

En este artículo, el autor sigue familiarizando los lectores con las funciones de Lite_EXPERT2.mqh mediante ejemplos reales de implementación de Asesores Expertos. El artículo aborda el concepto de utilizar las órdenes pendientes flotantes y las órdenes pendientes que cambian de forma dinámica entre una transacción y otra en base al los valores del indicador Average True Range (ATR).

Interacción entre MetaTrader 4 y Matlab mediante DDE Interacción entre MetaTrader 4 y Matlab mediante DDE

Instrucciones paso a paso sobre cómo organizar la transferencia de datos desde Matlab a MetaTrader 4 usando DDE.