Errores, fallos, preguntas - página 88

 
gumgum:

Es una pena que no tenga la función depo y beneficio sólo para mí

da 1.#INF.

Servicedesk ya ha escrito...

y el cero después del punto no se puede escribir así
double pro=AccountInfoDouble(ACCOUNT_BALANCE)/10000.0;
 
sergey1294:
y no puedes poner un cero después del punto así.

No importa cómo se escriba, sigue siendo 1.#INF.

Parece que no hay ninguna diferencia si es 10. o 10.0.

 
gumgum:

No importa cómo se escriba, sigue siendo 1.#INF.

No parece haber ninguna diferencia 10. o 10.0.

Acabo de comprobar la expresión.

double pro=AccountInfoDouble(ACCOUNT_BALANCE)/10000.; 
или 
double pro=AccountInfoDouble(ACCOUNT_BALANCE)/10000.0;

No da error, funciona bien.

2010.08.07 22:27:13     проверка (EURUSD,M5)    pro = 0.5929100000000001
 
sergey1294:

Acabo de comprobar la expresión.

ningún error, todo funciona bien.

¡Por supuesto que está bien y estará bien!

Estoy utilizando dos bibliotecas.... No voy a describir toda la situación.

 
gumgum:

¡Por supuesto que está bien y estará bien!

Tengo dos bibliotecas en use.... No voy a describir toda la situación.

Por qué preguntas por qué hay un error, no hay ningún error en la expresión que has puesto como ejemplo, el error debe estar en otra cosa.
 
sergey1294:
Entonces para qué preguntar por qué hay un error, no hay error en la expresión que pusiste como ejemplo, el error debe estar en otra cosa.
No he preguntado).
 
gumgum:
No estaba preguntando).

Entonces, ¿cuál es el significado de su puesto

Жадь конечно что нет функции депо и прибыли просто у меня

double pro=AccountInfoDouble(ACCOUNT_BALANCE)/10000.;

дает 1.#INF. 

Сервисдеск уже написал... 
 
sergey1294:

Entonces, ¿cuál es el significado de su puesto

¿Dónde has visto la pregunta? )))
 
gumgum:
¿Dónde has visto una pregunta? )))
bueno si no era una pregunta, entonces disculpas por tratar de ayudar con su problema.
 

Decidí probar una estrategia. Pero de alguna manera el Asesor Experto comenzó a comportarse de manera extraña en el probador.

Quería utilizarlo durante largos periodos. Aunque el algoritmo es casi scalper. ;)


Así que decidí comprobar los datos que vienen para entrar en el Asesor Experto.

Comencé un Asesor Experto sin pretensiones

input bool diskret=false;  // работать по открытию бара?

input bool File=true;
MqlTradeRequest mReq;
MqlTradeResult mRez;
int handle1,handle2;
double iBuffer1[],iBu1[];
double iBuffer2[],iBu2[];
double vol[22],OTS;
MqlDateTime newT,oldT;
datetime newTT,oldTT;

string FName;

int hF;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--------------Set default vaules for all new order requests
   mReq.action=TRADE_ACTION_DEAL;
   mReq.magic=777;
   mReq.symbol=Symbol();                 // Trade symbol
   mReq.deviation=3;                     // Maximal possible deviation from the requested price
   mReq.type_filling=ORDER_FILLING_AON;  // Order execution type
   mReq.type_time=ORDER_TIME_GTC;        // Order execution time
   mReq.comment="MAMASKHA_"+IntegerToString(PeriodSeconds()/60,2);
//----------------------- Set Volume pi
    Print ("----- Start init ---");
   
   oldTT=TimeCurrent()+51;TimeToStruct(oldTT,oldT);
   oldTT-=oldT.hour; oldTT-=oldT.min;
   printf("%02d.%02d.%4d %2d:%2d   %3d",oldT.day,oldT.mon,
          oldT.year,oldT.hour,oldT.min,
          SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL));
   StringConcatenate(FName,mReq.comment,"_",oldT.year,"x",oldT.mon,"x",
         oldT.day,"_",oldT.hour,"_",oldT.min,".csv");
   if (File) {hF=FileOpen(FName, FILE_WRITE|FILE_CSV|FILE_COMMON);
              if (hF<-1) Print ("Ошибка открытия файла ",FName," ",
                            GetLastError());
              if (File) FileWrite(hF,oldT.day,oldT.mon,
                   oldT.year,oldT.hour,oldT.min,"I"
                );
               Print ("Start on ",FName);   
              }
   Print ("Start ",mReq.comment);                              
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if (File) FileClose(hF);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {   

   bool poz=true;

   int i,per=PeriodSeconds();

   MqlTick tick;
   //------------------
   if(!SymbolInfoTick(Symbol(),tick))
     {
      Print("Failed to get Symbol info!",per);
      return;
     }
   
   newTT=tick.time;
   if(newTT<=oldTT+per+1)
       {if (diskret)return;}
   else
   {
     
      MqlRates rates[];
      
     int copied=CopyRates(Symbol(),0,0,1,rates);
     if(copied<=0)
        Print("Ошибка копирования ценовых данных ",GetLastError());
        else oldTT=rates[0].time;
          
      
      TimeToStruct(oldTT,oldT);
      printf("%02d.%02d.%4d %2d:%2d",oldT.day,oldT.mon,
                  oldT.year,oldT.hour,oldT.min);
      TimeToStruct(newTT,newT);
      printf(" New %02d.%02d.%4d %2d:%2d",newT.day,newT.mon,
                  newT.year,newT.hour,newT.min);            
      if (File) FileWrite(hF,oldT.day,oldT.mon,
                   oldT.year,oldT.hour,oldT.min,"I",
                tick.ask,tick.bid,tick.last,tick.volume);
    }
   

   return;
  }

y obtuve un registro extraño. ¿Quién puede decirme la razón por la que se saltan los periodos de datos?

Y una cosa más - el archivo, que debe ser creado (xp2sp) en el directorio no se detecta.

Por favor, aclárense, hace tiempo que no miro en MT5 y estoy completamente perdido...

:(