[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 25

 
Estimados programadores. Como principiante me es difícil escribir el algoritmo, puedo editarlo, así que por favor ayúdame. ¡¡¡Estaría muy, muy agradecido!!!
Un EA tan simple y que necesita:

Si se cumple la condición1, entonces:
-comprobar si hay órdenes de venta abiertas
-Comprobar si hay órdenes de VENTA abiertas y cerrarlas.
compruebe si hay órdenes de VENTA abiertas - si las hay, ciérrelas.
-abrir orden de COMPRA

Lo mismo si se cumple la condición 2, entonces
-comprobar si hay órdenes de COMPRA abiertas
-si los hay, cerrarlos
comprobar si hay órdenes de COMPRA abiertas - si las hay, cerrarlas
-abrir una orden de VENTA
+ análisis de errores (no es lo principal, pero es posible)
Esto es todo para el par de divisas actual.

int start()                       
  {
   double M_0, M_1,               // Значение MAIN на 0 и 1 барах
          S_0, S_1;               // Значение SIGNAL на 0 и 1барах
//--------------------------------------------------------------------
                                  // Обращение к функции техн.индикат.
   M_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  0);// 0 бар
   M_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  1);// 1 бар
   S_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);// 0 бар
   S_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------------
                                  
   if( M_1 < S_1 && M_0 >= S_0 )  // УСЛОВИЕ 1: Зеленая пересекает красную снизу
     
   if( M_1 > S_1 && M_0 <= S_0 )  // УСЛОВИЕ 2: Зеленая пересекает красную сверху
     
//--------------------------------------------------------------------
   return;                            // Выход из start()
  }
 
Hola, ¿podríais decirme si es posible asignar un valor a varias variables globales dentro de una función, y dónde deben declararse estas variables en ese caso?
 
ideasforlife:
Estimados programadores. Como principiante me es difícil escribir el algoritmo, puedo editarlo, así que por favor ayúdame. ¡¡¡Estaría muy, muy agradecido!!!
Un EA tan simple y que necesita:

Si se cumple la condición1, entonces:
-comprobar si hay órdenes de venta abiertas
-Comprobar si hay órdenes de VENTA abiertas y cerrarlas.
compruebe si hay órdenes de VENTA abiertas - si las hay, ciérrelas.
-abrir orden de COMPRA

Lo mismo si se cumple la condición 2, entonces
-comprobar si hay órdenes de COMPRA abiertas
-si los hay, cerrarlos
comprobar si hay órdenes de COMPRA abiertas - si las hay, cerrarlas
-abrir una orden de VENTA
+ análisis de errores (no es lo principal, pero es posible)
Esto es todo para el par de divisas actual.

Hay muchos Asesores Expertos en estocástico en CodeBase. Ver y rehacer
 
ideasforlife:
Estimados programadores. Como principiante me es difícil escribir el algoritmo, puedo editarlo, así que por favor ayúdame. ¡¡¡Estaría muy, muy agradecido!!!
Un EA tan simple y que necesita:

Si se cumple la condición1, entonces:
-comprobar si hay órdenes de venta abiertas
-Comprobar si hay órdenes de VENTA abiertas y cerrarlas.
compruebe si hay órdenes de VENTA abiertas - si las hay, ciérrelas.
-abrir orden de COMPRA

Lo mismo si se cumple la condición 2, entonces
-comprobar si hay órdenes de COMPRA abiertas
-si los hay, cerrarlos
comprobar si hay órdenes de COMPRA abiertas - si las hay, cerrarlas
-abrir una orden de VENTA
+ análisis de errores (no es lo principal, pero es posible)
Eso es todo para el par de divisas actual.

Y aún más fácil sería un ejemplo del libro de texto: https://book.mql4.com/ru/samples/expert.

¿Tan difícil es leer un libro de texto de principio a fin?

 
ideasforlife:
Estimados programadores. Como principiante me es difícil escribir el algoritmo, puedo editarlo, así que por favor ayúdame. ¡¡¡Estaría muy, muy agradecido!!!
Un EA tan simple y que necesita:

Si se cumple la condición1, entonces:
-comprobar si hay órdenes de venta abiertas
-Comprobar si hay órdenes de VENTA abiertas y cerrarlas.
compruebe si hay órdenes de VENTA abiertas - si las hay, ciérrelas.
-abrir orden de COMPRA

Lo mismo si se cumple la condición 2, entonces
-comprobar si hay órdenes de COMPRA abiertas
-si los hay, cerrarlos
comprobar si hay órdenes de COMPRA abiertas - si las hay, cerrarlas
-abrir una orden de VENTA
+ análisis de errores (no es lo principal, pero es posible)
Esto es todo para el par de divisas actual.


Solución lista - en versión libro de texto, aquí. Quita todo lo que tiene que ver con el MACD - aquí y eso es todo... :-Р

P.D. Incluso los nombres de las variables son casi iguales. Puedes leer nuestro tutorial, tiene tanto la descripción como todo lo demás. :-Р

 
Roman.:


Solución lista - en versión libro de texto, aquí. Quite todo lo que tiene que ver con el MACD - aquí y eso es todo... :-Р

P.D. Incluso los nombres de las variables son prácticamente iguales. Lee el libro de texto: hay una descripción y todo lo demás. :-Р

¡Yo primero! :-P :-P
 
Code:

Hola, queridos miembros del foro.

Por supuesto, tengo algunas preguntas de un recién llegado. Estoy tratando de aprender mql4, ya que nunca he desarrollado ningún programa antes, por lo que las preguntas pueden ser muy primitivas. Pero nunca he sido capaz de hacerlo por mí mismo.

He decidido "meter la pata" con la visualización de los volúmenes dibujando una línea en lugar de un gráfico de barras con algo de procesamiento. El código debe tener el siguiente sentido. A partir de la segunda barra que está en la misma dirección que la barra anterior (ambas barras son ascendentes), el volumen se extrae de la segunda barra. Como resultado, obtengo una línea discontinua en la ventana del indicador, que efectivamente se dibuja desde la segunda barra hacia arriba, pero no en todos los casos por alguna razón. La línea se interrumpe porque otras condiciones de su trazado no están definidas en absoluto, es una cosa del futuro. Pero aquí mismo para entender por qué la línea no se dibuja en cada segunda barra hacia arriba, no puedo. Por favor, ayúdame.

Aquí está el código. Si tienes algún otro comentario sobre otros errores en el código, me encantaría.


¿Qué significa este indicador? ¿Por qué lo necesito?


¿Por qué necesitas esa caracterización?

ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;

O lo es, pero ya está expuesto:

ExtVolumesBuffer[i]=Volume[i]+(Volume[i]+Volume[i+1])/(2-(Close[i]-Open[i+1])*1000);

???


Y sobre los errores en el código. Sus líneas.

double dVolume=Volume[i];
double vback1=Volume[i+1];

         {
         double vteor12=(dVolume+vback1)/2;
            if (Close[i+1]>Open[i+1] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+1])*1000; else UP12=0;
            if (UP12!=0) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12=0;
            if (Close[i+1]>Open[i+1])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]<0) ExtVolumesBuffer[i]=0;
              }

equivalentes de lo siguiente:

double dVolume=Volume[i];
double vback1=Volume[i+1];

double vteor12=(dVolume+vback1)/2;
if (Close[i+1]>Open[i+1] && Close[i]>Open[i])
{
   double UP12=(Close[i]-Open[i+1])*1000;
   double vrealUP12=(dVolume+vback1)/(Close[i]-Open[i+1])*1000;
   ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
   if (ExtVolumesBuffer[i]<0)
      ExtVolumesBuffer[i]=0;
}
else
{
   UP12=0;
   vrealUP12=0;
}

Uno mira el código optimizado y piensa ¿por qué se han introducido tantas variables? ¿Y por qué iban a ser "de otra manera" eliminados?

Si entendiera la idea del indicador, podría ayudarte.

 
MaxZ:

¿Qué sentido tendría este indicador? ¿Por qué necesitas uno?


Para qué se necesita esa característica:

o lo es, pero ya se ha revelado:

???


Y sobre los errores en el código. Sus líneas

son el equivalente a lo siguiente:

Miras el código optimizado y te preguntas por qué se introdujeron tantas variables en primer lugar. ¿Y por qué estarían "de otra manera" a cero?

Si entendiera la idea del indicador, podría ayudarte.


Gracias por su respuesta y responderé a sus preguntas.

Esa misma característica es toda la idea del indicador. También he preparado un ejercicio sobre MQL. He pensado en una tarea e intuyo que su implementación en un lenguaje no es muy difícil. Me siento y lo pruebo.

Así, la esencia de la característica es que comparo un determinado nivel teórico fijo de dos volúmenes unidireccionales con el nivel real. Es decir, si la relación real de la suma de dos volúmenes con el intervalo real de "apertura-cierre" es superior a la teórica especificada, añado una "bonificación" al segundo volumen real en forma de diferencia entre los resultados teóricos y reales calculados. Si el nivel real es inferior al teórico, restaré la misma diferencia al volumen del segundo compás. ¿Puedo explicarlo claramente?

Por si acaso, diré que al revelar esta característica, pusiste mal los paréntesis, probablemente con prisas.

Además, me parece que esas cadenas que consideras equivalentes a las mías te llevarán a la división por cero. Lo comprobaré ahora.

 

Hola a todos.

Gracias a la inestimable ayuda de los expertos de esta rama (sobre todo de Roman) he conseguido hacer un sencillo Expert Advisor, que está + en el tester. Pregunta: ¿Cómo determinar si se puede colocar para el comercio real? ¿Hay algún criterio?

 
MaxZ:
¡Yo primero! :-P :-P

Estás yendo por el camino equivocado en todo... No a los criterios de negociación correctos en absoluto, es una cuestión de STO-HAS-TO-KE... :-Р