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

 
uncleVic:

EMPTY_VALUE を 取得する。ファイルがオープンされていない場合にこの値を返す。0.0を取得した方が便利な場合は、0.0を返す。

それと、返さないといけないものがあるんです。開いていないファイルを読むのはよくない。

オープンエラーについて。このように書きます。

テスターの画面はこちらです。端末でも同じなのでしょうか?


はい、ターミナルで同じであり、エラーは、これが言うことです。

ファイルサイズは20mb、約250万値です。

テスト開始時に20回、オープニング時に20回成功しました。

テスト開始当初は、20回ほどファイルを開くと目的の値を取得することに成功しましたが、その後、5004エラー(ファイルを開くことができませんでした)が出続けています。

400k程度の値の2mbで試してみたが、開くが、誰もそれ以上は望まないので、データを見た

タスクマネージャー、RAMは2.5gbで十分です。(さらに500 mb無料!)

 

以前は20mbのファイルを開けなかったのに、CODE POLTERGHEISTが私のコンピュータで起動した。

現在、550万件(2005年のデータ)の38mb.のファイルを開いてテストしています。

しかし、2001年以降 - 約10mln値で、65MB未満のサイズでは、それは開きません。面白いですね。そして、「なぜ?

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
削除済み  
Renat:
残念ながら、指定されたカードではもう何もできません。ノートパソコンであれば、状況は絶望的です。そうでなければ、1000-1500ルーブルで、すべてのパフォーマンスの問題を取り除く、まともに強力なグラフィックスカードを購入することができます。


So tell me mt4 \ mt5 throughDirectX 2D acceleration works or what ...?


ベクターグラフィックスのアクセラレーションには、上記のどのパラメータが重要なのか・・・それとも全て?

もう一つ聞きたいプロセッサに組み込まれたHD2000用のドライバは、Windows Server 2008 r2 SP1 64bitを 公式にサポートして いません。

が、Vistaと7kaの64bitのみ・・・。


この不完全な互換性が何らかの影響を 及ぼしているのかもしれません.?

(ドライバがアップされていますが、HDゲームでも動作 します...)


2.Windows Server 2008 r2 SP1 64bitで2Dビデオハードウェアの互換性があるmt4/mt5プラットフォームはどうですか?


どのメーカーを選べばいいのか・・・。ラジオニクスnVidia ?


mt4/mt5の速度やアダプターの互換性テストは??


ありがとうございます。

 
Im_hungry:

はい、ターミナルでは同じで、エラーが発生します。

ファイルサイズ20mb、約250万値

テスト開始当初は、開口中に20回程度は

テスト開始当初は、20回ほどファイルを開くと成功したのですが、その後、5004エラー(ファイルを開くことができませんでした)が出続けています。

2MBで試しました。約40万件の値 - 開きますが、大きくは開きません、データを見ましたが

タスクマネージャーで、2.5GBのRAMで十分です(さらに500MBの空きあり!)。(さらに500 mb無料!)

あまり読まなかったのですが、ハイライトされた文章が目にとまりました...。ファイルを閉じていませんか?

その記述子を全く正しく扱っていないのですか?

 
AlexSTAL:

あまり読まなかったのですが、ハイライトされた文章が目にとまりました...。ファイルを閉じていませんか?

一般的に、そのディスクリプタを正しく扱うか?

与えられたコードから判断して)ロジックはほぼ正しい。ハンドルを確認した後に読み書きをする(その後、ファイルも閉じる)ことを除けば。

ここでは問題が違うと思います。

1. 各ティックでインジケータがファイルを開き、データを書き込み、ファイルを閉じます。

2.Expert Advisor(1ティック毎だと思います)がファイルを開き、データを読み、ファイルを閉じます。

異なるフローで発生するため、ファイルサイズが大きいほど、インジケータで開いているファイルが開かれる確率が高くなります。また、オープンフラグのFILE_SHARE_READが 使用 されていないため、 結果が 出ます。

私の考えでは、この問題の扱いは次のようになります。

1) OnInit で FILE_SHARE_READフラグを立ててファイル(インジケータと Expert Advisor の両方)をオープン します。

2.書き込み後のインジケータで FileFlush(handle)呼び出す

3.OnDeinitでファイルを閉じます。

こんな感じ。


Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5
 
tester_el_pro:


So tell me mt4 \ mt5 throughDirectX 2D acceleration works or what ...?


端末は2Dアクセラレータを必要とする通常のWindows GDIを使用します。

カードを選ぶときは、どんな外付け3Dでも、最低価格レベルでも、それで十分です。
また、基本的なビデオカードの能力点を比較する必要はありません。

 
uncleVic:

与えられたコードから判断して)ロジックはほぼ正しいです。ハンドルを確認した後に読み書きをする(その後、ファイルも閉じる)ことを除けば。

私の考えでは、その特効薬はこれかもしれません。

1. OnInitで FILE_SHARE_READのフラグでファイルを開く(インジケータとExpert Advisorの両方)

2.書き込み後のインジケータで FileFlush(handle)呼び出す

3.OnDeinitでファイルを閉じます。

こんな感じ。


今後、リアルタイムで使用する際には、ありがたいことです

今後、Expert Advisorのファイルやインジケータを扱う上で、先生のアドバイスを参考にさせていただきます。

 
AlexSTAL:

あまり読まなかったのですが、ハイライトされた文章が目にとまりました...。ファイルを閉じますか?

ディスクリプターを正しく扱うことは全くできていないのでしょうか?

もちろんです。ファイルは表示されますが、オープンエラー5004のため読み込むことができません。
 
uncleVic:

与えられたコードから判断して)ロジックはほぼ正しいです。ハンドルを確認した後に読み書きをする(その後、ファイルも閉じる)ことを除けば。

ここでは問題が違うと思います。

1. 各ティックでインジケータがファイルを開き、データを書き込み、ファイルを閉じます。

2.Expert Advisor(1ティック毎だと思います)がファイルを開き、データを読み、ファイルを閉じます。

異なるフローで発生するため、ファイルサイズが大きいほど、インジケータで開いているファイルが開かれる確率が高くなります。また、オープンフラグのFILE_SHARE_READが 使用 されていないため、 結果が 出ます。

私の考えでは、この問題の扱いは次のようになります。

1) OnInit で FILE_SHARE_READフラグを立ててファイル(インジケータと Expert Advisor の両方)をオープン します。

2.書き込み後のインジケータで FileFlush(handle)呼び出す

3.OnDeinitでファイルを閉じます。

だいたいそうです。



すみません、インジケーターの仕事が違うんです。

1.ターミナルでテストする前に、インジケータを実行します。

2.各バーでバータイムとその相関値を保存します。

3. I put the file in tester folder, where it should be C:{Program FilesMetaTrader 5}tester Agent-127.0.0.1-3000}Files.

4.エキスパートアドバイザーを起動し、バーを開くことで動作し、2005年以来、それはすべての記録されたデータを読み取ります。

38Mbを読み取るが、2002年以降は(67Mb)を読み取らない。

 

同じツールで、mt4で記録してみました。

binファイルをmt5 testerフォルダに転送したところ、どのファイルも転送されませんでした。

が開かない - エラー5004、MT5ではまだ何か開いています。


MT4のインジケーターに以下のようにデータロギングを実装しました(データはすべて正常に書き込まれています)。

      Corr = GetCorrelation();
      Pos = iBarShift(Symbol(), Period(), Times[CurrPos]);
      Buffer[Pos] = NormalizeDouble(Corr,3);
//------
      datetime bar2 = iTime(Symbol1, 0, Pos);
      Print("Buffer[Pos]...",Buffer[Pos],"...bar2...",bar2);
      handle= FileOpen("kor.bin", FILE_BIN|FILE_READ|FILE_WRITE, ";");
      if(handle<1) Print("can't open file error-",GetLastError());
      if (handle>=1)
       {
        FileSeek(handle,0,SEEK_END);
        FileWriteDouble(handle,bar2,DOUBLE_VALUE); 
        FileSeek(handle,0,SEEK_END);
        FileWriteDouble(handle,Buffer[Pos],DOUBLE_VALUE); 
        FileClose(handle);
       }
//------
      CurrPos++;

しかし、EAによるmt5での読み込みは変わりません。

double proverka()
{
 if (FileIsExist("kor.bin",0)==true) Print("ФАЙЛ ОБНАРУЖЕН = ...");
 handle= FileOpen("kor.bin", FILE_BIN|FILE_READ);
 if(handle < 0) Print("-----Неоткрывается :- Почему? Потому что произошла ошибка ",GetLastError());
 ulong file=FileSize(handle);
 ulong N = 0.0;
 double kor = 0.0;
 datetime bar[1];
 CopyTime(Symbol_1,NULL,0,1,bar);
 ulong New = (ulong) bar[0];
 while (N < file)
  {
   kor=FileReadDouble(handle); 
   N = FileTell(handle);
   //Print("1...kor=",kor,"N=",N,"file=",file,"New=",New);
   if (kor == New) 
    {
     double ss = FileReadDouble(handle);
     FileClose(handle);
     Print("2...ss=",ss);
     return (ss);
     break;
    }
   if (New < kor)
    {
     Print ("New=",New,"kor=",kor);
     return (0.0);
     break;
    }
  } 
 Print("ВСЕЕЕЕЕЕ",kor);
 FileClose(handle);
 return (kor);
}
//=

mt5 の EA で mt4 で作成したファイルを開く ことはできますか?