Funciones útiles de KimIV - página 106

 
vvg:


Quería utilizar esta función pero me encontré con la siguiente situación: cuando aparece un nuevo extremo, el nivel de precios no cambia inmediatamente sino que permanece igual durante algún tiempo. Me molesta durante las pruebas. ¿Cómo solucionarlo?

Por favor, facilite pruebas materiales: símbolo, fecha, hora, precio. Me gustaríarepetir su situación.
 
KimIV:
vvg:


Quería utilizar esta función, pero me encontré con la siguiente situación: cuando aparece un nuevo extremo, el nivel de precios no cambia inmediatamente, sino que permanece igual durante algún tiempo.

Dificulta las pruebas. ¿Cómo solucionarlo?

Por favor, facilite pruebas materiales: símbolo, fecha, hora, precio. Me gustaría repetir su situación.
Buenas noches! He adjuntado un código a mi EA que le permite operar en un determinado periodo de tiempo, pero el EA sigue operando, aunque no ha tenido ningún error durante la compilación! ¡Y no puedo hacer que opere sobre la volatilidad del mercado (para abrir una operación si la volatilidad es superior a 50)! ¿Podríais enseñarme cómo se hace, porque ya estoy agotada? ¡¡¡¡Gracias de antemano!!!!
Archivos adjuntos:
dmx.mq4  3 kb
 

¿Por qué has puesto tu función en las variables globales?

// Evitar que el Asesor Experto opere con C y OP
if ( (Hora()==20 && Minuto()>=59) && (Hora()==08 && Minuto()>=59) )
volver;

Debe colocarse al inicio. Probablemente, cuando el bucle vaya de inicio, verá la condición equivocada y saldrá sin abrir posiciones. Esto debería ayudarte.


Archivos adjuntos:
dmx_1.mq4  3 kb
 
LLIAMAH:

¿Por qué has puesto tu función en las variables globales?

// Evitar que el Asesor Experto opere con C y OP
if ( (Hora()==20 && Minuto()>=59) && (Hora()==08 && Minuto()>=59) )
volver;

Debe colocarse al inicio. Probablemente, cuando el bucle vaya de inicio, verá la condición equivocada y saldrá sin abrir posiciones. Esto debería funcionar para ti.


Gracias, pero lamentablemente no hay cambios
 
dimas7469:
Gracias, pero lamentablemente no hay cambios

if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) ) 
return;

Ya veo...

if (Hour()>=21 || Hour()<=9) 
return;

Así es como debe ser.
No es necesario complicar lo que se puede simplificar...

 
todem:
para qué sirve el apersand al final de "double&"
Esto indica que un array declarado en variables EA se pasa a la función por referencia. Después de regresar de la función, este array contendrá los valores que esta función ha escrito en él.
 
Buenas tardes. Querida KimIV. Su EA e-News-Lucky$ abre órdenes de stop. ¿Puedes rehacerlo para abrir Limits? No soy un experto en programación informática :)), por lo que os pido ayuda. Me alegraría.
Archivos adjuntos:
 

Cómo se hace:

Si se cumple la condición 1, no se vuelve a comprobar, y se comprueba la condición 2 en los siguientes ticks y así sucesivamente?

static bool Val_max, Cl_dn, Val_min; //static or global
                                        |
//+------------------------------------------------------------------+
int start()
  {
   int j;
   double bid;                                         
   bid=Bid;                                    // Текущая цена продажи
   string
   Symb=Symbol();                               // Название фин.инстр.
double Value_max=1.0000;
double Value_min=0.9980;
double Open_1=Open[1];
double Close_1=Close[1];
//----

//--------------------------------------------------------------- 4 --

double Val=iCustom(NULL, 0, "Название Польз. Индикатора",0,0);   // Присваиваем пер. Val значение польз. индикатора
if (Условие1)
{
 Val_max=true;                  // 
 Alert("Значение инд. >= Value_max (исп. 1-е усл.)");
}
if (Условие2)
{
 Cl_dn=true;
 Alert("1 бар закрылся падением (исп. 2-е усл.)");
}
if (Условие3 && Cl_dn==true)
{
 Val_min=true;
 Alert("Значение инд. <= Value_min (исп. 3-е усл.)");
}
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0; j < OrdersTotal(); j++)
    {
     OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == Symbol())
      {
      if (OrderType() == OP_SELL) return(0);
      }
    }
   
   OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),2,Bid+400*Point,Bid-400*Point,"",3,Red);  // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return(0);
  }
 
¿Puedes decirme si hay un script en el tema que cierra todas las órdenes abiertas cuando se alcanza el beneficio total de n pips?
 

Hola Igor. Estoy utilizando su función IniFiles.mqh, es perfecta para mis propósitos. Muchas gracias.

¿Tienes (listo y dispuesto a comprar)))) lo mismo pero para trabajar con excel? Probado varias opciones como esta https://www.mql5.com/ru/code. Pero la lectura de un archivo de celdas va acompañada de una apertura explícita del archivo en el escritorio cada vez que se pulsa. ¿Es posible leer programáticamente los datos de las celdas como en los IniFiles? Lo necesito para leer datos de un Quick DDE.

Razón de la queja: