Preguntas de un "tonto" - página 20

 

Saludos a todos.

Pregunta - Quiero utilizar métodos de la clase CTrade en mi EA. ¿Qué comandos debo añadir al código para ello?

He probado mucho con #include, #import... Todavía no sale nada :(

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
axmed0207:

Saludos a todos.

Pregunta - Quiero utilizar métodos de la clase CTrade en mi EA. ¿Qué comandos debo añadir al código para ello?

He probado mucho con #include, #import... Nada funciona hasta ahora :(


El ejemplo de asesor experto en MACD puede ayudarle.

Conecte el módulo de la siguiente manera

#include <Trade\Trade.mqh>

Declare una variable de una de las dos maneras (dependiendo del algoritmo y de la necesidad de ciertas características de implementación)

Esto puede hacerse como un objeto independiente, o como parte de la clase principal.

1. CTrade m_trade;  // trading object (автоматически создается и удаляется)
2. CTrade *m_trade; // trading object (указатель на динамический объект, требуется инициализация и деинициализация. В противном случая будут проблемы)

Un ejemplo de cierre de una posición (en detalle en el código).

m_trade.PositionClose(Symbol())

Ejemplo de modificación de una posición (ver detalles en el código).

m_trade.PositionModify(Symbol(),sl,tp)

PS

También puede estudiar la clase CExpert en detalle.

 
Muchas gracias por la respuesta tan completa :)
 
2011.07.15 13:30:35 2011.07.08 00:00:01 Se ha detectado un bucle de reposo infinito durante las pruebas.
¿Qué significa?
 
dentraf:
2011.07.15 13:30:35 2011.07.08 00:00:01 Se ha detectado un bucle de reposo infinito durante las pruebas.
¿Qué significa?

Teóricamente, esto es una razón para descalificar a un participante del campeonato (al menos, problemas durante la prueba automática del EA), pero de hecho, es un trabajo incorrecto con sleep().

Aconsejo estudiar este artículo (y quizás otros) con más detalle.

En cuanto a su pregunta, aquí está la cita del artículo:

Función Sleep() en el probador

La función Sleep() permite suspender la ejecución de un programa mql5 durante algún tiempo mientras se trabaja en un gráfico en un Asesor Experto o en un script. Esto puede ser necesario cuando se solicitan algunos datos, que en el momento de la solicitud no están listos y hay que esperar hasta que lo estén. Un ejemplo detallado del uso de la función Sleep() puede encontrarse en la sección Organización del acceso a los datos.

En el probador, las llamadas a Sleep() no retrasan el proceso de prueba. Cuando se llama a Sleep(), los ticks generados se "reproducen" dentro del retardo especificado, como resultado de lo cual pueden dispararse órdenes pendientes, stops, etc. Después de llamar a Sleep(), el tiempo modelado en el probador se incrementa en el intervalo especificado en el parámetro de la función Sleep.

Si, como resultado de la ejecución de Sleep() el tiempo actual en el probador excede el final del período de prueba, se recibirá un error "bucle infinito en Sleep". Si se produce un error de este tipo, los resultados de las pruebas no se descartan, se completan todos los cálculos (número de operaciones, reducción de la deuda, etc.) y los resultados se pasan al terminal.

La función Sleep() no funcionará en OnDeinit() porque después de su llamada se garantiza que el tiempo del probador está más allá del intervalo de prueba.

 

¡Camaradas!

Voy a añadir un análisis del historial al Asesor Experto. ¿Puede decirme cómo organizar la salida de datos?

Digamos, la barra más larga de un año de historia. La forma de obtener el valor está clara, pero ¿dónde salir? Sería más conveniente que la salida fuera directamente al gráfico. ¿O utilizar la función de impresión del diario, pero no sé cómo funcionaría? ¿Reimprimirá continuamente los valores? ¿Tendré que establecer alguna condición complicada para la impresión? ¿Cuál sería su recomendación general?

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Общие функции / Print - Документация по MQL5
 
AUser:

¡Camaradas!

Voy a añadir un análisis del historial al Asesor Experto. ¿Puede decirme cómo organizar la salida de datos?

Digamos que la barra más larga de un año de historia. La forma de obtener el valor está clara, pero ¿dónde salir? Sería más conveniente que se imprimiera directamente en el gráfico. ¿O utilizar la función de impresión del diario, pero no sé cómo funcionaría? ¿Reimprimirá continuamente los valores? ¿Tendré que establecer alguna condición complicada para la impresión? ¿Cuál sería su recomendación general?


Pruebe a utilizar la función Comment(). Coloca el texto en la esquina superior izquierda del gráfico.

Allí también puede utilizar el símbolo "\n" para pasar a la siguiente línea. Desgraciadamente, "\t" no funciona.

 
voix_kas:

Pruebe a utilizar la función Comment(). Coloca el texto en la esquina superior izquierda del gráfico.

También puede utilizar "\n" para pasar a la siguiente línea. Desgraciadamente, "\t" no funciona.

Eso es todo, gracias)
 

¿Puede decirme cuántos datos se pueden meter en una matriz? Array de la estructura MqlRates, voy a poner todo el historial de barras horarias desde 2009, ¿cabrá?

p.d. Algo más con el probador de estrategias, no funciona los fines de semana porque el servidor no está disponible o algo me falla? El viernes parecía funcionar correctamente))

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных - Документация по MQL5
 

1. Todo parece ser. Si hay un límite, está en el nivel de umbral int o long. No hay tanta memoria RAM en el ordenador. =)

2. Describa con mayor precisión el problema del probador que no funciona. Códigos de error, capturas de pantalla...

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5