Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1238

 
Oleg Remizov:

Y según mis observaciones, a los usuarios les gusta que el Asesor Experto muestre información variada en la pantalla: dibuja flechas, líneas, canales y otras cosas para mostrar la vigorosa actividad de la "inteligencia artificial").

De acuerdo con los indicadores, el Asesor Experto proporciona trailing. Quiero visualizar este proceso para que un usuario pueda ver la línea de puntos con StopLoss.

Utilice una línea de tendencia, el primer punto de anclaje es la barra actual y el segundo es 1 barra en la historia, ponga el grosor de 2-3

 
Vitaly Muzichenko:

Utilice una línea de tendencia, el primer punto de anclaje es la barra actual y el segundo 1 barra en la historia, ponga el grosor en 2-3

¡Gran idea! Muchas gracias, se ve muy bien.

tendencia

 
ANDREY:

Esto es lo que dice el libro de texto de Kovalev sobre la inicialización de un array al mismo tiempo que se declara

8.4.4 Inicialización de matrices

Las matrices unidimensionales y multidimensionales se inicializan con una secuencia unidimensional de constantes separadas por comas. La secuencia está encerrada entre llaves:

int Mas_i[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 }

double Mas_d[2][3] = { 0,1, 0,2, -0,3, -10,2, 1,5, 7,0 };

bool Mas_b[5] = { false, true, false, true, true }

Una o más constantes pueden ser omitidas en la secuencia de inicialización.

Del libro de texto me parece que cuando se declara un array, se inicializa el array completo con todos los datos, no sólo el primer elemento del array.
Si he entendido mal el libro de texto, le agradecería que me indicara qué he entendido mal.

No tengo el menor deseo de discutir su libro de texto, no lo he leído

y escribió aquí en el foro que el libro de texto es anticuado e irrelevante.

un array bidimensional puede ser inicializado de esta manera:

int arr[2][5] = {{1, 2, 3, 4, 5,}, {6, 7, 8, 9, 10}};
 
Igor Makanu:

ni el más mínimo deseo de discutir su libro de texto, no he leído

y han escrito aquí en el foro que el tutorial es obsoleto e irrelevante.

Un array bidimensional puede ser inicializado de esta manera:

Muchas gracias por su ayuda. Has adivinado directamente mis pensamientos. Estoy desconcertada sobre cómo inicializar un array bidimensional.....pero sólo mediante la funciónArrayInitialize();
El manual de esta función da información sobre la inicialización sólo de un array unidimensional, según me ha parecido.
Le estaré muy agradecido si me lo dice.

 
ANDREY:

Muchas gracias por su ayuda. Has adivinado directamente mis pensamientos. Estoy desconcertada sobre cómo inicializar un array bidimensional.....pero sólo por medio de la función ArrayInitialize ();
En la referencia sobre esta función se da la información sobre la inicialización sólo de un array unidimensional, como me pareció.
Le estaré muy agradecido si me lo dice.

ArrayFill() permite rellenar todos los elementos de una matriz con el valor deseado y puede utilizarse para una matriz bidimensional. Mira el ejemplo en la ayuda de esta función.

Por cierto, he comprobadoArrayInitialize() aplicado a un array bidimensional, también funciona. Pero en ambos casos sólo se pueden inicializar todos los elementos con un valor determinado.

Si desea establecer un valor diferente para cada elemento, estas funciones no funcionarán.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
 
Oleg Remizov:

ArrayFill() permite rellenar todos los elementos de una matriz con el valor deseado y puede utilizarse para una matriz bidimensional. Vea el ejemplo en la ayuda de esta función.

Por cierto, he comprobadoArrayInitialize() aplicado a un array bidimensional, también funciona. Excepto que en ambos casos sólo se pueden inicializar todos los elementos con un valor determinado.

Si necesita establecer un valor diferente para cada elemento, estas funciones no funcionarán.

Muchas gracias por su ayuda.

 
Oleg Remizov:

Lamentablemente, la plantilla no me funciona. La función de visualización del indicador debe ser activada/desactivada en los ajustes, y el dibujo debe hacerse directamente desde el EA. El Asesor Experto debe poder ser transferido en un solo archivo.

En lugar de la flecha, dibuje una línea de tendencia que tenga el mismo precio y tiempo en ambos puntos. Utilice el grosor de la línea para ajustar el tamaño del punto resultante.

 
Hola, soy un recién llegado y me gustaría saber cómo retirar dinero de mi cuenta y luego cuándo transferirlo
 

Saludos.

Hay una cosa así en MT4:

#import "user32.dll"
   int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]);
   int RegisterWindowMessageA(uchar &lParam[]);
#import

string IndiName="TestBot";

void OnStart()
  {
   char buf[];
   StringToCharArray("MetaTrader4_Internal_Message", buf);
   int MT4InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray(IndiName, buf);
   long handle=ChartGetInteger(0, CHART_WINDOW_HANDLE);
   Print(MT4InternalMsg);
   bool res=SendMessageA((int)handle, MT4InternalMsg, 14, buf);
   Print("Функция SendMessageA завершила работу с результатом: ",res);
  }

Este código envía un comando a la ventana del terminal para ejecutar un EA específico.

¿Existe una funcionalidad similar para MT5?

Lo intenté así:

#import "user32.dll"
   int SendMessageA(long hWnd, long Msg, uint wParam, uchar &lParam[]);
   int RegisterWindowMessageA(uchar &lParam[]);
#import

string IndiName="TestBot";

void OnStart()
  {
   uchar buf[];
   StringToCharArray("MetaTrader5_Internal_Message", buf);
   long MT5InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray(IndiName, buf);
   long handle=ChartGetInteger(0, CHART_WINDOW_HANDLE);
   Print("Window handle: ", handle);
   Print("Message: ",MT5InternalMsg);
   for(int i = 0; i<100; i++){
      bool res=SendMessageA(handle, MT5InternalMsg, i , buf);
      printf("Функция SendMessageA завершила работу с результатом: %d, номер: %d ",res, i);
   }
  }

No funciona.

Intenté buscar el spy++, pero no hay mensajes en MT5 a diferencia de MT4.

Necesito exactamente llamar a la ventana de configuración del Asesor Experto.

 
50211108:
Hola, soy un Novato y me gustaría aclarar como retirar dinero de la cuenta y luego cuando depositar

Sólo puedes retirar lo que has ganado con este recurso, que es la venta de software, señales y potencia informática. Lo que se ingresa sólo puede gastarse en este recurso.

Razón de la queja: