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

 

printf()、double、科学的形式。設定できる小数点 以下の桁数、設定できる数値の全長。

double d=12.3456789;
printf("d=%012.4E",d);

結果:d=001.2346E+01

累乗の前にゼロを付けることはできますか?d=001.2346E+0001のようになるはずです。
 
sershi87:
アップデート 後は上記の通り、端末が 非常に遅くなり、完全にハングアップしてしまいます。アップデート前はそのような問題はなく、すべて正常に動作していました。Debianの問題は承知していますし、非常に安定したディスクであるという事実にも全面的に同意します。しかし、ネイティブ版の必要性はずっと前からあり、追求していく必要があると思います。

私の推測では、動作が遅くなったりクラッシュしたりするのは、履歴サーバーとの同期が正しく行われていないことが原因だと思われます。
つまり、例えば、ターミナルウィンドウのバーの設定は100000、例えば私はコードから3000バーを要求する
、同期が失敗することができ、サーバー上のすべての利用可能な履歴との同期を開始し、サーバーからすべての履歴をポンピングします。
この履歴の完全なポンピングのため、利用可能なサーバーの履歴をすべてダウンロードするまで、端末はハングアップします。
このダウンロードを待つと、端末がハングアップして動き出す。

 
Roman:

私の推測では、動作が遅くなったりクラッシュしたりするのは、履歴サーバーとの同期が正しく行われていないことが原因だと思われます。
つまり、例えば、ターミナルウィンドウのバーの設定は100000、例えば私はコードから3000バーを要求する
、同期が失敗することができ、サーバー上のすべての利用可能な履歴との同期を開始し、サーバーからすべての履歴をポンピングします。
この履歴の完全なポンピングのため、利用可能なサーバーの履歴をすべてダウンロードするまで、端末はハングアップします。
このダウンロードを待つと、端末がハングアップして動き出す。

ガラスを開けて初めてブレーキがかかる。タンブラーを閉じれば、すべて解決です。でも、これがないと仕事にならない。
 

MT5 (build 2496) は、ユーザー定義式で計算されるカスタムチャートとの相性が非常に悪いです。
CPUに常時負荷-コア負荷100%。
ディスクを永久にロードする - ちょうどそこに3GB以上のデータから書き込みます。
メインウィンドウに描画されるバッファを持つ任意のインディケータ(例えば、Indicators/Trend/Adaptive Moving Average)の場合、Hogsターミナルを表示します。


プレイ手順:
MetaQuotes-Demo、Hedgeのアカウント。
1つのチャートに表示するバーの最大本数を設定:1000本

Create Custom Symbol: Ctrl+U ==> Create Custom Symbol:
- Symbol: NZDUSD_AUDUSD
- Formula: NZDUSD-AUDUSD
- Allow negative prices: True - Custom Symbol: NZDUSD_AUDUSD - Formula: NZDUSD_AUDUSD - Allow negative prices: True

結果 - システムが最大3GBのディスクを消費するようになりました。
カスタムシンボルでチャートを開くと、カーネルの負荷が100%に跳ね上がります。
インディケータ(例えばIndicators/Trend/Adaptive Moving Average)を追加してTFを切り替えると、データウィンドウが痙攣を始め、数秒後には端末が全く反応しなくなります。


 
UPD。また、ログに何万もの単調なエントリーが書き込まれます。
QG      0       18:18:12.209    Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06.19 to 2020.06.19 (4294967295 M1 bars from 1970.01.01 00:00 to 2020.06.19 23:54)
ML      0       18:18:12.209    Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
LF      0       18:18:12.212    Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06.19 23:54 updated
GO      0       18:18:12.212    Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06.19 to 2020.06.19 (4294967295 M1 bars from 1970.01.01 00:00 to 2020.06.19 23:54)
CD      0       18:18:12.212    Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
QN      0       18:18:12.215    Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06.19 23:54 updated
FG      0       18:18:12.215    Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06.19 to 2020.06.19 (4294967295 M1 bars from 1970.01.01 00:00 to 2020.06.19 23:54)
JL      0       18:18:12.215    Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
FF      0       18:18:12.218    Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06.19 23:54 updated
QO      0       18:18:12.218    Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06.19 to 2020.06.19 (4294967295 M1 bars from 1970.01.01 00:00 to 2020.06.19 23:54)
MD      0       18:18:12.218    Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
LN      0       18:18:12.221    Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06.19 23:54 updated
GG      0       18:18:12.221    Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06.19 to 2020.06.19 (4294967295 M1 bars from 1970.01.01 00:00 to 2020.06.19 23:54)
CL      0       18:18:12.221    Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
NF      0       18:18:12.223    Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06.19 23:54 updated
IO      0       18:18:12.223    Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06.19 to 2020.06.19 (4294967295 M1 bars from 1970.01.01 00:00 to 2020.06.19 23:54)
ED      0       18:18:12.223    Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
RN      0       18:18:12.227    Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06.19 23:54 updated

ログの総容量は1GBに迫ろうとしています。


UPD...すべての計算が終了した後、ターミナルを閉じて再び開くと、3~8GBの計算データがすべて正常に削除され、500MB程度の控えめな容量を使って再び計算が開始されます。
ターミナル再起動後にカスタムシンボルで チャートを開くと、なぜかM1の3本だけ空になってしまいます(フラグ「マイナス価格を許可」がオフになっているような挙動です)。

 

開発者に対応してもらうためのバグレポートはどこに送ればいいのですか?

いくつかのリリースから、静的関数を呼び出すテンプレートクラスのコンパイルが壊れています。例

クラスバーは64ビットと32ビットの両方のMQL5でコンパイルされました。これでエラーが発生するようになりました。ビルド 2485 2020年06月05日

class Foo {
public:
    static void Start() {
        Print("Hallo!");
    }
};

template<typename T>
class Bar {
public:
    Bar() {
        T::Start();
    }
};

class Foz {
public:
    Foz() {
    }

    void Start() {
        Print("Hallo!");
    }
};

template<typename T>
class Baz {
public:
    Baz() {
        T t;
        t.Start();                                                                                                                                                                                          
    }
};

void OnStart() {
    Bar<Foo> var;
    Baz<Foz> vaz;
}

template_static_bug.mq5 : information: compiling 'template_static_bug.mq5'
template_static_bug.mq5(12,12) : error 256: 'Start' - undeclared identifier
Result: 1 errors, 0 warning
 
YanGillan:

開発者に対応してもらうためのバグレポートはどこに送ればいいのですか?
一部のリリースから、静的関数を呼び出すテンプレートクラスのコンパイルが壊れました。例)
Barクラスは64ビットと32ビット両方のMQL5でコンパイルされています。これでエラーが発生するようになりました。build 2485 2020年06月05日

このバグについて何らかの形で文句を言うユーザーは、5人目くらいになるのでは...。

 
Sergey Dzyublik:

このバグについて何らかの形で文句を言うユーザーは、5人目くらいになるのでは...。

ええ、まあ、どうしましょう?ベースクラスによる回避策は知っているが、それは松葉づえだ。また、すべてのコードにパッチを当てるのは得策ではありません。

以前のビルドはどこでダウンロードできますか?ブローカーでもmt5のサイトでも見当たりません。

 
YanGillan:

ええ、まあ、どうしましょう?ベースクラスによる回避策は知っているが、それは松葉づえである。そして、コード全体にパッチを当てるのは得策ではありません。

以前のビルドはどこでダウンロードできますか?私のブローカーのサイトでは見つけられず、mt5のサイトでも利用できません。

 
YanGillan:

ベースクラスによる回避策は知っているが、それは松葉づえだ。そして、コード全体にパッチを当てるのは得策ではありません。

この方法のことでしょうか、それとも他の方法のことでしょうか?

template<typename T>
class GetClassType{
public:
   class type : public T{}; 
};


class Foo {
public:
    static void Start() {
        Print("Hallo!");
    }
};

template<typename T>
class Bar {
public:
    Bar() {
        GetClassType<T>::type::Start();
    }
};

void OnStart() {
    Bar<Foo> var;
}