class A
{
public:
A(void) {}
~A(void) {}
//===============void Test(void) {}
//===============
};
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+ class B : public A
{
public:
B(void) {}
~B (void) {}
//===============void Test(int a) {}
//===============
};
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---
B b;
b.Test(); //deprecated behavior, hidden method calling will be disabled in a future MQL compiler versions
b.Test(5);
//---return(INIT_SUCCEEDED);
}
enum eTest
{
TEST
};
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+intOnInit()
{
//---Alert(typename(eTest)); // eTest::eTest а правильно (и раньше так было) eTest//---return(INIT_SUCCEEDED);
}
ここで@Vict が マクロ置換による OS 終了で例外を発生させるのを手伝ってくれたhttps://www.mql5.com/ru/forum/318246/page10#comment_12651045
という、一般的には実行可能な解決策ですがでも、見た目は不気味で気持ち悪い!?)))
これは本当にひどいものです。 マクロでリターンをラップするのは、よほど変態の知識がないと無理でしょう :) では、そのようなコードをどう扱うかですが、少なくともマクロ名をもっと説明的にすべきです - TRY_OR_RETURN, etc....
)))
見た目を見て使わないで、昔ながらの方法で書いています。OnTick()の中で if(!myfunc()) return; - コードはすべて if でいっぱいです ...は、かなりかわいいし、面白いです )))) 。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
MetaTrader 5ビルド2085の新バージョン:Pythonとの統合とストラテジーテスターの大幅な改善
アンドレイ・バリノフ 2019.09.06 06:25
なぜ今このコードに警告が出るのか、まだ説明してもらえますか?
メソッドにはさまざまなサインがある...
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
MetaTrader 5ビルド2085の新バージョン:Pythonとの統合とストラテジーテスターの大幅な改善
アンドレイ・バリノフ 2019.09.06 06:11
ビルド2136で壊れていたtypename()
ぜひ、元に戻してください。
このインジケータはシステムをクラッシュさせます。
また、画面の解像度を変更すると、画素が点滅し、コンピュータを再起動する必要があります。
さらに、一見無害に見える関数 Crash()を呼ばなければ、クラッシュすることはない。
以下のように再現しています。
このクラッシュを毎回プレイしていた(6~8回目)
LTSCではクラッシュしませんでしたが、ログに次のようなエラーが出ています。 MemoryException 4424265936 bytes not available, 0 heapmin result.
そう、クラッシュはとても大変なんです。危ないことはしないほうがいい。
もちろん、記憶力が大事なんですけどね。
このようにメモリを片付けると
もクラッシュしない。少なくとも私には起こりませんでした。
しかし、TFが変更された場合、配列は 自動的にクリーニング されなければならないのです
また、Crash()関数はインジケータの情報のみを読み取るため、この関数がないとどうなるのか理解できません。
おそらく、この関数の実行により、TF変更時のOnDeinitが遅くなり、そのためにMT5がメモリをクリアする時間がないのでしょう。
非同期のOnDeinitについては、以前から問題視してきました。よくないですねー。非同期が原因でシステムがクラッシュしてはいけない...。
インジケーターでチャートをスクロールさせると、プロセッサがコアを100%ロードするのはなぜですか?
結局、指標は計算されて描かれ、考えによると、メモリからの負荷だけがあるはずです。
インジケーターでチャートをスクロールさせると、プロセッサがコアを100%ロードするのはなぜですか?
結局、指標は計算されて描かれ、考えに従って、メモリからの負荷だけがあるはずです。
グラフ描画時のCPU負荷は、グラフィックカードの性能に直接依存します。
カード性能の低い古いノートパソコンや、ビデオカードやドライバのないサーバーでは、どうしてもCPU負荷が瞬間的に、しかし短時間に急上昇してしまいます。
そして、増えたリクエストを跡形もなく食べきるためには、CPU自体の性能も向上させる必要があります。グラフのレンダリング時のCPU負荷は、ビデオカードの性能に直結しています。
カード性能の低い古いノートパソコンや、ビデオカードやドライバのないサーバーでは、CPUの負荷がすぐに上がるのは避けられませんが、短時間で回復します。
そして、CPU自体もより強力でなければ、増大した要求を跡形もなく食いつぶしてしまうのです。プロセッサーにFX-8350、グラフィックカードにRadeon HD 7950を搭載していることですね。MT5でビデオカードに負荷がかかっている感じはしませんね。