[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 219

 

Gracias, he pegado este código en EA, la compilación da '(' - definición de función inesperada después de bool ExistOrders, hay un paréntesis extra o algo así...

for (int k=0;k<OrdersTotal();k++)//Revisamos entre todas las órdenes abiertas
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=Total de Pedidos(), ty;
if (sy=="0") sy=Símbolo();
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=Tipo de orden();
si (ty<6)
{
if ((OrderSymbol()==sy || sy==") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} return(False);
}
//----
return(0);
}
 
Graall:

Gracias, he pegado este código en EA, la compilación da '(' - definición de función inesperada después de bool ExistOrders, hay un paréntesis extra o algo así...


Sacar la funciónExistOrders de la función de inicio .
int start()
{
.....
for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
}
   return(0);
 }

    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
 

Sí lo tengo, la funciónExistOrders es una función personalizada, la saqué de la función de inicio, el error es el mismo, está luchando contra algo en la primera parte del EA, lo pego completo


//+------------------------------------------------------------------+

//| 1.mq4 |
//| Oleg 2013 |
//| |
//+------------------------------------------------------------------+
#define Magia 123

//--- parámetros de entrada
extern int Beneficio = 100;
extern double Lots = 0.1;
extern int Shag = 100;
cadena sy;
int ty;
int op;
int mn;
int k;
int i;
//--------------------------------------------------------------------------------------------
int inicio()
{
// buscar el primer elemento cero
int total=Total de pedidos();
si (total==0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,",123,0,Blue);
for (int i=0;i<OrdersTotal();i++)//Ver todas las órdenes abiertas
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ( OrderType()==OP_SELLLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0);
if ( OrderType()==OP_BUYLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Point, 0);
}
}
for (int k=0;k<OrdersTotal();k++)//Ver entre todas las órdenes abiertas
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);

//----
return(0);
}
//+------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=Total de Pedidos(), ty;
if (sy=="0") sy=Símbolo();
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=Tipo de orden();
si (ty<6)
{
if ((OrderSymbol()==sy || sy==") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} return(False);
}
 
Graall:



Compruebe el emparejamiento de paréntesis {} (con cuidado). El error significa que falta al menos un cierre en la función start ().
 
alsu:

Compruebe el emparejamiento de los paréntesis {} (con cuidado). El error significa que falta al menos un cierre en la función start ().


derecho, después de

for (int k=0;k<OrdersTotal();k++)//Ver entre todas las órdenes abiertas

{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red);

se ha perdido } Gracias.

 
Hola, mi hora en el terminal no coincide con la hora real, ahora si paso el ratón por encima de la vela M5 muestra 18.45, y en realidad la hora en Ucrania es 19.45, ¿cómo puedo cambiar la hora?
 
sanktum:
Hola, mi hora en el terminal no coincide con la hora real, ahora si pasas el ratón por encima de la vela M5 muestra las 18.45, pero en realidad en Ucrania son las 19.45, ¿cómo cambiar la hora?

Ninguna. La hora de los candelabros es la hora del servidor.

 

Buenas tardes.

Estoy escribiendo datos en un archivo en cada apertura de una nueva barra:

int handle=FileOpen(Symbol1+Symbol2+".csv",FILE_WRITE|FILE_READ|FILE_CSV);
      if(handle>0)
        {
         FileSeek(handle,0,SEEK_END);
         FileWrite(handle,TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES), DoubleToString(Pr1,2),DoubleToString(Pr2,2),DoubleToString(Pr3,2),DoubleToString(Pr4,2));
         FileClose(handle);
        }

Necesito que el indicador lea estos datos y construya un gráfico sobre los intervalos de tiempo registrados.

Quiero tener un indicador que lea estos datos y los trace en el gráfico en cada apertura de una nueva barra.

 

He instalado MT4 (Versión: 4.00 Build 451) y me he dado cuenta de que en la carpeta Experts Logs sólo hay un archivo con fecha del día en que se instaló el terminal, es decir, el día 13. No hay más archivos de registro, aunque he encendido y apagado la plataforma muchas veces.

Se agradecerá cualquier comentario sobre este fenómeno.

 
Geowind64:

He instalado MT4 (Versión: 4.00 Build 451) y me he dado cuenta de que en la carpeta Experts Logs sólo hay un archivo con fecha del día en que se instaló el terminal, es decir, el día 13. No hay más archivos de registro, aunque he encendido y apagado la plataforma muchas veces.

Se agradecerá cualquier comentario sobre este fenómeno.


Necesito ejecutar al menos un experto/indicador/script, son los que escriben en esta carpeta.
Razón de la queja: