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

 
astronom55:
こんにちは。MT5モバイル版で Alpariブローカーに接続できない。何が問題なのか?いつかは修正されるのでしょうか?

これです

 
Sergey Dzyublik:

StringToShortArray でも同様に記述されている。

ただし、文字列中のNULL文字が適切に処理されることを妨げるものではありません。

ShortArrayToString( array, start, count ) が正しく 動作しない: 端末0は任意の0ではなく、末尾の1のみです。この場合、ArraySize( array )でendかnot endかを判断することができます。少なくとも、count が明示的に設定された場合、結果の文字列は min( count, ArraySize( array )) よりも短くてはならない。

また、StringToShortArray( text, array, start, count ) は正しく動作します:端末0です。そして、StringLen( text ) に基づいて終了が決定されます。

 
Artyom Trishkin:

これです

  • あなたの問題に対処できるよう、具体的な 資料が提供されていません。- すべてのAndroidユーザーが抱えている問題
  • あなたの質問は非常に幅広いので、明確にしないと一義的に答えられない - わからないことは質問して ください。
  • あなたは、ドキュメントを 読まないただの怠け者です。あなたの問題のほとんどは、単にMQL言語の基本的な概念を知らないことに起因しています。これはドキュメントに書かれていない ことだと思います。
  • googleを禁止されているのか、検索の 使い方がわからないだけなのか......検索しても結論が出ない

1


これは、モバイル版MT5に対するフィードバックのほんの一部です。

2

こちらはアルパリフォーラムです

何も知らないのか?

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
MetaQuotes Language 4 (MQL4) - встроенный язык программирования торговых стратегий, разработанный компанией MetaQuotes Software Corp. на основе своего многолетнего опыта в создании торгово-информационных платформ. Этот язык позволяет писать собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и...
 

スクリプト実行時


#include <Files\FileTxt.mqh>
void OnStart(){

  CFileTxt file;
  int handle = file.Open( "test.bat", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //
  if( handle == INVALID_HANDLE ){
    int error = GetLastError();
    Print("Ошибка создания файла, код ошибки ",  error );
    return;
  }
}


失態





その理由は何ですか?


ファイル名を変更した場合


int handle = file.Open( "test", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //

ノーエラー

 
Aleksey Sergan:

スクリプト実行時

失態

その理由は何ですか?

ファイル名を変更した場合

ノーエラー

ファイル名が問題なのです。
実行ファイル(exe, msi, bat, ...)の操作を禁止しました。

 
Sergey Dzyublik:

ファイル名が問題なのです。
実行可能」なファイル(exe, msi, bat, ...)の作成は禁止されています。

はい、確かにそうですね。ヘルプにはそのようなことは書いてありませんでした。

 

関係ないかもしれませんが、厳密にはコンパイル時のエラーメッセージの 中で

void A::operator=(const A&) ここ(矢印のところ)は不要(デフォルトで同じように生成されるのでなおさら)。

 
ME(ビルド2037)の100%CPUハングアップの問題に遭遇したのは1日で4回目です。

最初は100%のコア負荷が現れますが、MEは問題なく動作します。MTでコードデバッグを実行することも可能です。
しかし、ソースコードのある別のタブに切り替えようとすると - MEは完全にハングアップし(プロセスを殺す必要がある)、新しいタブウィンドウはまだ開きません(半開きの状態でハングアップする)。
新しいタブに切り替えず、MEを閉じるだけだと、プロセスは閉じずにMTの子プロセスとなり、カーネルを100%ロードし続けます。

問題はプレーンサイトで、ちょうどコード開発中に(小さなプロジェクト、8ファイル<合計3K行)、MEコードのインテリセンスがクラッシュする、推定されます。
 
やったー、MEアナライザーを「クラッシュ」させるコードを捕まえることができたぞ。
MEが起動時にクラッシュする。まず別のエディタでコードを編集しないと、MEを実行することは不可能です。

必要であれば、5〜7日でソースコードを開発者に提供します。
問題は文字列で発生した。
if(
閉じない括弧の数え方がおかしいのでしょう。
 
再びプロジェクトコードのエラーを探す こと1時間、MT5(ビルド2049)の「仕様」にたどり着きました。

ターミナルでは、Expert Advisor のログの一部がユーザーに通知されることなく、単に表示されない場合があります。
ログはログファイルにあり、そこではすべてOKです。

#define  PRINT(x) Print(#x, ":", string(x))

void OnStart(){  
   string test_name;
   string test_result;  
   
   test_name = "394_TEST_____";
   for(int i = 0; i < 394; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
   
   
   test_name = "395_TEST_____";
   for(int i = 0; i < 395; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);

   
   test_name = "396_TEST_____";
   for(int i = 0; i < 396; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
}

ログキューになぜか395番のレコードが表示され、その前後のレコードはすべてМТログに表示されます。
したがって、テスト#395は常に失敗します。