English Русский 中文 Deutsch 日本語 Português
La sandbox aleatoria

La sandbox aleatoria

MetaTrader 4Ejemplos | 12 abril 2016, 14:01
655 0
Clerin
Clerin

Este artículo tiene como objetivo ayudar a los usuarios a comprender mejor los parámetros del funcionamiento del Asesor Experto ofrecido por MetaTrader, como el factor de beneficio o el retroceso relativo. Está complementado con el uso de un juego "sandbox" que imita el funcionamiento del AE y sus parámetros asociados.


Introducción

¿Cómo se sabe si el funcionamiento de un Asesor Experto es bueno?

MetaTrader ofrece un rango de parámetros por defecto para ayudar a comprender el funcionamiento de un AE durante el trading, el backtesting y la optimización. Estos datos a veces se ignoran o no se comprenden bien, simplemente porque los nuevos traders no tienen el fondo de datos suficiente para contrastar los números. Un trader puede tardar meses, o incluso años, en generar los datos y la experiencia suficiente para comprender por completo qué constituye un buen factor de beneficio o un retroceso aceptable.

Aunque hay muchos lugares en los que encontrar consejos, es humano ignorarlo y querer probar las cosas por nuestra cuenta para alcanzar nuestras propias conclusiones. Desgraciadamente, esto puede llevar a muchos errores constantes. Este artículo pretende ofrecer una sandbox en la que los usuarios pueden explorar de forma rápida, fácil y segura, los significados profundos tras los parámetros de funcionamiento que ofrece MetraTrader sin tener que confiar a ciegas en los consejos de otros, o esperar meses o años para generar ellos mismos un fondo de datos probados más grande de diferentes AEs.

En este artículo hay un documento Excel simple (en una carpeta zip al final de esta página) que generará instantáneamente 1 000 trades aleatorios, y mostrará los parámetros de funcionamiento relevantes que ofrece MetaTrader, junto con unos gráficos. Esto simula repetidamente los resultados de haber escrito y probado una nueva estrategia de Asesor Experto haciendo clic en un botón. Se pueden cambiar varias entradas clave, y se puede generar una gran cantidad de datos de backtest instantáneamente. Esto crea una experiencia interactiva rápida y fácil que muchos trades pueden encontrar interesante y útil.

Los datos de la columna de resultados están configurados para generar automáticamente una nueva salida cada vez que se modifica una hoja de trabajo. Para generar datos nuevos, seleccione cualquier celda vacía, pulse el botón "eliminar" (no cambiará la celda seleccionada, pero hará que la hoja de trabajo de Excel se actualice, y también generará nuevos números aleatorios). Estos trades aleatorios se muestran en tres gráficos separados junto con sus parámetros estándar. Hay tres hojas de trabajo en el documento Excel. La primera hoja de trabajo contiene las entradas, los gráficos y las salidas. La segunda hoja de trabajo contiene los cálculos de trade simulados. La tercera, contiene los cálculos para determinar las tasas ganadoras de cada trade.

Actividad: Abra el documento Excel, seleccione una celda vacía en la primera hoja de trabajo y pulse el botón "eliminar" para generar aleatoriamente un set de resultados. Cada vez que pulse "eliminar", se generará aleatoriamente un nuevo set de resultados.

La primera hoja de trabajo contiene 3 gráficos, junto con sus parámetros relevantes:

  1. Ejecutar total de win/loss (en el que win = 1, loss = -1).
  2. Ejecutar profit/loss cuando se utilice un tamaño de lote constante.
  3. Ejecutar profit/loss cuando se utilice un tamaño de lote ajustado dinámicamente, basado en arriesgar un porcentaje de un set de capital en cada trade.

Entradas

  • Iniciar Capital.
  • Stop Loss (medido como decimal).
  • Proporción Risk:Reward (multiplica stop loss por este número, luego le suma spread para conseguir take profit).
  • Lot size estático (para los cálculos del segundo gráfico).
  • % de capital que se arriesga por trade (para cálculos del tercer gráfico).
  • Spread (medido como decimal).
  • £ per Pip per 1 Standard Lot (para cálculos del tercer gráfico 1 lote = 100 000).
  • Forzar mejor funcionamiento (aumenta el % de win artificialmente por esta cantidad sobre la esperada sólo aleatoriamente).

Salidas

  • Porcentaje esperado de Win (% de win para la ratio SL:PT y spread por trade).
  • Porcentaje real de resultados de Win (resultados reales de la aleatorización).
  • Wins máximos en una fila.
  • Losses máximos en una fila.
  • Factor de beneficio (gains grandes / losses grandes).
  • Retroceso relativo (el porcentaje más grande de retroceso).
  • ROI % (% de retorno de la inversión).

Hipótesis

  • Sólo una posición abierta en cada hora.
  • Cada trade funciona o bien hacia stop loss o hacia take profit, no a trailing stop.
  • Cada trade utiliza la misma stop loss.
  • El take profit está siempre configurado para ser un múltiplo de stop loss.
  • El porcentaje de ganadores se basa en la proporción de SL:PT y spread, asumiendo una distribución aleatoria.
  • Spread arreglada.
Actividad: Vaya cambiando las diferentes opciones de entradas y observe cómo afecta a las formas del gráfico y a los resultados de salida, especialmente el factor de beneficio y el retroceso relativo.


Generar datos aleatoriamente

Los cálculos de los resultados en la hoja de trabajo de Excel suponen que los mercados están aleatorizados perfectamente, y que los trades están colocados aleatoriamente en ese mercado (e asume por simplicidad, y no es necesaria una declaración sobre ninguna verdad de mercado).

A veces la gente da por hecho que como el resultado de cada trade sólo puede ser o win o loss, si stop loss y take profit son del mismo tamaño, esa oportunidad aleatoria debería proporcionar un 50% de ganadores y un 50% de perdedores. Es tentador asumir que, simplemente invirtiendo la dirección de los trades de un sistema como este, convertirá una estrategia con pérdidas en una con beneficios. La realidad dispersa rápidamente esta presuposición.

Sin tener en cuenta si los mercados son o no aleatorios, los traders tienen que pagar spread en sus trades, lo que automáticamente tuerce las probabilidades contra el trader. Las oportunidades de ganar o perder están basadas en lo lejos que estén colocadas stop loss y take profit del precio de apertura, y de cuánto tuerce spread estas dos distancias. Los cálculos se muestran en la segunda hoja de trabajo del documento.

Por ejemplo: suponga que stop loss está en 10 pips, take profit en 10 pips, y el spread en 2 pips. Si el mercado mueve 10 pips a favor del trader, y luego añade 10 pips a take profit, y luego se pagan 2 pips en spread, efectivamente la ganancia neta es de 8 pips. Si el mercado mueve 10 pips en contra del trader, y luego la pérdida baja 10 pips a stop loss, y luego se siguen pagando 2 pips en spread, efectivamente la pérdida neta es de 12 pips. La proporción de la distancia en pips que ha movido el mercado en cualquiera de las direcciones, es de 10:10, pero el equivalente de los pips ganados o perdidos es 8:12.

Para asegurar que la cantidad de dinero perdido en una stop loss es igual a la cantidad de dinero ganado en una take profit, se puede dejar que take profit funcione durante un poco más de tiempo para que pueda cubrir el spread, así como cerrar antes stop loss en la misma cantidad. Además, stop loss estaría configurada en 8 pips (para una pérdida de 10 pips), y take profit estaría configurada en 12 pips (para una ganancia de 10 pips). Al dar una oportunidad igual para el precio "que aterrice" en cualquier punto de ese rango, la probabilidad de alcanzar take profit es: 1- (12 / (8+12)) =  0,4 = 40% La probabilidad de alcanzar stop loss es, por lo tanto, la contraria a esta, es decir, 60%.

La tabla y el gráfico bajo los cálculos de la tercera hoja de trabajo proporciona algunos ejemplos. Cuanta más relación de stop loss con take profit, más pequeño será el efecto de spread en el porcentaje esperado de ganancia.

Actividad: Después de spread, detenga stop loss y la relación para observar el efecto que tiene en el porcentaje esperado de ganancia.


El porcentaje de la proporción de Win está relacionado con la proporción de SL:TP

Está claro que el porcentaje esperado de proporción de win está determinado por la proporción entre stop loss y take profit, y el punto en el que ambas están afectadas por spread. El grado de veracidad de esto puede variar en distintos mercados, pero el concepto base es el mismo. Hay que apuntar dos puntos importantes:

  • Es irrelevante hablar de porcentaje de la proporción de win sin saber también la proporción de stop loss o de take profit, de spread, y si las proporciones entre ellos sigue siendo la misma en cada trade a lo largo de la vida del AE.
  • El alto porcentaje de proporción de win no significa necesariamente una estrategia rentable y, por otro lado, un porcentaje bajo de proporción de win no significa automáticamente una estrategia no rentable.
Actividad: Para explorar esto, puede cambiar la proporción de risk:reward a 10 y verá que el porcentaje de la proporción de win va hacia abajo y el primer gráfico muestra una pendiente muy inclinada hacia abajo, pero algunos de los resultados aleatorios del segundo y tercer gráfico todavía terminan con beneficios. Por otro lado, puede cambiar la proporción a 0,1 y la proporción de win irá drásticamente hacia arriba en el primer gráfico, pero algunos de las aleatorizaciones seguirán terminando en pérdidas.

Ejemplos:

Imagen 1. Escenario 1: Proporción risk:reward = 10

Imagen 2. Escenario 2: Proporción risk:reward = 0,1



El efecto del riesgo en aumento

A menudo se dice que los traders con éxito nunca arriesgan más del n% de su cuenta en cada trade. Normalmente está entre un 3 y 10%. No se ha explicado por qué esto es así. La verdad es que tiene la ventaja de prevenir algunas pérdidas grandes terminen con una cuenta. Lo más importante, quizás, es que, sorprendentemente, tiene un gran impacto en el afecto de "agravante del tamaño del lote".

Cuando los traders hablan en términos de "arriesgar" un n%, se refieren al porcentaje de la cuenta que se perdería si se inicia alguna stop loss. Generalmente, la distancia de stop loss se elige antes de que se abra el trade, y el tamaño del lote se calcula para hacer que esa distancia en pips merezca el n% de la cuenta. A medida que los beneficios aumentan, la cantidad disponible para abrir cada nueva posición, aumenta; lo que produce que el tamaño del lote aumente, y provoca que las potenciales ganancias resultantes, aumenten. De este modo, las ganancias se "agravan" (es importante aclarar que también afecta a cualquier pérdida).

El tercer gráfico muestra los resultados de este método. Utilizando el tercer gráfico se puede observar el efecto de cambiar el riesgo en la rentabilidad de cualquier sistema. El riesgo se configura como 1% por defecto.

Actividad: Aumente el riesgo del 1% al 20% y vea el cambio en el funcionamiento del tercer gráfico. Compare este funcionamiento (especialmente el retroceso relativo y el factor de beneficio) con el gráfico constante del tamaño del lote.

Con el riesgo configurado al 1% el funcionamiento es muy similar al funcionamiento con un tamaño de lote constante. A medida que el riesgo aumenta, el beneficio potencial máximo también aumenta. Sin embargo, cuando hay un funcionamiento aleatorio, está claro que cuanto más grande es el riesgo, más probable es que la estrategia vaya a quebrar antes de que termine. También provoca que el retroceso relativo se incremente masivamente.

Imagen 3. Esta imagen muestra exactamente el mismo grupo de trades que hicieron trade primero arriesgando un 1%, y luego arriesgando el 10% por trade.

Mientras haya algunos beneficios para aumentar el % de riesgo a 1%, muestra que pasado cierto punto, más que aumentar la probabilidad aumentando el riesgo, puede disminuir la rentabilidad aumentando el riesgo.

Cambiar la proporción risk:reward o aumentar el capital de inicio puede que no alteren esto demasiado. Algo que cambiará significativamente esto, es aumentar el porcentaje de win (para reducir la probabilidad de muchas pérdidas en una fila). Por lo tanto, hay una caja de entrada que se lama "Forzar mejor funcionamiento". Aumentando este valor, puede probar qué pasaría si un AE funcionara mejor de lo esperado simplemente por azar.

Está configurado a un 15% de mejora por defecto (porque de otro modo, la mayor aleatoriedad fallaría constantemente a la hora de producir ganancias por el efecto de spread en la proporción de win esperada, como se explica arriba). Sin embargo, todavía habría un % de riesgo en la que casi se puede garantizar el fracaso de la estrategia.

Actividad: Si quisiera parar la generación aleatoria de nuevos resultados de la hoja de trabajo, y sólo ver cómo afectan los cambios en las entradas a los mismos datos configurados de diferentes formas, copie la fórmula de la columna C en la columna D utilizando "copiar especial" y seleccionando "valores" (para deshacerlo, simplemente copie la columna C en la columna D). Intente aumentar el valor de "Forzar mejor funcionamiento", y observe el efecto en el tercer gráfico.

Con suerte, esto hará que la comparación entre el aumento necesario en el funcionamiento para obtener un gráfico de aspecto saludable a cualquier % de riesgo, y el funcionamiento esperado del AE en directo, sea más fácil.



Utilizar un AE para simular la colocación de trades aleatoriamente (durante el backtest)

El uso de la aleatoriedad puede ir más lejos. Es fácil escribir un AE que coloca de verdad trades aleatoriamente en el backtest. El funcionamiento de un AE real se puede comprar con su funcionamiento aleatorio en el mismo periodo, de la misma manera que los experimentos científicos se hacen junto a una prueba de "control". Cualquier trader que no haya intentado esto todavía, puede sorprenderse por lo que se puede conseguir con esta simple colocación de trades aleatoriamente.

Para ello, se incluye un AE muy simple en este artículo, llamado "Random EA" (véase abajo). Este AE está diseñado para colocar trades aleatoriamente sólo en los backtests o en las optimizaciones (este AE no está diseñado para trading en directo ni para trading en directo con una cuenta demo).

Los parámetros de entrada permiten que el porcentaje de probabilidad de colocar un trade en cualquier barra que se vaya a configurar (una probabilidad del 100%). Sólo se puede abrir un trade a la vez. Sólo puede haber un trade por barra. Los trades se colocan al principio de la barra.

Se puede seleccionar la distancia entre stop loss y take profit (en puntos). Estas distancias iguala la pérdida real que experiencia real de la cuenta (y, por lo tanto, ya incluye los efectos de spread). Un take profit de 300 puntos equivale, en divisas de depósito, a stop loss de 300. También es posible seleccionar stop losses y take profits aleatorios para usar en cada trade, aleatorizados entre los valores de 100 y 1 000 puntos en cada trade. Está diseñado para tener una posibilidad igual a la apertura de un trade largo o corto.

El tamaño del lote se puede cambiar entre un tamaño de lote constante (static) y un tamaño de lote dinámico, que arriesga el porcentaje predeterminado del balance de la cuenta por trade.

La aleatoriedad funcionará para varios backtests. Si se necesita optimizaciones, simplemente seleccione "OmtimizationNumber" como una variable de la optimización, e introduzca el número necesario de optimizaciones que iniciar.

Hay dos lecciones importantes que pueden aprenderse de colocar los trades aleatorios, como esta:

  1. La proporción de SL:TP puede hacer que incluso los trades aleatorios sean bastante rentables en un periodo determinado del historial.
    Los usuarios se darán cuenta de que cambiar la proporción SL:TP para que take profit sea o bastante mejor, o más pequeño que stop loss, tendrá más efecto en las características del funcionamiento. Importante: a veces es mejor coger una proporción favorable de SL:PT para un periodo determinado del historial, que los pases aleatorios harán dinero. Por ejemplo, si el periodo del historial que se está probando contiene en su mayoría un mercado alcista, cogiendo un take profit bastante más grande que stop loss, el usuario puede desviar las probabilidades a su favor. En casos como este, no importa mucho dónde se colocan los trades: pueden colocarse aleatoriamente, literalmente, y el resultado neto probablemente sea positivo.

    En esta situación, es la proporción de SL:TP la que tiene el efecto más importante en la rentabilidad del sistema durante el backtesting, y no importa mucho cómo se elijan los trades. Por este motivo, a menudo es útil probar el funcionamiento de un AE con éxito contra el funcionamiento de un AE que coloca los trades aleatoriamente sobre el mismo periodo de prueba y que utiliza la misma proporción SL:TP.

    Los traders se han felicitado los unos a los otros por haber creado una combinación aparentemente eficaz de indicadores para su AE (según los resultados del backtest), cuando, de hecho, es la proporción de SL:TP la que hace la mayor parte del "trabajo" en su sistema, porque lo prueban sobre un periodo del historial con una marcada tendencia. Cuando estos sistemas se prueban en mercados poco activos, pueden desaparecer los buenos funcionamientos. Recuerde, es posible que los pares de divisas tengan una tendencia fuerte durante un año o más.

    Si prueba el funcionamiento de un AE sobre el mismo periodo contra un AE de trading aleatorio (con las mismas proporciones de SL:TP y las mismas reglas de tamaño de lote), y funcionan de forma similar, puede que le esté diciendo algo interesante sobre su estrategia.
  2. Colocar trades aleatoriamente puede seguir siendo rentable para cientos de trades.
    Tras varios backtests, puede darse cuenta de que algunos pases siguen siendo rentables durante largos periodos, incluso cuando se colocan los trades aleatoriamente. Esto influye en cómo juzgar el éxito de una estrategia determinada, cuando sólo hay una pequeña cantidad de trades en la que basar esa decisión. Un AE que coloca los trades aleatoriamente puede verse a veces produciendo resultados constantemente rentables durante 300 trades, por ejemplo, sólo para fracasar en los siguientes 50. Lo usuarios pueden encontrar esta información útil para juzgar el funcionamiento de otras estrategias.
Actividad: Inicie varios backtests utilizando un AE aleatorio. Intente cambiar los valores de stop loss, take profit, y el tamaño del lote y observe el efecto en los resultados. Cambie la configuración de stop loss y take profit para encontrar una proporción favorable que haga que los trades aleatorios sigan rentables durante un periodo de tiempo de prueba determinado. Luego inicie varias pruebas durante el mismo periodo y cuente el número máximo de trades realizados mientras el AE estaba produciendo beneficios constantes, antes de que haga un retroceso significante.


Conclusiones

Este artículo no pretende dar consejos. Simplemente pretende ofrecer una sandbox para explorar. Los usuarios deben sacar sus propias conclusiones.



Observaciones:

  • Escrito en Exce 2003.
  • A veces parece que el generador de números se queda sin números y deja de ser aleatorio. Si se da cuenta de que ocurre esto, simplemente tiene que cerrar y volver a abrir el documento excel.
  • Los cálculos están diseñados para simular divisas de 4 o 5 decimales (es decir, no están diseñados para los pares JPY).
  • La aleatoriedad de los resultados están basados en la calidad del generador de números aleatorios en excel y los cálculos aproximativos de la predicción de las tasas de win esperadas y, por lo tanto, no reflejarán perfectamente los resultados en el mundo real. Sin embargo, para los propósitos de este artículo, eso debería ser suficiente.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/1360

Archivos adjuntos |
Random_EA.mq4 (8.13 KB)
El Asesor Experto MetaTrader 4 intercambia información con el mundo exterior El Asesor Experto MetaTrader 4 intercambia información con el mundo exterior
Una solución de intercambio de información simple, universal y fiable entre el Asesor Experto MetaTrader 4 y el mundo exterior. Los proveedores y los consumidores de la información pueden estar en diferentes ordenadores, la conexión se realiza a través de direcciones IP globales.
MetaTrader 4 en Linux MetaTrader 4 en Linux
En este artículo, explicaremos cómo instalar fácilmente MetaTrader 4 en las populares versiones de Linux Ubuntu y Debian. Estos sistemas se usan ampliamente no solo en el hardware de los servidores, sino también en los ordenadores habituales de los tráders.
Tres aspectos de la Automatización manual del trading. Primera parte: Trading Tres aspectos de la Automatización manual del trading. Primera parte: Trading
Este artículo es el primero de una serie de artículos sobre trading manual en la plataforma MetaTrader 4. Cada uno de los artículos se destinará a uno de los siguientes aspectos: automatización del trading manual, estado actual de la muestra de trade automatizado, y automatización de los informes de los resultados de trade. En este artículo, presentaré un método interesante para crear un AE controlado manualmente por un trader.
Series temporales de previsión financiera Series temporales de previsión financiera
Las series temporales de previsión financiera son un elemento imprescindible para cualquier actividad de inversión. El concepto de invertir, poner dinero ahora para obtener beneficios en el futuro, está basado en el concepto de predecir el futuro. Por lo tanto, las series temporales de previsión financiera forman la base de las actividades de toda la industria de la inversión; todos los intercambios organizados y otros sistemas de trading de instrumentos financieros.