错误、漏洞、问题 - 页 88

 
gumgum:

真可惜,我没有专门为我准备的去产能和盈利功能。

给予1.#INF。

Servicedesk已经写了...

而点后面的零不能这样写
double pro=AccountInfoDouble(ACCOUNT_BALANCE)/10000.0;
 
sergey1294:
而且你不能像这样在点的后面加一个零。

无论你如何拼写,它仍然是1.#INF。

无论是10.还是10.0,似乎都没有任何区别。

 
gumgum:

无论你怎么拼写,它仍然是1.#INF。

10.或10.0似乎没有任何区别。

我刚刚检查了表达方式。

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

它没有给你一个错误,它工作得很好。

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

刚刚检查了表达方式。

没有错误,一切运作正常。

当然,这很好,而且会很好!"。

我正在使用两个图书馆....我不会描述整个情况。

 
gumgum:

当然,这很好,而且会很好!"。

在use....,我有两个库我不会描述整个情况。

你为什么要问为什么会有错误,在你举的例子中,表达式没有错误,错误一定在别的地方。
 
sergey1294:
那为什么要问为什么会有错误,你举的例子中的表达没有错误,错误一定是在别的地方。
我没有问)。
 
gumgum:
我不是在问)。

那么你的帖子的意义是什么呢?

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

double pro=AccountInfoDouble(ACCOUNT_BALANCE)/10000.;

дает 1.#INF. 

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

那么你的帖子的意义是什么呢?

你在哪里看到这个问题的? )))
 
gumgum:
你在哪里看到了一个问题? )))
如果这不是一个问题,那么请原谅我试图帮助你解决这个问题。
 

我决定测试一个策略。但不知何故,专家顾问在测试器中开始表现得很奇怪。

我想长期使用它。虽然该算法几乎是黄牛党。;)


所以我决定检查一下进入专家顾问的数据。

我开始了一个朴实无华的专家顾问

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;
  }

并得到了一个奇怪的日志。谁能告诉我跳过数据期的原因?

还有一件事--在该目录中必须创建的文件(xp2sp)没有被检测到。

请澄清一下,我已经很久没有研究过MT5了,我完全迷失了......

:(

原因: