aventuras de un novato - página 8

 
niko:

Hola CB,


Creo que Tim está de vacaciones ahora, ya que no he tenido noticias suyas desde hace unos días. Por lo tanto, sigo con su código, ya que me ayudará a operar (ya que estoy operando manualmente la estrategia ahora, y significa despertar horas tempranas, etc). Modifiqué todo el código como me pediste, pero por alguna razón sigue devolviendo un error (que tiene que ver con "==" esta vez, muy extraño).


Otra cosa es que me di cuenta de que la función de inicio no estaba cerrada. Así que añadí "}" después de la primera función dentro del inicio (), si no hacemos eso, el código genera un error con la cadena de función posterior fnGenerateSignal() (diciendo que la definición de la función para eso es inesperada).


Gracias como siempre. ¡Espero sus comentarios/enmiendas!

Nick

Hola Nick.

Tienes todo un conjunto de rizos que son innecesarios en el bloque start(). Así que puedes eliminar tanto el primer { como el último }.

Te falta una sentencia condicional if en el bloque fnGenerateSignal(), así que tal y como está escrito, siempre devolverá "OP_BUY".

No veo ningún problema con ==. ¿Cuál es el error exacto que obtienes?

CB.

 
cloudbreaker:

Hola Nick.

Tienes todo un conjunto de rizos que son innecesarios en el bloque start(). Así que puedes eliminar tanto el primer { como el último }.

Te falta una sentencia condicional if en el bloque fnGenerateSignal(), así que tal y como está escrito, siempre devolverá "OP_BUY".

No veo ningún problema con ==. ¿Cuál es el error exacto que obtienes?

CB.

Hola CB, gracias por venir al rescate.

He añadido la sentencia condicional if que has resaltado.

El error == indica: "=="-tipos diferentes en la comparación, y destaca la siguiente línea

if ((OrderSymbol() == Symbol()) && (OrderType() == sSignal))


Creo que el error == es porque estamos comparando OrderType que es int con sSignal que es string, por lo que no pueden ser iguales. Voy a ver si puedo cambiarlo, y publicar lo que hice.

 

Hey he cambiado 'OP_BUY' a 1, OP_SELL a -1, para superar el error de tipos incompatibles (esto significó cambiar fnGenerateSignal también). No produce ningún error cuando se compila.


Sin embargo, cuando lo ejecuto en el probador de estrategias sigue ejecutando múltiples órdenes de compra y venta una tras otra (y sólo debería tener 1 orden en 1 dirección). ¿Alguna idea?

Archivos adjuntos:
 

Pruebe esto y vea cómo le va.

- Compruebe primero sus declaraciones condicionales en fnGenerateSignal() para asegurarse de que todos los menores y mayores son correctos, ya que tuve que volver a añadir el primero.

- Si sigue sin funcionar, entonces empieza a insertar sentencias Print() para poder ver lo que hacen las distintas variables en los puntos clave.


CB

Archivos adjuntos:
 
niko wrote >>

Hey he cambiado 'OP_BUY' a 1, OP_SELL a -1, para superar el error de tipos incompatibles (esto significó cambiar fnGenerateSignal también). No produce ningún error cuando se compila.

Sin embargo, cuando lo ejecuto en el probador de estrategias sigue ejecutando múltiples órdenes de compra y venta una tras otra (y sólo debería tener 1 orden en 1 dirección). ¿Alguna idea?

Hola Niko,

Bienvenido desde Turquía.

¿Cómo van las cosas?

Saludos

Huckleberry

 

Hola Nick


Lo siento, no sabía que habías vuelto de las vacaciones.


Me alegro de que lo hayas pasado bien en Turquía.

Adjunto el código actualizado con notas, etc.


La siguiente tarea es completar y depurar. Luego se puede empezar a probar. Un poco más de ordenación de los comentarios en el código no sería una mala idea tampoco.


Saludos

Tim
Archivos adjuntos:
 
TSWilson:

De hecho, he eliminado algunos de los comentarios en la versión que acabo de publicar arriba. :-)


CB

 
Hola chicos, ¡parece que todo el equipo ha vuelto a la acción! Gracias Tim voy a proceder con su código, y cuando tenga la oportunidad voy a seguir con la CB.
 
niko:
Hola chicos, ¡parece que todo el equipo ha vuelto a la acción! Gracias Tim, seguiré con tu código, y cuando tenga la oportunidad seguiré con el de CB.

Puedo pedirte que confirmes algo sobre tu estrategia.

Si no recuerdo mal, usted había dicho antes que quería tener un solo EA que podría ser caído en cualquier par y el comercio sólo en el par de la tabla que se cayó en - y que haría todas sus decisiones de negociación basado sólo en el par de la tabla que se cayó en. Por lo tanto, usted sólo tendría una única base de código que mantener. ¿Sigue siendo así?


CB

 
cloudbreaker wrote >>

Puedo pedirte que confirmes algo sobre tu estrategia.

Si no recuerdo mal, usted había dicho antes que quería tener un solo EA que podría ser caído en cualquier par y el comercio sólo en el par de la tabla que se cayó en - y que haría todas sus decisiones de negociación basado sólo en el par de la tabla que se cayó en. Por lo tanto, usted sólo tendría una única base de código que mantener. ¿Sigue siendo así?

CB

Hola CB, Lo ideal es tener un EA multipar - que es lo que Tim y yo estamos tratando de construir. Sin embargo, un EA de un solo par también es muy deseable, ya que me está enseñando a codificar. Sus estilos de codificación difieren y es un excelente ejercicio para mí para ver cómo la misma/similar idea puede ser codificada de manera diferente. Además, pensé que si terminábamos el EA individual primero, entonces lo usaría para ayudarme a operar manualmente, pero parece que ahora ambos códigos estarán terminados al mismo tiempo