¿Algún error de Molanis? - página 3

 

RJo:

Dicho esto, todavía no he visto un ex4 funcional con un mq4 defectuoso de SB.

Usted ha publicado código mql4 defectuoso . . parece que Molanis no es mejor que EA Builder.
 
RJo:


Ah, entonces... los ordenadores son los mejores en el comercio y por lo tanto hay que prescindir del humano.


No.... los ordenadores son los mejores en el comercio automatizado;)
 
RaptorUK:
Has posteado código mql4 defectuoso . . parece que Molanis no es mejor que EA Builder.


"Defectuoso" en relación con el archivo ex4, ya que el ex4 es más funcional que el mq4. Como dije en mi primer post, no soy un codificador. Sí. Gracias por tu diagnóstico específico. Oh si... no tienes uno.

 
RJo:


"Defectuoso" en relación con el archivo ex4, ya que el ex4 es más funcional que el mq4. Como dije en mi primer post, no soy un codificador. Sí. Gracias por tu diagnóstico específico. Ah, sí... no tenías ninguno.

No necesito duplicar lo que WHRoeder ya ha dado .
 
JDeel:

¿Por qué no empezamos a programar en ensamblador? Podemos controlar todo en el nivel más bajo disponible (después del código máquina). Sí, se necesita más esfuerzo para aprender eso, ¡pero seguramente obtendremos un código tan pequeño y súper optimizado! Esto es taaaan increíble, ¿no creen, gente?

deVries, Molanis no es mi herramienta y nunca he hecho EA's con ella. Pero veo que no eres un fan de los EA Builders y puedo aconsejarte que nunca intentes trabajar con ellos. Sólo tiene que utilizar MQL4/MQL5, esto no está prohibido. Hay gente a la que le gusta más el color rosa, y gente a la que le gusta más el color azul. Siempre ha sido así y seguirá siéndolo.


No cambies mis palabras.... Pruébanos que puedes codificar correctamente un Asesor Experto con el uso de tu herramienta que escribí. Todavía quiero decir que...

Nunca escribí que Molanis es su herramienta. Si buscas EABuilders en Google encontrarás otras. Tal vez usted es un usuario de la NoProgra Builder ...

y crees que es una herramienta que puede codificar correctamente tus EA's para MetaTrader4 entonces pruébalo con ese constructor.

Pero hay gente que aconseja usar EABuilders o promocionan que los usen..

Si quieres promocionar cualquier producto entonces asegúrate de que ese producto es bueno probándolo

Y todavía no he visto a nadie que lo consiga....

La gran desventaja de esas herramientas es que habrá gente que piense que no es necesario conocer los fundamentos de mq4, cuando una herramienta puede hacer su producto

Pero no saben qué calidad obtienen.... de esa herramienta. O no reconocen los errores en los programas que pueden conseguir (gratis o no gratis) usando internet

 
RJo:

Gracias por su diagnóstico específico. Ah, sí... no tenías ninguno.

Te voy a dar un ejemplo concreto. . .

int CLOSELONG(string symbol_c) {
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 return(0);
}

//CLOSESHORT closes short positions
/*
*** Generated with Molanis Strategy Builder 3.1 ***
*** www.molanis.com ***
*** Released 2010-02-20 ***
*/
int CLOSESHORT(string symbol_c) {
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 return(0);
}

Estas 2 Funciones llaman a la misma función dos veces . CloseAllPositions, la primera para Longs, la segunda para Shorts . . . por qué haría eso ? lo hace para limpiar las Órdenes que falló en cerrar la primera vez que se ejecuta CloseAllPositions, por qué falla en cerrar posiciones ? porque el bucle usado para cerrar estas posiciones cuenta hacia arriba y ahora hacia abajo . . . y ya sabes por qué falla ya que has leído el hilo que creé sobre este mismo tema.

Así que en lugar de entender por qué algunas posiciones se dejan abiertas, la buena gente de Molanis ha hecho un apaño... llamando a la misma función una segunda vez para ponerla en orden después de la primera.

 

Gracias por publicar el código de Molanis, RJo, lo revisaré más tarde - el cálculo de lotes de Molanis es muy terrible. Creo que los usuarios de Molanis / EA SB son usuarios felices, hasta que aprendan mql, y para entonces verán Molanis / EA SB desde un punto de vista totalmente diferente.

Creo que es mejor defender nuestro dinero primero que defender Molanis / EA SB - o nuestra decisión de utilizar uno. ;).

 
RJo:
Indi:


Gracias por publicar los códigos ....

Por muy bueno que sea WHRoeder en señalar los errores tan rápidamente yo no lo soy y no tiene sentido volver a decirlo

Pero si no sabes codificar puedes hacer otra cosa que ves aquí....

.

Hice una prueba para ver el comportamiento del indicador y que da también algún tipo de advertencia hizo dos fotos

Probando en 1 minuto (hace que el EA no opere) a partir del 1 de enero de 2012

Puedes ver el comportamiento antes de la prueba del indicador en esta imagen

Y el comportamiento cuando la prueba comienza

Este comportamiento también lo verás si colocas en la prueba un EA que no esté usando el indicador

.

Parece un comportamiento totalmente diferente. Esto es también una advertencia para echar un vistazo al código o al comportamiento del indicador antes de usarlo.

.

Parece que este código del indicador no está hecho por Molanis porque comienza con .....

// This is Not Tested , Use At Your Own Risk !

//+--------------------------------------------------------------------------+
//| 3 MA Cross w_Alert v2.mq4                                                |
//| Copyright © 2005, Jason Robinson (jnrtrading)                            |
//| http://www.jnrtading.co.uk                                               |
//| 3 ma conversion and Alert , David Honeywell , transport.david@gmail.com  |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+--------------------------------------------------------------------------+

/*
  +-------------------------------------------------------------------------------+
  | Allows you to enter 3 ma periods and it will then show you and alert you at   |
  | which point the 2 faster ma's "OPEN" are both above or below the Slowest ma . |
  +-------------------------------------------------------------------------------+
*/   

Creo que el error de este indicador es que calcula el futuro

   for(i = 0; i <= limit; i++)
    {
      
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
       {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
       }
      Range=AvgRange/10;
       
      fasterMAnow      = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+1);
      fasterMAprevious = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+2);
      fasterMAafter    = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i-1);
      
      mediumMAnow      = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+1);
      mediumMAprevious = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+2);
      mediumMAafter    = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i-1);
      
      slowerMAnow      = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+1);
      slowerMAprevious = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+2);
      slowerMAafter    = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i-1);
Cuando " i = 0 " entonces " i-1 " es futuro.....
 
WHRoeder:

Ichi_Cloud_EA.mql4 sin ningún orden en particular

  1. Is_micro_account externo en lugar de calcularlo a través de Market_info
  2. Usando micro_account y NormalizeDouble asume que lotStep es 0.1 0.01. No se permiten otros valores definidos por el broker.
  3. externo FiveDigits en lugar de computarlo. Solo prueba para 3 o 5 permite pares estándar, pares tipo jpy. Metales de comercio FAIL. ¿Por qué la prueba de los ajustes no válidos.
  4. El PipMultiplier global nunca se restablece al cambiar el gráfico.
  5. muchos bools externos no pueden ser probados por la estrategia.
  6. No hay razón para usar dos números mágicos
  7. Sólo operará cuando la hora esté entre TradingStartTime y TradingEndTime. No hay posibilidad de establecer la hora por encima de la medianoche (por ejemplo, empezar a las 2000, terminar a las 0600, es decir, sólo en la sesión de Sydney)
  8. Utiliza PreviousBarCount==Bars. Bares en poco fiables (barras máximas en el gráfico) El volumen no es fiable (se pueden perder los ticks) utiliza siempre la hora.
  9. utiliza iClose(Symbol(),0,1) en lugar del más simple y rápido Close[1]
  10. ¡¡en Init Slippage = Slippage*PipMultiplier; significa que CADA VEZ que se cambia de gráfico (par o marco de tiempo) el Slippage aumenta 3 , 30, 300, 3000!!
  11. magiccond y otros bool usan if (condition) boolVar= true; else boolVar = false; cuando podría usar el simplificador boolVar = condition;
  12. Nunca almacena en caché los valores si (iClose() <> iCustom()) las mismas llamadas a iClose e iCustom son llamadas 4+ veces.
  13. Cuenta hacia arriba mientras se cierra. llama a la función dos veces. Contar hacia arriba significa que fallará cada dos órdenes. Llamar a la función dos veces significa que falla en 4 o más órdenes abiertas. Siempre cuenta hacia abajo.
  14. "M-ERROR : La expiración debe ser de al menos 1 minuto".
  15. Para la orden pendiente, llama Normaliszedouble(precio, Dígitos) que no funcionará cuando ticksize != Punto

Al estar más preocupado por el #10, lo investigué primero. Yo estaba en el medio de escribir una solicitud de apoyo gigante a Molanis cuando encontré esto:

El deslizamiento tal y como se utiliza en el código del EA es una variable entera externa (extern int).

"Antes de la ejecución de init() las variables externas obtendrán valores establecidos por un usuario en la barra de herramientas de configuración y en la ejecución de init() las variables externas tendrán nuevos valores establecidos por un usuario. Por lo tanto, los nuevos valores de las variables externas son válidos desde el momento de una nueva sesión (init - start - deinit) de un Asesor Experto que comienza desde la ejecución de init()"(https://book.mql4.com/variables/types).

Así que parece que... mientras que las variables globales son generalmente ignoradas en favor de los valores antiguos en la ejecución de init(), las variables externas se actualizan en la ejecución de init(). El deslizamiento se mantiene en 3 (o en el valor que yo establezca) sin importar las veces que cambie de gráfico. Creo que esta es la forma en que el EA está diseñado para operar.

 
RJo:
Así que parece que... mientras que las variables globales son generalmente ignoradas en favor de los valores antiguos en la ejecución de init(), las variables externas se actualizan en la ejecución de init().

El deslizamiento se mantiene en 3 (o lo que sea que configure) sin importar cuántas veces cambie los gráficos. Creo que así es como el EA está diseñado para operar.

INCORRECTO ¿Te has molestado siquiera en LEER el enlace que has puesto(https://book.mql4.com/variables/types) dice "Las variables globales se inicializan sólo una vez antes de indicar la ejecución de las funciones especiales".

Las variables globales y estáticas se establecen cuando el EA se CARGA no durante el ciclo deinit/init.

Agregue una declaración de impresión justo después de la Slippage = Slippage * 10 y ejecutarlo y cambiar los gráficos o marcos de tiempo y mirar en el registro si usted no quiere creer la documentación de nosotros..