[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 300

 
costy_:
而不去覆盖这个缓冲区。
那么你如何想象增加一个新单元的逻辑呢?
然后实施它...
 
artmedia70:
那么你如何想象增加一个新单元的逻辑呢?
然后实施它...

它没有按照我想要的方式进行)。

如果是这样的话,我就得重写了()。

//---------------------------------------------------------------------
// функция dIndBuf_In
// для эмуляции индикаторного буфера в любого рода скрипте
// bufIn[] ссылка на созданный ранее буфер  | double mine[]; for(i=0;i=10;i++)dIndBuf_In(mine,i,Close[i]); |
// position - смещение баров
// value - значение присваемое смещением бара
//---------------------------------------------------------------------
double dIndBuf_In(double &bufIn[],int position, double value){
   if(ArrayIsSeries(bufIn))ArraySetAsSeries(bufIn,false);
   if(ArraySize(bufIn)!=Bars+1)ArrayResize(bufIn,Bars+1);
   bufIn[Bars-position]=value;
}
//---------------------------------------------------------------------
// функция dIndBuf_Out 
// для извлечения значений эмуляции индикаторного буфера в любого рода скрипте
// bufIn[] ссылка на созданный ранее буфер  | double mine[]; for(i=0;i=10;i++)dIndBuf_In(mine,i,Close[i]); double x=dIndBuf_Out(mine,i)|
// position - смещение баров
//---------------------------------------------------------------------
double dIndBuf_Out(double bufIn[],int position){
   if(ArrayIsSeries(bufIn))ArraySetAsSeries(bufIn,false);
   return(bufIn[Bars-position]);
}
 
artmedia70:

:)女性化的人出来了...

还有一个俏皮话比赛......。

哦...男人...:)


>
 
帮助解决这个错误

10
sanches83 28.10.2011 18:24

大家晚上好!帮助解决这个问题,因为在这种语言中没有任何意义,所以我向你们呼吁

情况是这样的。

有一部分的代码。


请告知如何使程序不显示消息,而是试图再次打开文件,如此反复,直到打开为止。

提前感谢大家!


试试while()循环。请看这里 -https://docs.mql4.com/ru/basis/operators/while
 
22333222:

))

我们的生活离不开微笑。

>
 
drknn:

试试while()循环。请看这里 -https://docs.mql4.com/ru/basis/operators/while

像这样。

int handle=0;
while(handle<1){
   handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
   if(handle<1){
     Alert("Ашыпка ",GetLastError());
     Sleep(1000);
    }
} 
 
他不需要警报--我知道在代码的某个地方,文件可能已经打开但没有关闭。这可能就是为什么文件不能被重新打开,而且警报窗口也在困扰着他。但也许我错了--我不是心灵感应俱乐部的成员 :(
 
我在论坛上搜索了一下,但没有找到一个快速的解决方案,帮助解决在测试器中不工作的问题,而在现实生活中却可以。

谢谢你。

  if(NewBar() == true)
  {
    int Result = -1;
    while(Result == -1)
    {
      if(TotalOpenOrders() < TotalOrders)
      {
        if(TrendDetection() == BULL)
        {
          Result = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,NormalizeDouble(Ask,Digits)-(StopLoss*Point),NormalizeDouble(Ask,Digits)+(TakeProfit*Point),OrderComments,Magic,0,CLR_NONE); 
        }
...........................

 

啊哈哈,我明白了--这个人试图在文本模式下打开一个exel文件,而且不是任何exel,而是2007年及以上版本。文件扩展名是*.xlsx。这不是一个文本文件。试图将其作为文本文件打开,将导致以下结果

在eksel中把这个文件保存为不同名称的文本文件,并在handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t')中指定新的(文本)文件名也无妨;指定新(文本)文件名

 
rustein:
我在论坛上搜索了一下,但没有找到一个快速的解决方案,帮助解决在测试器中不工作的问题,而在现实生活中却可以。

谢谢。


很难说问题出在哪里。在MQL4中,作为一条规则,代码中的负数应该总是被放在括号里。有时可能出现没有括号的错误。

虽然,在以extern开头的代码行中,你不应该在括号中取负值。我不知道为什么会这样。