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

 
Sysmart:

Pregunta sobre las pruebas (ver imagen del probador)

- abrimos una orden de venta (flecha verde en la imagen), tiene un Take Profit de 1,10439;

- añadimos una orden pendiente de Sell Stop (flecha amarilla en la imagen) con el precio 1,10441;

La pregunta es ¿por qué la orden de Take Profit no se activó en 1,10439 y el Sell Stop (flecha roja) en 1,10441?

Cuando compras a 1,3000, compras caro al precio malo 1,3003 (por ejemplo), cuando cierras la posición pones TP para vender a 1,2020, tu operación se cerrará a un precio donde el Bid está a 1,2017 y el Ask a 1,2020, es decir, pagas 2 veces el spread por gestionar tu posición, y la diferencia va al bolsillo de la oficina. También puede operar en cuentas más líquidas como NDB (5 dígitos)

 
novichok2018:
Hola! Tengo una pregunta que no está en la rama, pero donde hacerla, para obtener una respuesta realmente competente, no lo sé. Google no ayudó. La pregunta es: hoy el índice DAX30 ha empezado a cotizar de repente no a las 9:00 horas, sino a las 2:15 horas. En ningún sitio, ni siquiera en la página web de la Bolsa de Fráncfort, he encontrado ninguna explicación o advertencia. ¿Quizás alguien esté más informado y pueda darme una pista de dónde encontrar la información?

Bueno, ya que nadie está al tanto de este tema, entonces por favor, aconsejen cómo vincular el inicio del EA con el inicio de la negociación en un símbolo. Ahora mismo tengo una simple vinculación con el tiempo: if(Hour()==9) {CODE}. Por lo tanto, cuando cambio la hora de inicio de las 9:00 a las 2:15, la condición de apertura de posiciones deja de funcionar. Y si simplemente cambio la hora, no hay garantía de que la hora de inicio de las operaciones vuelva a cambiar y no lo note.

 
novichok2018:

Bueno, ya que nadie está al tanto de este tema, entonces por favor, aconsejen cómo vincular el inicio del EA con el inicio de la negociación en un símbolo. Ahora mismo tengo una simple vinculación con el tiempo: if(Hour()==9) {CODE}. Por lo tanto, cuando cambio la hora de inicio de las 9:00 a las 2:15, la condición de apertura de posiciones deja de funcionar. Y si simplemente cambiamos la hora, no hay garantía de que la hora de inicio de las operaciones vuelva a cambiar, y no lo notaré.

Busque en la base de datos kodo.

aquí está el primerohttps://www.mql5.com/ru/code/27315

 
Sysmart:

Pregunta sobre las pruebas (ver imagen del probador)

- abrimos una orden de venta (flecha verde en la imagen), tiene un Take Profit de 1,10439;

- añadimos una orden pendiente de Sell Stop (flecha amarilla en la imagen) con el precio 1,10441;

La pregunta es ¿por qué la orden de Take Profit no se activó en 1,10439 y el Sell Stop (flecha roja) en 1,10441?

Recuerde que las órdenes de venta se abren al precio de compra y se cierran al precio de venta, mientras que las órdenes de compra se abren al revés. Eso es todo.

 
Igor Makanu:

búsqueda de codobase

aquí está el primerohttps://www.mql5.com/ru/code/27315

Gracias, por supuesto, pero este ejemplo se sale del tema. Necesitamos un enlace ala hora de inicio de la negociación de un instrumento concreto o a la hora de inicio de la bolsa que negocia ese instrumento. No he podido encontrarlo en el kodobase.

 

Hola, estaba escribiendo código y me encontré con este problema.

El código funciona si se excluye una línea:

#property strict

Con la misma, deja de funcionar inmediatamente.

Aquí está el fragmento de código donde se detecta el error:

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBars = 0;
           else whichBars = 1; 
         if (arrup[whichBars]  != EMPTY_VALUE) doAlert(whichBars,"up");
         if (arrdwn[whichBars] != EMPTY_VALUE) doAlert(whichBars,"down");
   }
}

Y aquí están los resultados:

'whichBars' - identificador no declarado; línea 7 del fragmento

El identificador 'whichBars' - no declarado; 8 línea del fragmento


¿Cómo se puede arreglar esto?

 
pykachilo:

Hola, estaba escribiendo código y me encontré con este problema.

El código funciona si se excluye una línea:

Con la misma, deja de funcionar inmediatamente.

Aquí está el fragmento de código donde se detecta el error:

Y aquí están los resultados:

'whichBars' - identificador no declarado; línea 7 del fragmento

El identificador 'whichBars' - no declarado; 8 línea del fragmento


¿Cómo se puede arreglar esto?

whichBars debe definirse al principio de la función, no en la condición.
 

Buenas tardes.

Aquí hay una pregunta: En la documentación bajo "Tipos de eventos gráficos" (https://docs.mql4.com/ru/constants/chartconstants/enum_chartevents)
para el eventoCHARTEVENT_KEYDOWN se define que el parámetro sparam es "Valor de cadena de la máscara de bits que describe el estado de los botones del teclado".

Sin embargo, no encuentro información sobre qué bits son responsables de qué.

Para el evento CHARTEVENT_MOUSE_MOVE, el parámetro sparam es un "Valor de cadena de la máscara de bits que describe el estado de los botones del ratón".
se describe en detalle en la misma página...

¿Dónde puedo ver la documentación sobre sparam="valor de cadena de la máscara de bits que describe el estado de los botones del teclado" para el evento CHARTEVENT_KEYDOWN?

Gracias.

Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Существуют 9 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Maksims Ignatovs:

¿Dónde puedo ver la documentación de sparam="valor de cadena máscara de bits que describe el estado de los botones del teclado" para el evento CHARTEVENT_KEYDOWN?

puede imprimir a través de Print(sparam) para los botones deseados.

No conozco tu tarea, pero yo mismo prefiero usar lparam, para no tener que pensar en el idioma, el título y otras variaciones.

 
Igor Zakharov:

puede imprimir a través de Print(sparam) para los botones deseados.

No conozco tu tarea, pero yo mismo prefiero usar lparam, para no tener que pensar en el idioma, el título y otras variaciones.

Es una solución interesante para un caso general. Está claro que, para una tecla concreta, se pueden recorrer todas las combinaciones posibles (idioma, mayúsculas, etc.) para ver qué ocurre e incluso intentar sacar algunas conclusiones,
PERO, esta cuestión debería reflejarse en la documentación. Para los eventos del ratón es - todo está disponible en la documentación. ¿Y el teclado?

Razón de la queja: