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

 
s2101:

MT5はこれでOKなのですが、もう一つ問題があって、メモリを恐ろしく食ってしまうのです。プログラマーならともかく、トレーダーには全く通用しない。

証明と問題の正確な説明をお願いします。

OS、ビルド、ビットレートは?

 
alexl:

根拠を示し、問題を正確に説明すること。

OS、ビルド、ビットレートは?

W-XP SP3 32bit MT5 ビルド1100
すべては、バージョン1079から始まった。それ以前は、MT5端末を4~5台読み込んで、問題なく動作していました。

下の図では、ロードのプロセスを見ることができます。 1名 ターミナルMT5では、2006Mbの割り当てメモリが あり、そのうち270MbはOSとアクティブなプロセスで使用されています。MT5はその差を "喰う "のです。

システムは8つのTFで、それぞれに10個の「ライト」インジケータを搭載しています。全部で80の指標があります。メモリを「食う」のは、指標の「重さ」ではなく、その「量」である。このフォーラムの1306ページで、「ミリ秒数=0.000005*n^2(nは処理するオーダーの数)というべき乗の 関係が見つかりました」とお伝えしました。

MT5でも、インジケーターの計算でも同じことが起こります。

システムおよびすべてのアクティブなプロセスがチャートに表示されます。このシステムは、将来の 価格変動に関する先行的な、一義的に実行可能なシグナルを生成します。


以下は、連続してダウンロードされたものです。ファイブ MT4端末はMT5と同じ80本で、それぞれ軽いインジケーター。メモリーには何の問題もありません。
MQL5からMQL4へのシステムインジケータは、MT5ではアスク、ビッド、ラストの価格ラインがあるべき場所以外の場所にあり、MT5での動作が不可能なときに転送されました。



 
s2101:
W-XP SP3 32bit MT5 ビルド1100
すべては、バージョン1079から始まった。それ以前は、MT5端末を4~5台読み込んで、問題なく動作していました。

下の写真では、ロードの過程を見ることができます。 1名 MT5ターミナルでは、2006Mbのメモリを割り当て、そのうち270MbはOSとアクティブなプロセスで使用しています。MT5はその差を "喰う "のです。

システムは8つのTFで、それぞれに10個の「ライト」インジケータを搭載しています。全部で80の指標があります。メモリを「食う」のは、指標の「重さ」ではなく、その「量」である。このフォーラムの1306ページで、「ミリ秒数=0.000005*n^2(nは処理するオーダーの数)というべき乗 関係が見つかりました」とお伝えしました。

MT5でも、インジケーターの計算でも同じことが起こります。

システムおよびすべてのアクティブなプロセスがチャートに表示されます。このシステムは、将来の 価格変動に関する先行的な、一義的に実行可能なシグナルを生成します。


以下は、連続してダウンロードされたものです。ファイブ MT4端末はMT5と同じ80本で、それぞれ軽いインジケーター。メモリーには何の問題もありません。
MQL5からMQL4へのシステムインジケータは、MT5ではアスク、ビッド、ラストの価格ラインがあるべき場所以外の場所にあり、MT5での動作が不可能なときに転送されました。



時々、「簡単な」指標はそれほど簡単ではありません。ここでは、そのアルゴリズムを見て、より寛大にする必要があります。なぜなら、それらのほとんどはティックで計算され、それらのいくつかはティックごとに全体の履歴を再計算さえしますが、実際にはそれらはすべて離散であり、バーごとに一度計算すれば十分だからです。

80指標)。もう機械が引っ張らないのだから、もっと謙虚であるべきかもしれない。端末ごとに分割

MT5の方がティックが多い。

 
 

問題はこれだ。OBJPROP_TEXT プロパティの文字数制限はどこまでですか?

bool  ObjectSetString(
   long    chart_id,          // идентификатор графика
   string  name,              // имя
   int     prop_id,           // свойство
   string  prop_value         // значение - какая длина строки???
   );
 
denkir:

ここで質問です。OBJPROP_TEXT プロパティの文字数制限はどこまでですか?

タイプ別
string
 

静的メンバを 初期化する前にコンストラクタを呼び出すこと

class A;
//---
class B { public:
         B() { a = new A; } // здесь A::s не инициализирована на момент вызова
        ~B() { delete a; }
        A *a;
};
//---
class C { public:
        static B b;
};
B C::b;
//---
class A { public:
         A() : a( s ) {}
        static int s;
        int a;
};
int A::s = 1;
//---
void OnStart() { Print( C::b.a.a ); } //результат = 0, а должен быть 1
となり、クラス A の記述が先に置かれた場合、結果は 1 となる。明らかに、結果はクラス宣言の順序に依存してはならない
 

実行エラー:無効なEX5ファイル (8)

class A { public:
        A() : text( NULL ) {} // или text( "произвольный" )
        void f() { ::Print( '0' << this.text ); }
        string text;
};
void OnStart()
{
        A a;
        a.f();
}
 
denkir:

問題はこれだ。OBJPROP_TEXT プロパティの文字数制限はどこまでですか?

文字列のプロパティはすべて63文字まで(「 \0 」の場合は64文字まで)だと思います。
 

週末に同じようなバグを見たのは2週目です。

分足チャートでは、市場がさらに1時間閉じた後の金曜日に、2分周期の ゼロハイ・バーが描かれます。

これは、最新のアップデートで来たようです。