¿Cómo codificar? - página 307

 

...

Sí, has entendido bien

En cuanto a la configuración a fasle : mql es un lenguaje como C/C++, lo que significa que false == 0 y true == 1. Así que usted puede utilizar de esa manera. No puedes declarar el tipo de la variable global ya que son exclusivamente double, pero usando las formas superiores puedes usarlas como si fueran booleanas

crsnape@btinternet.com:
Ahh... ya veo. Porque las Variables Globales guardan sus valores en memoria. Así que como usted dice cuando termina el backtesting y su en 5000 decir, esto se guarda en la memoria, incluso si el backtesting se vuelve a ejecutar por lo que nunca devolverá falso porque BarsGV isnt por debajo de 5000? Por favor, esto es muy profundo.

Y además, si genera un error, pone HasOrderedGV a false para poder continuar con el resto del código?

¿He entendido bien?

BTW- ¿está permitido esto?

GlobalVariableSet(HasOrderedGV, false);

Porque en el Libro MQL4 dice

datetime GlobalVariableSet([/TD] [TD]string name, double value)
El segundo valor de mi instancia es bool y no double?
 

Vuelve a funcionar. Es increíble.

Gracias.

 

O era...

Puse mis fechas de prueba habituales que son 04.01.2011- 20.07.2012. Funcionó bien ayer por la tarde cuando introduje el BarsGV en init(), pero cuando lo probé esta mañana sin hacer ningún cambio sólo colocó una orden el 17.01.2011. Luego lo he vuelto a probar 5 minutos más tarde, sin hacer ningún cambio y me ha devuelto unas 30 órdenes desde el 19.01.2011 hasta el 21.04.2011.

Básicamente, funciona como debería, pero no llega a la fecha de finalización especificada. No hay errores en el diario, hace mi print() como debería, etc. Mis criterios de entrada deben desarrollar operaciones hasta el 20.07.2012.

Parece realmente temperamental y sólo puedo asumir que su hacer con mi GlobalVariable. ¿Qué piensa usted?

 

Este es mi Diario:

2012.07.23 09:08:16 2011.03.21 16:18 Probador: toma de ganancias #2 en 1.42100 (1.42100 / 1.42125)

2012.07.23 09:08:15 2011.03.04 14:39 Probador: toma de ganancias #1 en 1.40040 (1.40043 / 1.40068)

2012.07.23 09:08:14 2011.02.04 13:39 Probador: stop loss #3 en 1.35700 (1.35699 / 1.35724)

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Ticket Number 3 Symbol EURUSD Price 1.3718 SL 1.357 TP 0

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: EA intentando colocar el nivel de take profit...exitoso

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: modificar #3 comprar 0.01 EURUSD a 1.37175 sl: 1.35700 tp: 1.41600 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Take profit position calculated successfully

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Orden colocada con éxito

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: EA intentando colocar orden de compra...

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: open #3 buy 0.01 EURUSD at 1.37175 sl: 1.35700 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Tamaño de la posición calculado con éxito utilizando el porcentaje de riesgo derivado

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Porcentaje de riesgo listo para ser utilizado en el cálculo de los lotes

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Orden anterior en beneficio. Riesgo del 3% asignado

2012.07.23 09:08:14 2011.02.01 04:00 H4 Periodo EA EURUSD,H4: Ticket número 2 obtenido para la última orden abierta

2012.07.23 09:08:14 2011.02.01 04:00 H4 Periodo EA EURUSD,H4: Ticket número 2 obtenido para la última orden abierta

2012.07.23 09:08:14 2011.02.01 04:00 H4 Periodo EA EURUSD,H4: Comprobación de los criterios de compra... exitosa. Orden lista para ser colocada

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Ticket Number 2 Symbol EURUSD Price 1.36 SL 1.3396 TP 0

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: EA intentando colocar el nivel de take profit...exitoso

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: modify #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 tp: 1.42100 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Take profit position calculated successfully

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Orden colocada con éxito

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: EA intentando colocar orden de compra...

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: open #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Tamaño de la posición calculado con éxito utilizando el porcentaje de riesgo derivado

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Porcentaje de riesgo listo para ser utilizado en el cálculo de los lotes

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Orden anterior en beneficio. Riesgo del 3% asignado

2012.07.23 09:08:13 2011.01.21 20:00 H4 Periodo EA EURUSD,H4: Ticket número 1 obtenido para la última orden abierta

2012.07.23 09:08:13 2011.01.21 20:00 H4 Periodo EA EURUSD,H4: Ticket número 1 obtenido para la última orden abierta

2012.07.23 09:08:13 2011.01.21 20:00 H4 Periodo EA EURUSD,H4: Comprobación de los criterios de compra... exitosa. Orden lista para ser colocada

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Ticket Number 1 Symbol EURUSD Price 1.3442 SL 1.3254 TP 0

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: EA intentando colocar el nivel de take profit...exitoso

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: modificar #1 comprar 0.01 EURUSD a 1.34415 sl: 1.32540 tp: 1.40040 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Take profit position calculated successfully

2012.07.23 09:08:13 2011.01.19 04:00 H4 Periodo EA EURUSD,H4: Orden colocada con éxito

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: EA intentando colocar orden de compra...

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: open #1 buy 0.01 EURUSD at 1.34415 sl: 1.32540 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Tamaño de la posición calculado con éxito utilizando el porcentaje de riesgo derivado

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Porcentaje de riesgo listo para ser utilizado en el cálculo de los lotes

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: No se han identificado órdenes anteriores. Riesgo del 1% asignado

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Número de ticket -1 obtenido para la última orden abierta

2012.07.23 09:08:13 2011.01.19 04:00 H4 Periodo EA EURUSD,H4: Comprobación de los criterios de compra... con éxito. Orden lista para ser colocada

2012.07.23 09:08:12 H4 Period EA inputs: MagicNumber=42; RiskRewardRatio=3; D1SlowMAPeriod=200; D1FastMAPeriod=50; FastMACDPeriod=12; SlowMACDPeriod=26; SignalPeriod=9; DNCPeriod=120; SL_Period=10;

Se ejecuta como un reloj, pero por alguna razón decide dejar de colocar órdenes después de un cierto período de tiempo...

 

...

Lo siento,

Pero esos datos no son suficientes para decir lo que está sucediendo a su EA. Como he dicho un par de veces, sin el código todo lo que puedo hacer es adivinar , y de los datos adjuntos no puedo ni siquiera adivinar

crsnape@btinternet.com:
Este es mi Diario:

2012.07.23 09:08:16 2011.03.21 16:18 Probador: toma de ganancias #2 en 1.42100 (1.42100 / 1.42125)

2012.07.23 09:08:15 2011.03.04 14:39 Probador: toma de ganancias #1 en 1.40040 (1.40043 / 1.40068)

2012.07.23 09:08:14 2011.02.04 13:39 Probador: stop loss #3 en 1.35700 (1.35699 / 1.35724)

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Ticket Number 3 Symbol EURUSD Price 1.3718 SL 1.357 TP 0

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: EA intentando colocar el nivel de take profit...exitoso

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: modificar #3 comprar 0.01 EURUSD a 1.37175 sl: 1.35700 tp: 1.41600 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Take profit position calculated successfully

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Orden colocada con éxito

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: EA intentando colocar orden de compra...

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: open #3 buy 0.01 EURUSD at 1.37175 sl: 1.35700 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Tamaño de la posición calculado con éxito utilizando el porcentaje de riesgo derivado

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Porcentaje de riesgo listo para ser utilizado en el cálculo de los lotes

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4: Orden anterior en beneficio. Riesgo del 3% asignado

2012.07.23 09:08:14 2011.02.01 04:00 H4 Periodo EA EURUSD,H4: Ticket número 2 obtenido para la última orden abierta

2012.07.23 09:08:14 2011.02.01 04:00 H4 Periodo EA EURUSD,H4: Ticket número 2 obtenido para la última orden abierta

2012.07.23 09:08:14 2011.02.01 04:00 H4 Periodo EA EURUSD,H4: Comprobación de los criterios de compra... exitosa. Orden lista para ser colocada

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Ticket Number 2 Symbol EURUSD Price 1.36 SL 1.3396 TP 0

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: EA intentando colocar el nivel de take profit...exitoso

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: modify #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 tp: 1.42100 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Take profit position calculated successfully

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Orden colocada con éxito

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: EA intentando colocar orden de compra...

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: open #2 buy 0.01 EURUSD at 1.35995 sl: 1.33960 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Tamaño de la posición calculado con éxito utilizando el porcentaje de riesgo derivado

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Porcentaje de riesgo listo para ser utilizado en el cálculo de los lotes

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4: Orden anterior en beneficio. Riesgo del 3% asignado

2012.07.23 09:08:13 2011.01.21 20:00 H4 Periodo EA EURUSD,H4: Ticket número 1 obtenido para la última orden abierta

2012.07.23 09:08:13 2011.01.21 20:00 H4 Periodo EA EURUSD,H4: Ticket número 1 obtenido para la última orden abierta

2012.07.23 09:08:13 2011.01.21 20:00 H4 Periodo EA EURUSD,H4: Comprobación de los criterios de compra... exitosa. Orden lista para ser colocada

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Ticket Number 1 Symbol EURUSD Price 1.3442 SL 1.3254 TP 0

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: EA intentando colocar el nivel de take profit...exitoso

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: modificar #1 comprar 0.01 EURUSD a 1.34415 sl: 1.32540 tp: 1.40040 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Take profit position calculated successfully

2012.07.23 09:08:13 2011.01.19 04:00 H4 Periodo EA EURUSD,H4: Orden colocada con éxito

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: EA intentando colocar orden de compra...

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: open #1 buy 0.01 EURUSD at 1.34415 sl: 1.32540 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Tamaño de la posición calculado con éxito utilizando el porcentaje de riesgo derivado

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: Porcentaje de riesgo listo para ser utilizado en el cálculo de los lotes

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4: No se han identificado órdenes anteriores. Riesgo del 1% asignado

2012.07.23 09:08:13 2011.01.19 04:00 H4 Periodo EA EURUSD,H4: Número de ticket -1 obtenido para la última orden abierta

2012.07.23 09:08:13 2011.01.19 04:00 H4 Periodo EA EURUSD,H4: Comprobación de los criterios de compra... con éxito. Orden lista para ser colocada

2012.07.23 09:08:12 H4 Period EA inputs: MagicNumber=42; RiskRewardRatio=3; D1SlowMAPeriod=200; D1FastMAPeriod=50; FastMACDPeriod=12; SlowMACDPeriod=26; SignalPeriod=9; DNCPeriod=120; SL_Period=10;

Funciona como un reloj, pero por alguna razón decide dejar de hacer pedidos después de un cierto período de tiempo...
 

Hola mladen, he adjuntado el archivo. Espero haberlo escrito bien para que tenga sentido.

Archivos adjuntos:
 

...

Por lo que veo en el código: las barras contadas (la función IndicatorCounted()) no funcionan en los EAs.(Sólo asumo que estás usando eso ya que el código carece de la definición de CountedBars)

Sólo puede funcionar en los indicadores

crsnape@btinternet.com:
Hola mladen, he adjuntado el archivo. Espero haberlo escrito bien para que tenga sentido.
 

Lo siento mladen, no sabía a qué te referías con la función CountedBars ya que no la he utilizado en mi código, así que descargué el archivo que había publicado y lo abrí y es completamente diferente al que adjunté. ¿Es extraño?

Definitivamente adjunté el correcto, ¿es porque tengo un signo de candado al lado del archivo en mi computadora - eso es todo lo que puedo pensar?

Debes haber estado pensando qué demonios cuando abriste ese código porque apenas hay nada en él.

 

...

Me refería a esta parte del código

if (Bars > CountedBars)

CountedBars = Bars

else

return (-888);

Y no veo en absoluto dónde se declara CountedBars (incluso me falla la compilación de ese código - no sólo por la falta de declaración de esa variable)

crsnape@btinternet.com:
Lo siento mladen, no sabía a qué te referías con la función CountedBars ya que no la he utilizado en mi código, así que descargué el archivo que había publicado y lo abrí y es completamente diferente al que adjunté. ¿Raro?

Definitivamente adjunté el correcto, ¿es porque tengo un signo de candado al lado del archivo en mi computadora - eso es lo único que se me ocurre?

Debes haber estado pensando qué demonios cuando abriste ese código porque no hay casi nada en él.
 

Lo siento mladen, el código que has visto a través del archivo que he adjuntado es completamente erróneo- no tiene ningún parecido con mi código actual a pesar de adjuntar el archivo correcto (he comprobado dos veces el nombre del archivo).

Lo único que se me ocurre es que el archivo en el que estoy trabajando tiene un candado al lado en mi sistema. No sé lo que es o hace. ¿Alguna idea?

PS- es mi propia EA porque he utilizado el asistente de creación de EA y tiene mi nombre en la parte superior junto a los derechos de autor,