Un asesor experto creado para ordenar. Manual para un trader

Andrey Khatimlianskii | 11 mayo, 2016


Introducción

No todos los traders son programadores. Y no todos los programadores son realmente buenos. Entonces, ¿qué debemos hacer si necesitamos automatizar nuestro sistema pero no tenemos tiempo ni ganas de estudiar MQL4? Normalmente, se suele visitar el foro y crear un tema llamado algo así como "Necesito un programador":

Este artículo está especialmente escrito para aquellos que necesitan ayuda a la hora de escribir un asesor experto. Aquí encontrará la información de contacto sobre los escritores de asesores expertos, recomendaciones sobre cómo contactar con ellos y descripciones de los problemas más frecuentes.


¿Qué debe hacerse antes de encargar un asesor experto?

Antes de empezar a buscar un programador, asegúrese de que su estrategia es rentable. No pague por un AE que no le traiga beneficios. Puede hacerlo manualmente buscando en los datos históricos y operando mentalmente, algo que es bastante difícil. También puede hacerse usando el probador manual descrito en este artículo Probando la visualización: Trading manual. Los resultados más genuinos pueden obtenerse operando sobre una cuenta de demostración o una cuenta minireal, pero esto requiere más tiempo y, probablemente, más dinero. Al probar una estrategia, recuerde que:

  • el mercado cambia constantemente y un comportamiento adecuado de los indicadores sobre el historial no garantiza su idoneidad en el trading real;
  • algunos indicadores trazan señales sobre barras ya formadas. Las flechas colocadas correctamente sobre los extremos del precio son ya historia. En el trading real estas se hacen visibles solo después de varias barras. Por ejemplo, las señales de los Fractales se muestran con un retraso de dos barras. Puede usarlas, pero teniendo en cuenta que solo entrará al mercado no con el fractal, sino cuando se formen dos barras más (en un gráfico de una hora serán en dos horas). No use los indicadores cuyo algoritmo de funcionamiento le sea desconocido. Esto puede traerle malos resultados;
  • hay muchos indicadores que, de forma premeditada o no, analizan el futuro. Por ejemplo, la sencilla Media móvil con un cambio negativo mostrará a su debido tiempo los ejes del mercado. Pero solo en el historial...

Pueden detectarse muchos errores de este tipo probando una estrategia en tiempo real sobre una cuenta demostración. Pero esta comprobación aparentemente fiable no garantiza una coincidencia total con el trading real, ya que las cuentas demostración y las reales tienen algunas diferencias:

  • la velocidad de ejecución de una orden en una cuenta demostración siempre es mayor que la de una cuenta real. Esté preparado para la apertura de su posición real solo varios minutos después de haber enviado una orden. Esto no afectará a los resultados de una estrategia a largo plazo, pero arruinará el trading diario;
  • en las condiciones de comercio una cuenta real (diferencial, distancia a las stop order, nivel margin-call, etc.) puede cambiar durante el trading. Por ejemplo, antes de la publicación de las noticias o antes de las vacaciones. Al probar su estrategia en una cuenta demostración, le resultará difícil hacer frente a estas sorpresas, pero no olvide tenerlas en cuenta a la hora de estimar la eficacia de su estrategia.

Y no olvide que el dinero real es dinero real y la actitud frente a él es distinta a la de una cuenta demostración. Un asesor experto puede eliminar una gran parte de las emociones de un proceso de trading, pero no puede eliminar por completo sus posibles errores. Operar en una cuenta demostración, seguir una estrategia, no cambiar sus planes y no tomar decisiones emocionales. Su asesor experto futuro es solo un programa y funcionará de acuerdo con reglas estrictas. Si quiere saber cuáles son los resultados que puede lograr su asesor experto, su estilo de trading debe ser el mismo que el de uno de ellos: conciso y disciplinado.


Si después de todas estas comprobaciones su estrategia logra todavía un beneficio bastante bueno, suficiente para cubrir todas las sorpresas del trading real, puede pasar a la siguiente fase: formalización de un algoritmo.



Formalización de un algoritmo

Si ha estado operando usando su estrategia durante el tiempo suficiente, le será fácil formalizar un algoritmo. Todo lo que necesita es enumerar las reglas de acuerdo a las cuales deberá operar su asesor experto.

Recuerde que el programa estará escrito por una persona que no tiene la más remota idea de su estrategia. Debe especificar todos los detalles más pequeños: parámetros de los indicadores, distancia a las stop orders, número máximo de posiciones abiertas, algoritmo de trailing stop, etc. La especificación de sus requisitos debe contener la descripción de la reacción a cada evento significativo: activación de una stop order, aparición de una señal repetida cuando existe una posición, inicio de un asesor experto después de la desconexión, etc.

Debe entender que su PC no puede suponer, asumir ni tomar decisiones independientes: tan solo opera de acuerdo con nuestras reglas. Si surge una situación cuya reacción no está prevista por el algoritmo, su asesor experto no hará nada.


Veamos un ejemplo de lo que puede ocurrir si la especificación de los requisitos no es muy concisa ni detallada. El diálogo muestra el proceso de desarrollo de un asesor experto por un programador de acuerdo con el algoritmo de un trader. He indicado de forma intencionada los caracteres absurdamente tontos. Esto llamará la atención sobre los errores. Para comprenderlo mejor, puede descargar los ejemplos de todos los asesores expertos y probarlos junto con el trader.


Trader:

¡Hola! Quiero encargar un asesor experto:
Debe abrir posiciones cuando se cruzan MA(9) y MA(18).
Si uno rápido se cruza con uno lento hacia arriba deberá abrirse una posición Buy. Si ocurre lo contrario, deberá abrirse una posición Sell.
¿Cuánto cuesta?

Programador:

Para definir el coste, necesito una especificación de los requisitos detallada y concisa.
Aproximadamente $25.

Trader:

¡He escrito todo en la carta anterior!
Hay dos medias móviles, cuando uno rápido (con un período 9) se cruza con uno lento (con un período 18) hacia arriba, se abre una posición Buy. Cuando ocurre lo contrario, se abre una posición Sell.

Programador:
Ok, clear.
Here is your Expert Advisor - Sample_1.mq4.
Trader:

¿Qué has escrito? ¡Esto no es un asesor experto!
¿Por qué hay tantas posiciones abiertas? ¿Por qué no están cerradas?
¿Eres realmente un programador o qué?

Programador:

El número de posiciones es igual al número de cruces. Pruebe su asesor experto en modo visual, lo verá todo: se abre una posición en cada cruce.
Si el cruce es hacia arriba, se abre una posición Buy. Si es hacia abajo, se abre una posición Sell.
Su especificación no contiene ni una sola palabra sobre el cierre de posiciones.


Trader:

Se me olvidó decírtelo: si hay una posición abierta, debe cerrarse en un cruce opuesto: en el mercado, en un momento dado, solo puede abrirse una posición. Y para cada posición abierta debe colocarse una orden Stop Loss a una distancia de 50 puntos.


Programador:
See the second version - Sample_2.mq4.

Trader:

¿Por qué hay aquí una posición Buy? ¡Aquí no hay cruce!



Programador:

Había un cruce, pero ha desaparecido. El gráfico refleja los valores del indicador en barras ya creadas y puede ver sus cambios en un proceso de creación de barras usando solo un modo de prueba visual o en la operación real. Créame, había una intersección en el momento de la apertura de la posición.
Si quiere, podemos hacer un asesor experto para que las posiciones se abran con las señales de las barras creadas. En tal caso, todas las señales serán visibles en un gráfico.
Muchos traders hacen eso.


Trader:

Intentémoslo.
¿Y puedo optimizar los parámetros de las medias móviles y los valores de los niveles de Stop Loss y Take Profit?


Programador:

Esta es la tercera versión: Sample_3.mp4:
- la búsqueda de señales se realiza sobre las barras creadas (primera y segunda);
- los parámetros de las medias móviles y los valores de Stop Loss y Take Profit se especifican en las variables externas.
Compruébelo.


Trader:

Ahora es como yo quería realmente.
Pero cuando inicio varios asesores expertos, solo opera uno de ellos. ¡Y algunas veces cierran las posiciones de cada uno!


Programador:

En la cuarta versión (Sample_4.mq4) he añadido una división de órdenes de acuerdo con el número mágico. Si inicia varios asesores expertos en un gráfico de un símbolo, establezca valores distintos de la variable MagicNumber para cada uno de ellos.


Trader:

¡Ahora está realmente bien!

Entonces, ¿cuál debe ser la especificación de los requisitos según la cual un programador pueda crear la cuarta versión del asesor experto en una primera ocasión? Intentemos formular los requisitos de un asesor experto:
  • El asesor experto debe controlar solo sus propias posiciones y no debe operar con posiciones abiertas manualmente o por otros asesores expertos.
  • Si no hay posiciones abiertas por el asesor experto:
    • si la media móvil rápida cruza la subida lenta, se abre una posición Buy;
    • si la media móvil rápida cruza la bajada lenta, se abre una posición Sell;
  • Si hay una posición abierta por el asesor experto:
    • si es una posición Buy:
      • si la media móvil rápida cruza la bajada lenta, se cierra la posición Buy y se abre la posición Sell;
    • si es una posición Sell:
      • si la media móvil rápida cruza la subida lenta, se cierra la posición Sell y se abre la posición Buy;
  • Los parámetros de la media móvil rápida y lenta (período, método de trazado y precio usado) deben ser establecidos por variables externas.
  • Los valores del indicador se toman de un período del gráfico sobre el que opera el asesor experto.
  • Para detectar la intersección se utilizan la primera y la segunda barra.
  • El tamaño de la posición se determina por una variable externa.
  • Cuando se abre una posición, Stop Loss y Take Profit se colocan a una distancia determinada por las variables externas.
  • Debe haber una posición para deshabilitar Stop Loss y Take Profit.
  • Si se produce un error, el asesor experto debe mostrar una ventana con información sobre el error y volver a intentarlo en el próximo tick.

Esta es la tarea más simple. Estos sistemas simples son muy raros en la vida real, por lo que debe prestar atención a todos los detalles a la hora de crear la lista de requisitos.


Sin duda, tales traders y programadores estúpidos son muy raros. Pero créame, existen. Es mejor indicar incluso los detalles aparentemente obvios que tener que discutir luego con un programador.

Los último que puede hacerse antes de buscar un programador es operar de acuerdo con una "lista de reglas": cuando opere, haga solo lo que está escrito en esta lista. De este modo, verá todos los detalles que puedan omitirse cuando se formalice el algoritmo. Esto puede evitarle posibles pagos por la mejora de asesor experto.


Elección de un programador


Durante los años de existencia del lenguaje de programación m1l4, han aparecido muchos desarrolladores de asesores expertos. Muchos de ellos son visitantes habituales del sitio web mql4.com. Publican sus propios trabajos en la Base de código, escriben artículos y se comunican en el foro, ayudando a los principiantes a mejorar sus propias habilidades. Muchos de ellos tienen cuentas reales y operan tanto con un asesor experto como manualmente.

No hay (al menos yo no he visto ninguna) bases de datos de desarrolladores de asesores expertos donde uno pueda conseguir toda la información necesaria sobre un programador de MQL4 profesional. Y es difícil crear dicha base de datos, ya que muchos programadores de asesores expertos no están en este negocio durante mucho tiempo.

Este artículo tiene por finalidad ayudarle a encontrar un programador. En el Apéndice 1, Información de contacto sobre programadores de asesores expertos en mql4.com, puede encontrar toda la información disponible.

Al elegir un programador para la implementación de su asesor experto:
  • consulte a sus amigos: traders que ya hayan trabajado con programadores de asesores expertos;
  • lea los temas del foro sobre los asesores expertos implementados y no implementados;
  • consulte los perfiles de usuarios autorizados: muchos de ellos publican información en sus perfiles;
  • contacte personalmente con los programadores, a través de correo electrónico o ICQ.
Los precios y condiciones de trabajo pueden ser variar. Algunos de ellos trabajan mediante pago por adelantado y no le envían el código fuente hasta que hayan recibido la totalidad del pago, otros le enviarán el código listo como "regalo" confiando en su honestidad. Hay programadores de asesores expertos que no le darán el código fuente que acompaña al asesor experto solo en una cuenta. Por lo que deberá aclarar todos los detalles antes de tomar su decisión.

Comuníquese y negocie. Hay muchas variante, elija la correcta.


Probando un asesor experto

Después de discutir las condiciones de trabajo y aprobar el algoritmo, un programador escribirá el asesor experto y se lo enviará para la prueba. Su tarea es asegurarse de que el funcionamiento del asesor experto cumple los requisitos especificados.

En primer lugar, pruébelo en un probador de estrategias usando distintas combinaciones de parámetros. Es la forma más rápida de comprobar el algoritmo. Puede abrir un gráfico en el que se ha probado el asesor experto, y comprobar los resultados visualmente.


Si su asesor experto deben actuar no solo en el momento de la apertura de la barra sino también durante su creación, intente realizar la prueba en modo visual, verá las acciones del asesor experto en cada tick. Verá los valores de los indicadores en la barra cero (actual), cambiando y activando una orden Stop Loss con los movimientos bruscos del precio, etc.

Si la prueba en el probador de estrategias no muestra ningún error, pruebe su asesor experto en una cuenta demostración.

Intente iniciar varios asesores expertos con parámetros distintos o similares y opere simultáneamente con ellos. El asesor experto debe seguir funcionando de acuerdo con el algoritmo con independencia de lo que esté ocurriendo. Si no hay errores, puede decirle al programador que todo es correcto y que complete el trabajo.


Pero con mucha frecuencia la primera versión del asesor experto contiene discordancias con el algoritmo, derivadas de una descripción imprecisa o de un error del programador: es una situación común. Tan solo contacte con el programador y si se trata realmente de un error de él, este lo solucionará todo. Indique lo siguiente en su correo electrónico:

  • lo que está mal en el funcionamiento del asesor experto;
  • los parámetros del asesor experto donde se ha producido el error;
  • los parámetros de prueba (símbolo, período, período de tiempo, modo de modelado, servidor, etc.) o el tiempo de operación y la dirección del servidor si comprueba el asesor experto en una cuenta demostración;
  • un extracto del diario del probador;
  • varias capturas de pantalla con la descripción del problema;
  • registros del asesor experto (pestaña "Diario" en el probador o pestaña "Asesores expertos" cuando trabaje con una cuenta demostración).
Si incluye toda la información necesaria, el programador encontrar y solucionará el error rápidamente.

Normalmente, la colaboración implica una asistencia técnica incluso después de que el asesor experto esté listo y se hayan realizado los pagos. Esto significa que si se produce un error después de un mes de funcionamiento, el programador lo solucionará sin coste alguno. Depende de la forma en que lo haya acordado.


Conclusión

El trading automatizado está ganando cada vez más popularidad. Muchos traders confían la gestión de sus cuentas a asesores expertos o robots de trading completamente automatizados. Para escribir dicho programa se necesitan conocimientos y experiencia especiales. Por desgracia, no todos los traders tienen tiempo y ganas de estudiar el lenguaje de programación especial para la implementación de sus ideas. Este artículo pretende establecer y reforzar la conexión entre los traders y los traders programadores. Espero que el artículo origine la aparición de asesores expertos buenos y fiables.

Apéndice 1. Información de contacto sobre programadores de asesores expertos de mql4.com

Esta sección contiene la información de contacto sobre los programadores de asesores expertos que son miembros de la comunidad mql4.com. La lista se actualiza constantemente y si no puede encontrar ayuda ahora, compruebe la lista más tarde, probablemente encuentre uno. Recuerde que cualquier persona puede dejar aquí información de contacto, incluso los estafadores. Es casi imposible comprobar la calidad del trabajo y la honestidad de todos los desarrolladores de asesores expertos. Por ello, después de trabajar con algunos de ellos (con éxito o sin él), no olvide dejar su comentario sobre este artículo con su opinión sobre la persona con la que ha trabajado, ya que esto ayudará a otros traders a tomar la decisión correcta.

Si usted es un desarrollador de asesores expertos y quiere incluir su información de contacto en esta lista, puede enviármela y será añadido. No tiene ningún coste y solo requiere que cumpla sus obligaciones acordadas con un trader que encargue un asesor experto. Si aparecen quejas sobre su trabajo en los comentarios de este artículo no podrá resolver la cuestión en una semana, y será borrado de la lista. Espero que esto sea un caso excepcional.

Apodo Nombre Correo electrónico Información adicional
komposter Andrey Khatimlianskii mql@komposter.me www.komposter.me
komposterius
211-605-801
Mike Michael Bernardovich mikemb [@] ittportal [.] net
315-165-028
Tel.: +79015453588
michal Michal Rutka mqlservice.com [@] gmail [.] com
michal_rut
Tel.: +31614511749

Jan Klimo jan.klimo [@] gmail [.] com Tel.: +420777288782
fuzzbomb Andrew Young advisor [@] easyexpertforex [.] com www.easyexpertforex.com
giaras Giampiero Raschetti giampiero.raschetti [@] gmail [.] com
giaras
5leepless Damian Burrowes sleepless.damian [@] gmail [.] com
Vitovd Witold Wozniak contact [@] mqlsoft [.] com www.mqlsoft.com
vasya_vasya
Vasiliy Orlov pr0baproba [@] mail [.] ru
555-485-590
linx Lin Xie linx_mt [@] hotmail [.] com
linx_mt


MetaQuotes Software Corp. no se hace responsable del incumplimiento de los acuerdos entre un trader y un programador.