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

 
ALXIMIKS:

Hola, replantea lo que preguntas, no está muy claro.


Gracias por responder. En mi EA :

si( condición)

{dos órdenes de compra y venta abiertas}

Necesito eliminar la orden más cercana cuando se abra una de ellas, porque en ese momento puede haber otras órdenes, más alejadas del precio actual

puedo utilizar un contador de posiciones abiertas + un script para eliminar una orden (si estoy pensando bien, no sé cómo hacerlo, estoy empezando) Gracias de antemano por la información.

 
PGM5:


y es necesario eliminar la orden más cercana a la apertura de una de las posiciones, porque en este momento puede haber otras órdenes - muy alejadas del precio actual

puedo utilizar un contador de posiciones abiertas + un script para eliminar una orden (si estoy pensando bien, no sé cómo hacerlo, estoy empezando) Gracias de antemano por la información.


Por favor, aprenda la terminología, es un verdadero problema entender lo que necesita.

Si colocas dos órdenes pendientes, si una se abre, ¿qué tienes que borrar?

Este es un concepto maravilloso, la orden más cercana está en la dirección de la posición abierta o en contra de ella, ¿o estás diciendo que la orden pendiente opuesta debe ser eliminada?

¿Existen otras órdenes, de dónde provienen, del comercio manual? ¿Del mismo Asesor Experto, pero abierto en diferentes condiciones?

¿Quiere una respuesta concreta o es tan vaga como la pregunta? (Dedica un minuto más a formular tu pregunta, ayudará a todos)

 
ALXIMIKS:

Leyendo estas líneas recuerdo cómo yo mismo he sido reprochado por ser analfabeto en mis posts, o más bien vago, y ahora soy aún más consciente de mi mal hacer.

1) ¿qué es una máquina de dibujo? (como usted lo entiende)

2) ¿cuál es una función elemental para buscar la divergencia del MACD?

3) ¿es tan difícil escribir "divergencia" en un motor de búsqueda y seleccionar el tercer enlace de la categoría "Código base"?

(Si esperas que alguien te dé una herramienta preparada y te explique todo -espera, aquí hay gente diferente: tanto creyentes como no tanto)



Espero que sepas lo que es la proxémica! ¿No preferirías tener un foro para hablar de metafísica entre nosotros?

La herramienta de dibujo - con la salida en el gráfico.

Las funciones elementales son las funciones que se pueden aplicar utilizando únicamente el libro de texto MQL4, sin utilizar expresiones complejas.

Cómo utilizar los topes del indicador al detectar la divergencia del MACD:

¿cómo entenderlo?

for(i=limit-1; i>=0; i--) 
     {
      BufferMacdMain[i]   = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_MAIN, i);
      BufferMacdSignal[i] = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_SIGNAL, i);
      BufferMacdOsMA[i]   = BufferMacdMain[i] - BufferMacdSignal[i];
      BufferTop[i]        = EMPTY_VALUE;
      BufferBottom[i]     = EMPTY_VALUE;
      BufferCross[i]      = EMPTY_VALUE;
 
      double main2 = BufferMacdMain[i + 2];
      double main1 = BufferMacdMain[i + 1];
      double sig2  = BufferMacdSignal[i + 2];
      double sig1  = BufferMacdSignal[i + 1];
 
      if((main1>=sig1 && main2<sig2) || 
         (main1<sig1 && main2>=sig2))
 
Burger:


Espero que sepas lo que significa la proxémica. ¿Crees que este foro es sólo para la metafísica?

Dibujo - con salida a un gráfico.

Las funciones elementales son funciones que se pueden aplicar sólo con el tutorial de MQL4, sin utilizar expresiones complejas.

Cómo utilizar los topes del indicador al detectar la divergencia del MACD:

¿cómo entenderlo?


En primer lugar, hay que averiguar qué es la divergencia y cuántos valores se necesitan para determinarla. Aquí con ejemplos.
 
Burger:


Espero que sepas lo que es la proxémica. ¿Crees que el foro es para la metafísica?

Dibujo - con salida a un gráfico.

Las funciones elementales son funciones que se pueden aplicar sólo con el tutorial de MQL4, sin utilizar expresiones complejas.

Cómo utilizar los topes del indicador al detectar la divergencia del MACD:

¿cómo entenderlo?


Esto no es un club de videntes; si quieres respuestas adecuadas, haz preguntas adecuadas. Si no sabes cómo expresarlo, entra desde lejos, pero para que quede claro y no tengas que preguntar cien veces más qué quiere decir un individuo concreto con tal o cual término.

Las funciones elementales son funciones que no utilizan expresiones complejas. Espectacular.

El código sin corchetes de cierre de bucle, sin funciones después de una condición, ¿qué espera?

for(i=limit-1; i>=0; i--)      //цикл  расчета нерассчитанных баров, наверное
     {
      BufferMacdMain[i]   = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_MAIN, i);   // расчет значения основной   линии масд на i баре
      BufferMacdSignal[i] = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_SIGNAL, i); // расчет значения сигнальной линии масд на i баре
      BufferMacdOsMA[i]   = BufferMacdMain[i] - BufferMacdSignal[i];  // разница основной и сигнальной линии масд на i баре
      BufferTop[i]        = EMPTY_VALUE;                              // буфер заполняется EMPTY_VALUE на i баре (не рисуется на графиках)
      BufferBottom[i]     = EMPTY_VALUE;                              // буфер заполняется EMPTY_VALUE на i баре (не рисуется на графиках)
      BufferCross[i]      = EMPTY_VALUE;                              // буфер заполняется EMPTY_VALUE на i баре (не рисуется на графиках)
 
      double main2 = BufferMacdMain[i + 2];                           // переменная берет значение основной линии масд на i+2 баре с массива BufferMacdMain
      double main1 = BufferMacdMain[i + 1];                           // переменная берет значение основной линии масд на i+1 баре с массива BufferMacdMain
      double sig2  = BufferMacdSignal[i + 2];                         // переменная берет значение сигнальной линии масд на i+2 баре с массива BufferMacdSignal
      double sig1  = BufferMacdSignal[i + 1];                         // переменная берет значение сигнальной линии масд на i+1 баре с массива BufferMacdSignal
 
      if((main1>=sig1 && main2<sig2) ||                      // если main1>=sig1 и main2<sig2 тогда будет выполнятся условие (сигнальная пересекает основную снизу вверх)
         (main1<sig1 && main2>=sig2))                        // если main1<sig и main2>=sig2 тогда будет выполнятся условие  (сигнальная пересекает основную сверху вниз)
 
ALXIMIKS:


Por favor, aprenda la terminología, porque entender exactamente lo que necesita es un verdadero desafío.

Si colocas dos órdenes pendientes, si una de ellas se abre tienes que eliminar cuál?

Orden más cercana - un concepto maravilloso, ¿la orden más cercana está en la dirección de la posición abierta o en contra de ella, o está diciendo que la orden pendiente opuesta debe ser eliminada?

¿Existen otras órdenes, de dónde provienen, del comercio manual? ¿Del mismo Asesor Experto, pero abierto en diferentes condiciones?

¿Necesita una respuesta concreta o es tan vaga como la pregunta? (Dedica un minuto más a formular tu pregunta, esto beneficiará a todos).

Sí, has acertado: cuando abres una orden tienes que eliminar la orden pendiente contraria, las otras órdenes son del mismo EA, pero abiertas en condiciones diferentes

Gracias de antemano.

 
PGM5:

Sí, has acertado: cuando abres una orden tienes que eliminar la orden pendiente contraria, las otras órdenes son del mismo EA, pero abiertas en condiciones diferentes

Gracias de antemano.


Si he entendido bien lo que quieres: este mecanismo se llama OCO (One Cansel Other - uno anula al otro). Esta es la relación entre, por ejemplo, una toma y un stop para una "orden de mercado" (en términos de MT4) - una (toma o stop) se activa, la otra se elimina automáticamente y la implementación completa de esto no es una tarea tan trivial. No en el sentido de un algoritmo muy complejo, sino en el sentido de que no es elemental. Tenemos que escribir la contabilidad paralela de los pedidos: introducir y seguir el rasgo por el que se vinculan los pedidos. Si no me equivoco, este mecanismo tampoco se ha implementado en MT5 aunque es una característica estándar para los terminales de acciones y funciona en el lado del servidor.

Podemos implementar el mecanismo en el lado del cliente y "jugar" con el mago (no sería "muy" difícil en este caso): todos los pedidos de los cuales uno debe permanecer tienen el mismo mago. Al comprobarlo: si hay uno de mercado, se borran todos los demás. Entonces hay que generar un magik, acompañado. Asigne una matriz separada para el mago: es posible que haya que soportar más de un par de órdenes. Es imposible perder un magik, por lo tanto, las variables globales o la escritura en el archivo. Si prestamos atención a datos más globales (considerando no sólo la conectividad de los pedidos sino también la pertenencia/extrañamiento), el mecanismo de contabilidad se complica: el mago se vuelve compuesto y en realidad necesitamos extender el algoritmo estándar de colocación de pedidos mucho más profundamente de lo que podemos hacer usando funciones "básicas" (en su terminología) pero de todas formas todo es del lado del cliente: es decir, si el terminal se apaga o se pierde la comunicación, el terminal no funcionará (llevar el control de los pedidos).



 
VladislavVG:

Si entiendo bien lo que quieres: este mecanismo se llama OCO (One Cansel Other - uno anula al otro). Esta es la relación entre, por ejemplo, una toma y un stop para una "orden de mercado" (en términos de MT4) - una (toma o stop) se activa, la otra se elimina automáticamente y la implementación completa no es una tarea tan trivial. No en el sentido de un algoritmo muy complejo, sino en el sentido de que no es elemental. Tenemos que escribir la contabilidad paralela de las órdenes: introducir y trazar el rasgo por el que se vinculan las órdenes. Si no me equivoco, este mecanismo tampoco se ha implementado en MT5 aunque es una característica estándar para los terminales de acciones y funciona en el lado del servidor.

Aunque, podemos implementar el mecanismo en el lado del cliente y "jugar" con el mago (no será "muy" difícil en este caso): todos los pedidos de los cuales uno debe permanecer tienen el mismo mago. Al comprobarlo: si hay uno del mercado, se borran todos los demás. Entonces hay que generar un magik, acompañado. Asigne una matriz separada para el mago: es posible que haya que soportar más de un par de órdenes. Es imposible perder un magik, por lo tanto, las variables globales o la escritura en el archivo. Si lo hacemos de una manera más global (considerando no sólo la conectividad de las órdenes sino también la pertenencia/extrañamiento), el mecanismo de contabilidad se complica: el mago se convertirá en compuesto y en realidad necesitamos extender el algoritmo estándar de colocación de órdenes mucho más profundamente de lo que podemos hacer usando funciones "elementales" (en su terminología) pero de todos modos todo es del lado del cliente: es decir, si el terminal se apaga o se pierde la conexión, no funcionará (rastrear las órdenes).



Lo siento, no sabía que era tan complicado. Pensaré en cómo simplificar el sistema.

 
PGM5:

Lo siento, no sabía que era tan complicado. Pensaré en cómo simplificar el sistema.



Para ayudar.
 
r772ra:
Para ayudar.


Esta es sólo una implementación muy "modesta" que no es extensible: borra todas las órdenes del EA o todas las órdenes de un determinado asistente para un determinado símbolo si hay uno de mercado. Es decir, considera que todas las órdenes que se dan en el instrumento (con/sin tener en cuenta al mago) están vinculadas por la relación CCA.

Puede que no sea así en absoluto. Por ejemplo, puede haber 2 o 3 grupos de pedidos vinculados de los 20 realizados, y el resto no están vinculados en absoluto. Este EA no puede ser ampliado a tal contabilidad - tenemos que reescribir todo o podemos usar este EA en modo manual: entonces la contabilidad de los maestros de los grupos de órdenes vinculadas tiene que ser hecha manualmente y tenemos que "colgar" tantos EAs como grupos de órdenes haya en una operación.

Razón de la queja: