Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 976

 
AlexeyVik:
¿Y tu madre no permite leer la documentación? Por ejemplo, SendMail

Sí, esta función, por supuesto, lo sé, me refiero a - una pestaña en la ventana de la terminal, (el comercio, los activos, la historia de la cuenta, noticias, alertas, correo, etc.) cuando el correo llega allí (en el terminal de correo interno) envió SMS o correo electrónico (por ejemplo, para recibir mensajes sobre el reinicio del servidor, etc.)?

 
optionany:

Sí, esta función, por supuesto, lo sé, me refiero a - una pestaña en la ventana de la terminal, (el comercio, los activos, la historia de la cuenta, noticias, alertas, correo, etc.) cuando el correo viene allí (en el terminal de correo interno) envió un SMS o correo electrónico (por ejemplo, para recibir mensajes sobre el reinicio del servidor, etc.)?

Así que formula la pregunta tal y como la piensas.

Si piensas con claridad, estás pensando con claridad...

 

Hola. No consigo entender cuál es mi error, o mejor dicho, cuál es el fallo de este bloque en mi programa:

//--Contabilidad separada de las órdenes abiertas

for(int i=Total de Pedidos()-1;i>=0;i--)//OrdersTotal()-1;i>=0;i-- //Bucle de pedidos
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);// Si se encuentra una orden, entonces:
¡{
if(OrderSymbol()!=Símbolo()||NúmeroMágico()!=Mágico) continuar;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_BUY)
Total++;
}
return;
}
//---

for(int i=OrdersTotal()-1;i>=0;i--)
{
¡OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
{
if(OrderSymbol()!=Símbolo()||NúmeroMágico()!=Mágico) continuar;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_SELL)
Total++;
}
return;
}
//---

El EA funciona establemente en el Probador de Estrategias y en una cuenta demo, pero al compilar genera 2 advertencias: el valor de retorno de 'OrderSelect' debe ser comprobado, lo cual no puedo superar. Si es posible, por favor, dígame qué he escrito mal o incompleto.

 
YuryVL:

Hola. No consigo entender cuál es mi error, o mejor dicho, cuál es el fallo de este bloque en mi programa:

//--Contabilidad separada de las órdenes abiertas

for(int i=Total de Pedidos()-1;i>=0;i--)//OrdersTotal()-1;i>=0;i-- //Bucle de pedidos
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);// Si se encuentra una orden, entonces:
¡{
if(OrderSymbol()!=Símbolo()||NúmeroMágico()!=Mágico) continuar;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_BUY)
Total++;
}
return;
}
//---

for(int i=OrdersTotal()-1;i>=0;i--)
{
¡OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
{
if(OrderSymbol()!=Símbolo()||NúmeroMágico()!=Mágico) continuar;
}

{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if(OrderType()==OP_SELL)
Total++;
}
return;
}
//---

El EA funciona establemente en el Probador de Estrategias y en una cuenta demo, pero al compilar muestra una advertencia: el valor de retorno de 'OrderSelect' debe ser comprobado, lo cual no puedo superar de ninguna manera. Si es posible, por favor, dígame qué he escrito mal o incompleto.


¡SRS para insertar el código! ¿Y por qué 2 bucles, después de comprobar si no comprobar si sí y Total debe leer ambos tipos y mantener en la memoria para cada uno por separado? Nadie lo entenderá. Hay que construir la lógica para que quede claro lo que se quiere, ¡entonces el compilador también lo entenderá!
 
YuryVL:

Hola. No puedo entender cuál es mi error, o más bien la deficiencia de este bloque en mi programa:

...

1) Para pegar el código correctamente aquí, haga clic en SRC y luego copie su código en el cuadro (imagen de abajo).


2) Prueba este código:

int Total_BUY=0, Total_SELL=0; // новые переменные как счетчики ордеров

//---Раздельный учёт открытых ордеров
for(int i=OrdersTotal()-1; i>=0; i--) // Цикл перебора ордеров
  {
   // OrderSelect() надо выбирать с помощью if
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)); // Если найден ордер, то:
     {
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
      else
        {
         if(OrderType()==OP_BUY)  Total_BUY++;  // считает открытые позиции на покупку
         if(OrderType()==OP_SELL) Total_SELL++; // считает открытые позиции на продажу
        }
     }
  }
 

¿Cómo puedo recibir una alerta?

Alert(OrderOpenPrice());

mostrarel precio de apertura de la orden con 5 decimales? NormalizeDouble(OrderOpenPrice(),Digits) no ayuda.(La orden está preseleccionada).

 
JoinDoe:

¿Cómo puedo recibir una alerta?

mostrar el precio de apertura de la orden con 5 dígitos decimales? NormalizeDouble(OrderOpenPrice(),Digits) no ayuda.(La orden está preseleccionada).

Alert(DoubleToString(OrderOpenPrice(),Digits));
 
Leo59:
¡Hola querida!

Por favor, ayuda a traducir el algoritmo para encontrar las coordenadas del punto de intersección de dos segmentos

Del artículo:

Es muy sencillo.
x1,y1 y x2,y2 son las coordenadas de los vértices del primer segmento;
x3,y3 y x4,y4 son las coordenadas de los vértices del segundo segmento;

para encontrar la intersección hacemos las ecuaciones de las rectas:
primera ecuación:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1);
segunda ecuación
(x-x3)/(x4-x3)=(y-y3)/(y4-y3);
estas ecuaciones definen una recta que pasa por dos puntos, que es lo que necesitamos.
A partir de estas ecuaciones encontramos x e y mediante las siguientes fórmulas:
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
como nuestras líneas se cruzan, tienen un punto de intersección común con las coordenadas (x,y), que necesitamos encontrar.
Para que la intersección pertenezca a nuestros segmentos de línea, tenemos que restringirla, es decir, comprobar la condición:
si
(((x1<=x)y(x2>=x)y(x3<=x)y(x4 >=x))o((y1<=y)y(y2>=y)y(y3<=y) y(y4>=y))
entonces hay un punto de intersección de estos segmentos, y si no lo hay, no hay punto de intersección.
También debes comprobar el paralelismo de estos segmentos mediante los coeficientes de ángulo:
k1:=(x2-x1)/(y2-y1);
k2:=(x4-x3)/(y4-y3);
donde k1 y k2 son tangentes del ángulo de inclinación de los segmentos a la dirección positiva del eje ОХ, si k1=k2, entonces los segmentos son paralelos, por lo que no tienen puntos de intersección.

¿Y tal vez alguien tenga uno listo en los archivos?


tal vez
 

¿Existe alguna posibilidad o función en MT4 para redirigir los mensajes al correo interno del terminal (sobre cambio de palanca, reinicio del servidor, etc.) por sms o correo electrónico

P.s una pestaña en la ventana del terminal, (comercio, activos, historial de la cuenta, noticias, alertas, MENSAJE, etc.)?

 
¡Hola queridos usuarios del foro!

He empezado a estudiar MQL4 y al escribir un indicador sencillo me he encontrado con un problema que no puedo resolver. La esencia del problema:

1_Cómo encontrar High[i - final del día], tengo un simple bucle Close[i]-Open[i+1], necesito encontrar High[i - final del día]. Por ejemplo, desde[i],[1],[2] y hasta el final del día (PERIOD_H1) . No estoy seguro de cómo hacerlo. Existe la función 'iHigh', pero es un poco diferente.

2_ no es todo, perdón por la impudicia, existe la función 'iBars' ( Devuelve el número de barras en el historial para un símbolo y periodo especificados). Por favor, ¿puede decirme qué combinación de funciones puede calcular no sólo el número de barras con tiempo, digamos, '12:00' o '15:00' en history(PERIOD_H1), sino también cuántas barras con tiempo?

He mirado todo el manual, tal vez he pasado algo por alto, pero no he encontrado nada adecuado. motor de búsqueda utilizado, el resultado es el mismo. Podría saber dónde se debatieron estas cuestiones, por favor, envíeme el enlace.

Gracias de antemano.

Razón de la queja: