![Evaluando la efectividad de los sistemas comerciales mediante el análisis de sus componentes](https://c.mql5.com/i/articles/overlay.png)
Evaluando la efectividad de los sistemas comerciales mediante el análisis de sus componentes
Introducción
Cualquier persona que comience a dedicarse al comercio en los mercados financieros entiende rápidamente que en esta esfera profesional el éxito solo es posible con un enfoque sistemático. Comerciar a la buena de dios, sin sistema, de forma emocional, normalemnte no conduce a un resultado positivo, o puede que sí, pero suele ser algo fugaz, y al final todo acaba en un mar de lágrimas. Por eso, cualquier análisis, sea de tipo gráfico, basado en indicadores o de cualquier otro tipo, es uno de los componentes clave para comerciar con éxito en los mercados financieros. Este artículo es una investigación sui generis de varios sistemas comerciales sencillos independientes, en la que se analiza su efectividad y la utilidad de su aplicación conjunta.
Definiendo los criterios para la valoración de la efectividad de un sistema comercial
Normalmente, la valoración de la efectividad de cualquier sistema comercial constituye un cierto conjunto de parámetros determinados y definidos, así como ciertos valores resultantes del propio sistema. Como parámetros establecidos pueden actuar los periodos de los indicadores, el tamaño de los stop-loss o take-profit, o bien un conjunto más complejo de coeficientes del sistema que influyen en la entrada y salida del mercado. Los valores resultantes, a su vez, son el beneficio neto, la reducción, el tanto por ciento de operaciones con éxito y el valor medio de las operaciones con éxito en la divisa del depósito.
Cualquier sistema comercial reduce con el tiempo su efectividad, puesto que la naturaleza de los mercados de divisas cambia todo el tiempo, y esto se acaba notando por los índices de resultado. Así que nos vemos obligados a cambiar los parámetros del sistema, a adaptarlos a las condiciones cambiantes. Para comenzar, en el marco de este artículo debemos definir el concepto de sistema comercial complejo.
Un sistema comercial complejo es un conjunto de bloques separados que tienen sus algoritmos y parámetros y que funcionan los unos con los otros de forma conjunta. Además, el funcionamiento de cualquiera de los bloques incluidos en este sistema se puede valorar conforme a un conjunto de criterios establecido. Veamos el esquema de valoración de la efectividad del sistema presentado en la fig.1. Se trata de un sistema complejo que consta de tres bloques A, B, C, cada uno de los cuales tiene sus propios parámetros. El funcionamiento y efectividad de este sistema se valorará según tres parámetros: 1, 2, 3. Con el tiempo, cambian las condiciones del mercado en el que comercia este sistema, y los parámetros 1-3 cambiarán hacia el lado negativo, lo que nos indicará que ya es hora de afinar de nuevo el sistema. Esto se puede hacer de la forma siguiente:
- Iniciamos la optimización de los nueve parámetros para adaptar el sistema a la situación real actual del mercado. Pero en este método existe una redundancia: ¿para qué optimizar todos los parámetros si es totalmente plausible detectar cuál de los bloques ha comenzado ha realizar peor su trabajo?
- Por consiguiente, el segundo método. Se crea un sistema común de criterios de valoración para los tres bloques del sistema К1, К2, К3, que permita evaluar y comparar la efectividad del funcionamiento de cada uno de los bloques por separado.
Ventajas de este método:
- Se evita la redundancia. No tiene razón optimizar lo que ya funciona de maravilla.
- Monitoreo del sistema. Se puede realizar una medición de los parámetros K1-K3 a través de ciertos intervalos temporales, aclarando al mismo tiempo cómo se comportan el sistema y sus bloques juntos y por separado, en diferentes momentos del mercado (sesiones comerciales, salida de noticias, etc).
- Análisis de vulnerabilidad. Permite detectar cuál de los bloques tira del sistema hacia abajo, para realizar la optimización y mejora de solo este bloque, y no del sistema al completo.
Fig. 1. Sistema comercial complejo
Ejemplo de valoración de la efectividad del sistema con la ayuda del análisis de sus componentes
Para poner a prueba la efectividad de todo el sistema comercial, comprobaremos cómo funcionan los bloques del sistema por separado y de forma conjunta. El sistema para prueba constará de dos bloques:
- Bloque А. Basado en las señales del indicador estándar Parabolic SAR.
- Bloque В. Basado en las señales del indicador estándar Accelerator Oscillator(AC).
Ahora vamos a decidir el conjunto de criterios de valoración de estos bloques:
- Criterio K1 — beneficio neto.
- Criterio K2 — reducción máxima.
- Criterio K3 — operaciones con beneficios (% del total).
Para que esté totalmente claro, elegiremos como parámetros de efectividad general del sistema los mismos índices:
- Parámetro 1 — beneficio neto.
- Parámetro 2 — reducción máxima.
- Parámetro 3 — operaciones con beneficios (% del total).
Podemos encontrar ejemplos de señales de entrada en el mercado para estos indicadores en la documentación de la biblioteca estándar MQL5: las señales Parabolic SAR y las señales Accelerator Oscillator (primeras condiciones). Vamos a describir para cada una de ellas las condiciones de entrada y esclareceremos las condiciones en las que son efectivas en un intervalo de simulación dado.
Los parámetros al completo del asesor de prueba escrito más abajo tienen el aspecto siguiente:Fig.2. Parámetros del asesor
//+------------------------------------------------------------------+ //| | //| Alexander Fedosov | //| https://www.mql5.com/es/users/alex2356 | //+------------------------------------------------------------------+ #property copyright "Alexander Fedosov" #property link "https://www.mql5.com/es/users/alex2356" #property version "1.00" #property strict #include "trading.mqh" input int tm = 1; //Test mode 1,2 or 3 input int SL = 40; //Stop-loss input int TP = 70; //Take-profit input bool lot_const = false; //Lot of balance? input double lt=0.01; //Lot if Lot of balance=false input double Risk=2; //The risk in the lot of the balance, % input int Slippage= 5; //Slippage input int magic = 2356; //Magic number input ENUM_TIMEFRAMES tf1 = PERIOD_H1; //Timeframe for the calculation module1 input ENUM_TIMEFRAMES tf2 = PERIOD_M5; //Timeframe for the calculation module2 input double Step = 0.02; //Step PSAR input double Mxm = 0.2; //Maximum PSAR CTrading tr(magic,Slippage,lt,lot_const,Risk,5); //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(tm<1 || tm>3) return; //--- Condiciones de entrada en el mercado para el módulo Parabolic SAR if(tm==1 && !tr.isOpened(magic)) { double psar[],prc[]; ArrayResize(psar,3); ArrayResize(prc,3); for(int i=0; i<3; i++) { psar[i]=iSAR(_Symbol,tf1,Step,Mxm,i); prc[i]=iClose(_Symbol,tf1,i); } if(psar[2]>prc[2] && psar[1]<prc[1] && psar[0]<prc[0]) tr.OpnOrd(OP_BUY,lt,TP,SL); if(psar[2]<prc[2] && psar[1]>prc[1] && psar[0]>prc[0]) tr.OpnOrd(OP_SELL,lt,TP,SL); } //--- Condiciones de entrada en el mercado para el módulo AC if(tm==2 && !tr.isOpened(magic)) { double ac[]; ArrayResize(ac,3); for(int i=0; i<3; i++) ac[i]=iAC(Symbol(),tf2,i); if(ac[2]>0 && ac[1]>0 && ac[1]>ac[2]) tr.OpnOrd(OP_BUY,lt,TP,SL); if(ac[2]<0 && ac[1]<0 && ac[1]<ac[2]) tr.OpnOrd(OP_SELL,lt,TP,SL); } //--- Condiciones de entrada en el mercado cuando los dos módulos operan juntos if(tm==3 && !tr.isOpened(magic)) { double psar[],prc[],ac[]; ArrayResize(psar,3); ArrayResize(prc,3); ArrayResize(ac,3); for(int i=0; i<3; i++) { psar[i]=iSAR(_Symbol,tf1,Step,Mxm,i); prc[i]=iClose(_Symbol,tf1,i); ac[i]=iAC(Symbol(),tf2,i); } if((psar[2]>prc[2] && psar[1]<prc[1] && psar[0]<prc[0]) || (ac[2]>0 && ac[1]>0 && ac[1]>ac[2])) tr.OpnOrd(OP_BUY,lt,TP,SL); if((psar[2]<prc[2] && psar[1]>prc[1] && psar[0]>prc[0]) || (ac[2]<0 && ac[1]<0 && ac[1]<ac[2])) tr.OpnOrd(OP_SELL,lt,TP,SL); } } //+------------------------------------------------------------------+
El primer parámetro del asesor de prueba es tm (Test mode), y puede adoptar los valores 1, 2 o 3. Estos valores corresponden a los tres modos de funcionamiento:
- etm = 1. Se usan solo las condiciones de entrada en el mercado con la ayuda del indicador Parabolic SAR. Modo de funcionamiento solo del bloque А.
- tm = 2. Se usan solo las condiciones de entrada en el mercado con la ayuda del indicador Accelerator Oscillator. Modo de funcionamiento solo del bloque B.
- tm = 3. Funcionamiento conjunto de ambos bloques. Funciona todo el sistema.
Cambiando el parámetro Test Mode, podremos descubrir los parámetros que nos interesen: para los bloques А y В son K1-K3, para todo el sistema, los parámetros 1-3. A continuación, se presentan los resultados de la simulación del bloque con Parabolic SAR (fig.3), del bloque con AC (fig.4) y de su funcionamiento conjunto (fig.5).
Fig.3. Simulación del módulo Parabolic SAR
Fig.4. Simulación del módulo AC
Fig.5. Funcionamiento conjunto de los módulos Parabolic SAR y AC
En base a los resultados de los tres modos de funcionamiento diferentes, adjuntamos un recuadro comparativo para que quede más claro:
Test Mode | Beneficio neto | Operaciones con beneficios,% | Reducción máxima |
---|---|---|---|
1 | 27,56 | 37,91 | 32,71 |
2 | 106,98 | 39,19 | 38,94 |
3 | 167,16 | 40,64 | 18,62 |
Modelado de la situación de empeoramiento del funcionamiento del sistema
Y ahora vamos a cambiar los parámetros del bloque А (Test Mode = 1) hacia el lado de la reducción de la efeciencia. Esto servirá para responder a la pregunta sobre qué sucederá al sistema en el caso de que uno de sus bloques cambie a peor.
Para modelar la reducción de la efectividad del sistema, cambiaremos un parámetro relacionado con el funcionamiento del bloque А, se trata de Timeframe for the calculation module1 , lo haremos de la forma mostrada en la fig.6. Esto cambiará su periodo de cálculo, basado en Parabolic SAR, lo que influirá en los lugares de entrada en el mercado, y por consiguiente, cambiará la efectividad del funcionamiento de todo el sistema.
Fig.6. Modelado de la reducción de la efectividad del sistema
Fig.7. Resultado del cambio del parámetro del módulo basado en Parabolic SAR
Para que quede más claro, compararemos los índices que hemos observado en el funcionamiento del bloque А con dos valores distintos de su parámetro Timeframe for the calculation module1:
Timeframe for the calculation module1 | Beneficio neto | Operaciones con beneficios,% | Reducción máxima |
---|---|---|---|
1 Hour | 27.56 | 37.91 | 32.71 |
4 Hours | 2.54 | 36.73 | 43.21 |
Resulta obvio que el cálculo según el periodo de 4 horas ha empeorado los resultados del funcionamiento del módulo, además, de los tres criterios de valoración. La simulación de todo el sistema con valores premeditadamente peores de uno de sus componentes también ha reducido los parámetros 1-3 de la efectividad del sistema, como se muestra en la fig.8.
Fig.8. Funcionamiento conjunto de los módulos Parabolic SAR (empeorado) y AC
Ahora vamos a reunir todos los resultados para aclarar cómo han influido los cambios en el funcionamiento del bloque A en la efectividad general del sistema.
Timeframe for the calculation module1 | Beneficio neto (módulo 1) | Operaciones con beneficios,% (módulo 1) |
Reducción máxima,% (módulo 1) |
Beneficio neto (sistema) |
Operaciones con beneficios,% (sistema) |
Reducción máxima,% (sistema) |
---|---|---|---|---|---|---|
4 Hours | 2.54 | 36.73 | 43.21 | 139.34 | 40.00 | 24.9 |
1 Hour | 27.56 | 37.91 | 32.71 | 167.16 | 40.64 | 18.62 |
Estos resultados han demostrado que la investigación de los bloques del sistema complejo por separado para mejorar la efectividad es muy actual e influye de forma positiva en los parámetros de valoración de todo el sistema. Además, se han confirmado las tesis del inicio del artículo: este método está menos saturado que la optimización de todo el sistema como un objeto íntegro. Asimismo, este método da posibilidades adicionales de observar el sistema.
Conclusión
En este artículo se ha analizado el método de valoración de la efectividad de los sistemas comerciales mediante el análisis de sus componentes. Basándonos en la simulación y la investigación del sistema complejo de bloques y sus módulos, podemos sacar las siguientes conclusiones:
- Este método de valoración es menos redundante que la optimización de todos los parámetros de los sistemas, dado que se detectan solo aquellos componentes que necesitan optimizaciones y mejoras.
- La creación de sistemas comerciales en forma de componentes con el uso de bloques que puedan ser valorados según unos criterios determinados, permite controlarlos de forma más efectiva, detectar sus puntos débiles y modernizarlos de manera más flexible.
Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/1924
![Lógica difusa para crear estrategias de trading manual](https://c.mql5.com/2/22/2195.png)
![Cómo crear un indicador de gráficos no estándar para MetaTrader Market](https://c.mql5.com/2/23/ava3_.png)
![Protección contra activaciones erróneas del robot comercial](https://c.mql5.com/2/21/avatar.png)
![LifeHack para tráders: un back test está bien, pero cuatro están mucho mejor](https://c.mql5.com/2/23/ava__3.png)
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso