Bueno, en primer lugar, y principal,
MUCHISIMAS GRACIAS compi, por los elogios del otro día. Tal como te comenta el excelente compañero Tivag, de lo que se trata es de cuando tenemos algún rato libre, poder echar una mano si se puede.
En segundo lugar, bueno, siento que te hayas decepcionado con el uso de EAs, o más bien cabría decir, con éste que estabas intentando programar en concreto, (yo creo que sería más correcto decir eso). Respecto a este EA que estabas intentando hacer o probar, me gustaría comentar varias cosas:
1). NO SE PUEDE NI DEBE GENERALIZAR.
Que un EA no obtenga los resultados que tú esperabas, no es extrapolable a todos los EAs ni al conjunto de todo el trading automático, más aún si dicho EA en el que basamos nuestro juicio,
NO ESTA DISEÑADO POR UN PROFESIONAL. Si fuera tan sencillo con hacer un cruce de medias, aprender 4 instrucciones de
mql4, "medio" programarlas, y adjuntar 4
líneas que hemos preguntado o nos han "medio" guiado por un foro, evidentemente prácticamente todos los
traders en general y más aún todos los de este foro serían ricos, jajajaja.
El Trading automático, tiene una enorme complejidad, y no es tan sencillo poner ahí 4 instrucciones y que el robot nos haga rico en 4 días, requiere muchísimo esfuerzo, dedicación y muchas horas y experiencia. Es como si, extrapolándolo al trading manual, yo no supiera nada de trading ni de forex, fuera a un seminario de un
broker, me explicaran 4 cosas, o las preguntase por un foro, y ya al día siguiente creyera que se
operar y me lanzara a ello, ¿qué pasaría?, pues que por esa regla de 3, me decepcionaría totalmente, y diría que el trading manual no vale para nada y es imposible ganar con él, lo cual, depende de muchísimas otras circunstancias, no tiene por qué ser cierto. El trading automático, al igual que el manual, puede ser rentable o también puede no serlo, pero el manual igual. Dependerá de la
estrategia y de cómo esté programado el EA, y si hace realmente lo que queremos de forma correcta.
2). Obviamente, a nadie se le escapa que con un cruce de medias no te vas a hacer rico ni tú, ni nadie, jajaja. Pero eso ni con un EA, ni en manual tampoco. Eso ya te lo adelanto yo, que hago ambos tipos de trading (hago manual y hago automático). Y vamos, si tú o quien sea me demuestra alguna vez que se ha hecho rico en FOREX con un cruce de medias, tal cual, sin más ni más, ME COMPROMETO A PAGAROS LA HIPOTECA DURANTE TODO EL AÑO 2016, por poner un ejemplo, sea en manual o sea en automático, jajajaja.
3). Y hablando en concreto del EA que estabas intentando programar,
Pues bueno, en realidad yo creo que NADIE de los que estuvimos intentando ayudarte creo que hemos sabido qué querías hacer exactamente. En un principio, Tivag te puso un código standard pensado para aplicarlo a cierre de
vela, que es lo más lógico para un cruce de medias.
Como decías que no lo querías a cierre de vela, te puse yo en mi caso la modificación para poder tener la condición de cruce a media vela, pero el EA depende de todo el resto de código y condiciones que le hayas puesto y como se interrelacionen todas entre sí, así que puede que compre o no compre o deje de comprar dependiendo de muchas cosas y condiciones que se relacionen entre sí dentro del mismo (solo por poner algunos ejemplos, pues depende de si le dices que si ya tiene una operación abierta que no abra otra, o no, que si se da el cruce contrario salga de la operación anterior o no, que si en una vela ya ha metido una orden ya no vuelva a meter otra o no, los demás filtros que pueda llevar, el tipo Stop de pérdidas y Objetivo que lleve, el Money Managementetc etc etc).
En concreto, lo de entrar en un cruce de medias a media vela es bastante problemático, dependiendo de cómo hayas hecho el resto del EA, y si ha sido desarrollado por alguien que está aprendiendo, pues más problemático aún, de ahí que te diga que lo lógico, al menos para empezar a aprender, sería ponerlo a cierre de vela, ya que a media vela si no has puesto otra serie de condiciones necesarias, en muchos casos te va a entrar y salir un montón de veces en ciertas
velas y ello te hace perder muchas operaciones, ya que si las medias están cerca una de la otra, se pueden estar produciendo constantemente muchos cruces arriba y abajo a lo largo de una vela.
4). El otro día también preguntabas, que si había algún caso en que no compraba al haber cruce y tal
Bueno, depende de varias cosas, y de cómo esté hecho el resto del EA, pero está claro que si se cumplen las condiciones que yo te puse, SIEMPRE que se cumplan, lo que tengas entre las llaves de esas condiciones se va a ejecutar. Ahora bien, hay que ver si de verdad las veces que comentas que no compraba o vendía, de verdad se habían cumplido esas condiciones. Yo lo que te puse es una condición standard derivada de lo que te pusieron los demás compañeros (en concreto Tivag) y eso te puede servir como guía, para darte la idea de como hacerlo, pero luego hay que adaptarlo a las demás condiciones del EA y a lo que realmente quieres que haga el EA y diseñarlo teniendo en cuenta todo en su conjunto.
NO HAY NINGUNA CONDICION MAGICA que alguien te ponga por aquí en 4 líneas y tú la pegues tal cual en la parte del EA que se te figure y que ya eso vaya a hacer automáticamente que el EA haga exactamente lo que tú quieres que haga, en primer lugar porque SOLO TU sabes realmente qué es exactamente lo que querías que hiciera y nadie más está en tu cabeza ni lo has precisado mucho, y en segundo lugar, porque una parte del código está, como te comento más arriba, interrelacionada con todas las demás partes del código y todas influyen en todas, y habría que ver cómo se ha diseñado todo. De ahí que te comente que NO ES IGUAL, y a veces incluso puede que ni siquiera se parezca, si lo ha diseñado un profesional o no ha sido así. Sí que hay ciertos casos relativamente poco habituales en que el código que yo te puse no se cumpla y en cambio tú veas un cruce visualmente en el gráfico, pero como ya te comento eso sería una condición estandard de guía para darte algo de idea de cómo poder hacerlo, aunque en ésto hay que calentarse muchísimo la cabeza y no es tan fácil como pegar aquí en el foro 4 líneas de código.
Dependiendo de cómo quisieras toda la otra serie de circunstancias a tener en cuenta que te comenté antes (si quieres que entre varias veces en la misma vela o no, si solo puede abrir una cuando haya cerrado la otra, etc etc etc), habría que adaptarlo, meterle muchas más condiciones y además, las mismas condiciones habría que cambiarlas, y no ponerlas como las que yo te puse, sino que habría otras formas de hacer imposible que hubiera cruce alguno sin que se cumpliera la condición, o al menos reducirlo solo a casos en los que pierdas conexión con el broker, pero eso sería más complejo de explicar, luego habría que meterle otra serie de condiciones para impedir aún más reentradas indeseadas, etc, etc, etc, y entonces con ello luego preguntarías como impedir lo otro, luego que otra condición habría que poner para que no reentrara en no se qué condiciones, etc, y no acabaríamos el post nunca.
5. CONCLUSION
Creo que el objetivo de estos post de consultas, dudas, y demás, es de resolver algo muy concreto que le puede servir de guía como punto de partida a alguien que ya tenga algo (o bastante) de base. Si esto no se cumple, en teoría yo creo que tendrías que seguir estudiando, practicando y dedicándole cientos de horas hasta que vayas consiguiendo que los robots hagan realmente lo que quieres. Cuesta realmente mucho esfuerzo, y los que lo hacemos, no es porque ya naciésemos así y ya lo supiésemos todo en 4 días, sino porque hemos estado miles de horas.
Y, mientras tanto, si se quiere un robot que haga exactamente lo que queremos, bien diseñado en su conjunto, y sin ningún tipo de fallo o
error posible, la única opción es contratar a un profesional que lo desarrolle (no digo que tenga que ser yo, vamos, en mi caso en este momento ni podría hacerlo por los trabajos que tengo pendientes y las fiestas que se avecinan, sino a cualquiera, que hay muchos y muy buenos), pero si ya comentas que abandonas el tema, pues no se hable más. Cada uno elige su camino y no a todo el mundo se le da bien un camino o el otro, cada cual elige el suyo bajo su criterio.
Ahora bien, en mi opinión, generalizar TODO el trading automático, en base a un EA, a priori, basado en una estrategia bastante frágil, y seguramente mal diseñado, no es correcto.
Saludos y un abrazo.