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

 
Renat:

いいえ。

変数int i; を作成した場合、なぜ初期化しなかったのでしょうか?実際、あなた自身も「この変数の中身はどうでもいい」と言いながら、結局はゴミを入れたままでしたよね。

正しい方法はこうだ:int i=0;

そうです、ブロックの中にそのような変数を作ることができます。
習慣になっているのです。以前(MQL4)には、int i;int i=0; が同じように動作していました。えー...。
 
Renat:
この状況が発生するコードの一部をservisdeskに投稿してください。

私は完全な(コード)でそれを掲示し、(この文字 "&"を持つこの行は完全にエラーを宣言し、あなたが完全に文字列からこの文字を削除した場合、すべてが動作します...。あるいはコメント用の文字列の少なくとも半分があれば、この文字で動作します BUT!!! 文字列の長 さが159文字である。このビルド306の前に私は15ビルドを持っているものの、エラーがその上に正確に発生するため、Windows 7の64ビット(これは重要です)でそれを宣言しようとすると、305に、すべてがうまく働いた - 私はこのコードでWindowsのこのバージョンで週すべてがうまくいきました働いていました。



2日前からサービスデスクに手紙を書いているが、何も解決できない...。

追伸:すでに取り組んでいると連絡がありました...。(via ServiceDesk)です。


Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
 

木曜日00:00~24:00に見積もり。金曜日 00:00 - ~22:45 .

どのように受け取ればよいですか?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

void OnTick()
  {
//---
//Print(TimeCurrent());      
datetime a,b;
SymbolInfoSessionTrade(Symbol(),FRIDAY,0,a,b);
Print(a,"-",b);
  }

"2010.08.17 15:44:31 time (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00" を返します。

session_indexとは // セッション番号、この番号を知るには?

bool  SymbolInfoSessionTrade(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );
 
gumgum:

木曜日00:00~24:00に見積もり。金曜日 00:00 - ~22:45 .

どのように受け取ればよいですか?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"2010.08.17 15:44:31 time (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00" を返します。

session_indexとは // セッション番号、この番号を知るには?

EAにおける制限とチェックの 記事を参照してください。
 


2010.08.17 17:35:37 time (EURUSD,H1) Monday: session index=0 start=00:00 finish=23:59:59

2010.08.17 17:34:58 time (EURUSD,H1) 金曜日:セッションインデックス=0 start=00:00 finish=23:59:59

session_indexは常に0です。

なぜセッションインデックス!なのか、いまだに理解できない。

for(int i=0;i<=1000;i++)
{
datetime a,b;
if(!SymbolInfoSessionTrade(Symbol(),FRIDAY,i,a,b)){}else{Print(a," - ",b);}
}

0 以外は常に false です。

 

開発者に捧ぐ ...

今まで原則不可能だった機会を与えるのであれば、少なくともあなた方は警告するはずだ。

このバグを捕まえるのに、24時間を無駄にした。

double            nd(double v)
{if(DIGITS=EMPTY_VALUE)DigitMinLots();// ставлю  if(DIGITS==EMPTY_VALUE) даёт расчёт с ошибкой
return(NormalizeDouble(v,DIGITS));
};

もちろん、それはわかっているのですが、このままでは24時間を無駄にしてしまいます。

if(DIGITS=EMPTY_VALUE)

コンパイラでエラーになるのは慣れている。

 
Urain:

開発者に捧ぐ ...

今まで原則不可能だった機会を与えるのであれば、少なくともあなた方は警告するはずだ。

このバグを捕まえるのに、24時間を無駄にした。

もちろん、それはわかっているのですが、このままでは24時間を無駄にしてしまいます。

コンパイラでエラーになるのは慣れている。

エラーはありません。次のアップデートでは、式が論理的でない旨の警告が表示されます。
 
mql5:
エラーはありません。次回のアップデートでは、式が論理的でない旨の警告が表示される予定です。
今の話、私自身はエラーはないです。
 

OnTester()関数の 強制終了はありますか?

あるいは、なぜカスタム関数の前のトランザクションの履歴が存在し、その後ゼロを返すのか :

double OnTester()
  {
   int HTD=-1;
   Custom_func();
   if(HistorySelect(0,TimeCurrent()))HTD=HistoryDealsTotal();   
   return(HTD);
  }

テスターで動作しない機能は何ですか?

テスターは(最適化中に)どのように外部に何かが間違っていることを知らせることができますか(印刷の警告、何も動作しない)?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

どうしてもわからないんです。

それはなぜかというと、金曜日の24時に終わりではないからです。

それとも何?

Rosh:
EAにおける制限とチェックの 記事を参照してください。

また、session_index=1がすでにfalseであるのに、なぜsession_index++;なのか。

//+------------------------------------------------------------------+
//|  Вывести информацию о котировочных сессиях                       |
//+------------------------------------------------------------------+
void PrintInfoForQuoteSessions(string symbol,ENUM_DAY_OF_WEEK day)
  {
//--- начало и конец сессии
   datetime start,finish;
   uint session_index=0;
   bool session_exist=true;

//--- пройдемся по всем сессиям за этот день
   while(session_exist)
     {
      //--- проверим наличие котировочной сессии с номером session_index
      session_exist=SymbolInfoSessionQuote(symbol,day,session_index,start,finish);

      //--- если такая сессия есть
      if(session_exist)
        {
         //--- выведем день недели, номер сессии и время начала и окончания
         Print(DayToString(day),": session index=",session_index,"  start=",
               TimeToString(start,TIME_MINUTES),"    finish=",TimeToString(finish-1,TIME_MINUTES|TIME_SECONDS));
        }
      //--- увеличим счетчик сессий
      session_index++;
     }
  }