エラー、バグ、質問 - ページ 1460

 
MQL5でiBarsShiaftの アナログを見つけることができない ...........................提案する。
 
Vladimir Pastushak:
MQL5でiBarsShiaftのアナログを見つけることができない ...........................提案する。
int iBarShift(string symbol,
                  int tf,
                  datetime time,
                  bool exact=false)
  {
   if(time<0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime(symbol,timeframe,0,1,Arr);
   time1=Arr[0];
   if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
     {
      if(ArraySize(Arr)>2) return(ArraySize(Arr)-1);
      if(time<time1) return(1);
      else return(0);
     }
   else return(-1);
  }
 
Vladislav Andruschenko:

ちょっと違う方法でやったので、より信頼性が高いと思います。

//+------------------------------------------------------------------+
int BarsShift(const string sym,const ENUM_TIMEFRAMES tim,const datetime time)
  {
   if(time<0)return -1;
   datetime mas[]; int z=-1;
   while(z++<3)
      if(CopyTime(sym,tim,TimeCurrent(),time,mas)>0)
         return ArraySize(mas);
   else
      Sleep(500);
   Print(" Erorr Search BarsShift ",GetLastError());
   return -1;
  }
//+------------------------------------------------------------------+

いかがでしょうか?

 

親愛なる同僚の皆さん、しばらく操作しているとインジケーターが崩れてくる(余分な矢印がたくさん出てくる)のですが、何が問題で、どうしてなのかわかる方はいらっしゃいますか?

m1のみ気がつきました。TFの再トリガーをかけると、すべて正常に表示される。

問題はインジケータにあるのか、それともターミナルとm1クォートにあるのか?


ファイル:
 
Aleksandr Novikov:

親愛なる同僚の皆さん、しばらく操作しているとインジケーターが崩れてくる(余分な矢印がたくさん出てくる)のですが、何が問題で、どうしてなのかわかる方はいらっしゃいますか?

m1のみ気がつきました。TFの再トリガーをかけると、すべて正常に表示される。

インジケーターやターミナルとm1の相場の問題?


バッファの値を計算する前に、ループ内のバッファを一番最初にクリアする。
Buffer[i]=0;
 
Vladimir Pastushak:
MQL5でiBarsShiaftのアナログが見つからないのですが・・・。
実は、Bars 機能の2番目のバリエーションは、直接的にアナログなのですが、いくつかの不具合があります。正確には、年明けから使っていたのですが、もしかしたらもう決まっていたのかもしれません。
 

コンパイラは、この短いプログラム(32、64ビット、異なるOSを含む - 同じ)上でエディタと一緒に考え、考え、静かに死んでいます。

struct TCoord {
        int x, y;
};

void OnStart() {        
        TCoord coord = {100, 100};
        TCoord defaultCoord = {0,0};
        coord = (2 == 2) ? coord : defaultCoord;
}
オプティマイザーのどこかにバグがある。
ちなみに、MetaEditorがクラッシュした場合、その状態(開いているファイル、インターフェース設定)は保存されません。
 
Aleksandr Novikov :


このとき、インジケーターは再起動します ...で、すべてが元通りになる。
 
Rodrigo da Silva Boa:
このとき、インジケーターは再起動します ...で、すべてが元に戻る。

再起動する必要はありません。インジケーターサイクルでクリーニングする必要があるのは、バッファの中のゴミです。例えば、こんな感じです。

   for(int i=limit; i>=0; i--) {
      BufferPatternDN[i]=0;               // без обнуления буферов мусор в них появляется постоянно
      BufferPatternUP[i]=0;
      BufferLevelDN[i]=EMPTY_VALUE;
      BufferLevelUP[i]=EMPTY_VALUE;
      // ... остальной код расчёта буферов
      // ...
   }  // конец цикла

チャート上にゴミがある場合、常にインジケータを再起動するのではなく、サイクルの最初にバッファゼロを追加する必要があります。

 

どうすれば倒せるのか?Ubuntuを仮想化し、すべてのプログラムをプロキシなしでオンラインにし、どこでも直接接続できるようにした。

が、端末がプロキシを要求し続ける。