Aprender y escribir juntos en MQL5 - página 16

 
AUser:
¡Gente! Algunos consejos para los principiantes en la programación, cómo trabajar con el mango. ¿Qué es, un archivo en un buffer? ¿Cómo extraer la información para trabajar con ella?

Echa un vistazo:

Guía de referencia MQL5 / Indicadores técnicos

Guía de referencia MQL5 / Acceso a series temporales e indicadores / CopyBuffer

En resumen, el asa es un cierto puntero (enlace) al programa creó una copia del indicador, para ser utilizado en la función CopyBuffer.

Mira también los artículos para principiantes, allí se describe.

 
AUser:

¿Puedes decirme cómo asignar el valor del precio actual a una variable?

El artículo "Migración de MQL4 a MQL5" podría ser más fácil de leer.

También debería consultar la documentación más a menudo.

Esta es la respuesta a la pregunta del ejemplo de la función SymbolInfoDouble

double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
 

AUser:

También me pregunto si es posible cargar datos históricos en el mango del indicador.

Para ser más precisos, los datos no se cargan en el mango del indicador, los datos se cargan en matrices especiales utilizando las funciones de la sección "Acceso a los datos de las series temporales y del indicador".

Al menos estas funciones deberían estudiarse más a fondo.

CopyBuffer

Obtiene los datos de un buffer especificado de un indicador especificado en un array

CopyRates

Obtiene los datos históricos de la estructura Rates para un símbolo y un periodo especificados en una matriz

CopyTime

Obtiene los datos históricos de la hora de apertura de la barra para un símbolo y un período especificados en una matriz

CopiarAbrir

Obtiene los datos históricos del precio de apertura de la barra para un símbolo y un período especificados en una matriz

CopyHigh

Obtiene los datos históricos del precio máximo de la barra para un símbolo y un período especificados en una matriz

CopyLow

Obtiene los datos del historial del precio mínimo de la barra para un símbolo y un período especificados en una matriz

CopiarCerrar

Obtiene los datos históricos del precio de cierre de la barra para un símbolo y un período especificados en una matriz

 

AUser:

Y con la historia del indicador, no todo está claro. El problema es el siguiente: antes de comparar los valores de los indicadores en las barras, deberían estar recogidos en las matrices de indicadores. Los valores de las barras de 15 minutos son esperables, pero ¿qué pasa con las semanales? He mirado el manual - no entiendo))) Supongamos esto: CopyClose(Obtiene los datos históricos de los precios de cierre de barra para el símbolo y el periodo apropiados en un array) Los datos los obtenemos, pero ¿cómo hacer que el indicador los calcule? No entiendo algo.


¿Entiendo que estás escribiendo un Asesor Experto usando indicadores?

Si se recibe el mango y no hay problemas evidentes, los datos del indicador personalizado se obtienen utilizando el CopyBuffer, para los indicadores técnicos estándar es mejor aplicar las siguientes funciones

Este código debería escribir los datos de 20 barras del buffer 0 en el array del buffer y devolver el número de elementos realmente copiados del array o -1

int Res = CopyBuffer(MyHandle,0,0,20,buffer[]);

Además, los 20 compases se cuentan desde el compás 0, por lo que no debemos olvidar la serialidad (para más detalles, véase aquí). Puede leer sobre la obtención de datos adicionales aquí.

 
AUser:
Está explotando... ¿qué tiene de malo?

publicar la ayuda de la función OrderSend aquí

 
AUser:
Está tan escrito que es difícil de entender sin formación)

publicar la ayuda de la función OrderSend aquí

Sólo espero que lo leas, de lo contrario no podrás hacer nada.

 

AUser, - Sergeev tiene razón. La funciónOrderSend sólo tiene dos parámetros. Tienes que dedicar algo de tiempo a estudiar MQL5.

 
AUser:

Escrito por:

OrderSend(TRADE_ACTION_DEAL,Symbol(),1,SL,TP,10,ORDER_TYPE_BUY,ORDER_FILLING_CANCEL);

Ha salido mal. ¿Qué es lo que está mal?

Quiero comprar a un precio real.

Quiero obtener un código más detallado de esta área o un ejemplo de trabajo. 2;

2. Quiero decidir de inmediato en qué idioma está escrito este código;

3. nos gustaría que la gente aprendiera a leer la ayuda, en este caso, leer la descripción de la función OrderSend.

¡¡¡En este caso este fragmento será suficiente!!!

La función OrderSend() está destinada a la ejecución de operaciones comerciales mediante el envío de solicitudes al servidor de operaciones.

boolEnviarPedido(
MqlTradeRequest&request, //estructura de la solicitud
MqlTradeResult&result// estructura de la respuesta
);

Quiero que la gente aprenda más sobre las estructuras MqlTradeRequest yMqlTradeResult

5. Quiero que la gente se familiarice con una cosa tan maravillosa como CTrade (el relleno de esta clase se encuentra en el archivo \MQL5\Include\Trade.mqh).

Un ejemplo de su uso en un Asesor Experto se puede encontrar en el Asesor Experto estándar - Muestra de MACD.

Además, sería bueno saber qué ocurre con la orden a partir de la clase CSampleExpert hasta la siguiente función del código CTrade:

a) PositionOpen - Abre una posición con los parámetros especificados

b) PositionModify - Cambia los parámetros de posición por el símbolo especificado

b) PositionClose -Cierra la posición por el símbolo especificado.

PS

En conclusión, quiero que la gente no sólo lea la ayuda, sino que también sepa cómo buscar información en los archivos de la biblioteca estándar (no está mal familiarizarse con la combinación de teclas Ctrl+Mayús+F) y en los ejemplos ubicados en este sitio (Code Base - una cosa poderosa, si sabes cómo usarla).

 

Pregunta sobre la función Sleep(). ¿Entiendo correctamente que el uso de esta función en un Asesor Experto detiene la ejecución de ese EA solamente, y transfiere los recursos de la CPU (kernel) a las siguientes tareas en la lista de tareas de ese kernel? En otras palabras, ¿es correcto que la función Sleep() no ralentiza el hilo en sí donde se está procesando el Asesor Experto, sino que actúa como un interruptor entre el Asesor Experto actual y otros programas recogidos por un núcleo particular?

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

Pregunta sobre la estructura de MqlTradeResult. No he encontrado el campo de tiempo en él - tiempo de comprobación de la solicitud básica con éxito (o algo así). ¿Alguien recuerda si había una pregunta sobre la introducción de un campo de tiempo adicional en la estructura MqlTradeResult? Necesario para sacar una orden pendiente si de repente entra en el historial.

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