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

 
A100:

もう一つのバグは、32ビット版(私のが正確です)では、実行時にエラーが発生しないことです。無効なポインタ - クラスにメンバが追加されている場合のみ。

MT4でテストしたのでしょうが、そちらもビルドが低くなっています。

 
Kirill Belousov:

バグです。

エラー4200は、NOT CURRENT CHART上で重複オブジェクトを作成する際には発生しません(現在のチャート上では発生します - [ログの「CURRENT CHART」を参照] )。

また、「最近のチャート」にあるオブジェクトを見つけるには、「現在のチャート」を見つけるよりも最大500倍も時間がかかることがわかりました。

а :)というのも、これは私一人の問題ではないことがわかったからです。

関数呼び出し時にすぐにオブジェクトが生成されるわけではありません。チャートに対して非同期コマンドを送信します。自分たちのチャートは、事前にチェックする機会があります。他人のチャートにはそのような可能性はない--というより、あるのだが、非常に高価なのだ。

したがって、"no errors "というリターンコードは、まさにこのエイリアンチャートが見つかり、オブジェクト作成 コマンドが正常にその実行キューに入れられたことを意味します。

 
fxsaber:

MT4でテストされたのでしょうが、そちらもビルドが低くなっています。

MT51653 ▶︎Win10 - my code reaches line //Result: false

32ビットでポインタが 無効な場合、ランダムエラーになります。

ServiceDeskはこう書いている。関数fは空であり、コピー演算子の呼び出しと同様にオプティマイザでカットされる。

しかし、もし

        void f() { Print( __FUNCTION__ ); }

その後Result。

2017.09.26 14:03:55.853 デモ (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 デモ (GBPUSD,M15) false
基本的に変化なし。

 
A100:

また、32ビットを持っている場合 - すべてのいくつかのランダムなエラーが発生します。

いいえ、私はWin7x64を使用していました。

ServiceDeskはこう言っている。関数fは空であり、ステップ1のコピー演算子呼び出しと同様に、オプティマイザによって呼び出しがカットされる。

しかし、もし

ならいい

SDが確認せずにすぐに対応するところに遭遇したことがあります。そして、90%のアプリケーションでは、これはおそらく正しいでしょう。ほとんどのアプリケーションは、バグが原因ではなく、無知が原因なのですから。よく見てください - 動きます。

 

リンクを貼ったサイトのバグ。

フォーラムの投稿がモデレーターによって他のスレッドに移動された場合、プロフィール検索の「すべての投稿」では、この投稿は古い場所にリンクされています。その結果、そこにナビゲートすることができない。

 
A100:

MT51653-Win10 - I get to the line //Result: false

もし、32ビットで無効なポインタもある場合は、ランダムエラーになります。

ServiceDeskはこう書いている。 関数fは空であり、 コピー演算子の 呼び出しと同様にオプティマイザでカット される。

しかし、もし

その後Result。

2017.09.26 14:03:55.853 デモ(GBPUSD,M15) A::f
2017.09.26 14:03:55.853 デモ(GBPUSD,M15)false
大同小異

付け加えると、f関数ではオブジェクトフィールドをアドレスしないので、オブジェクトポインタ(this)は必要ない。
オプティマイザは、オブジェクト・ポインタへのハンドル(MQLではハンドルはポインタであることを覚えておいてください)の不要な再参照を削除します。

 
Ilyas:

付け加えると、関数fはオブジェクトフィールドへのアドレッシングを含まないので、関数fにはオブジェクト(this)へのポインタは必要ない。
オプティマイザは、オブジェクト・ポインタへのハンドル(MQLではポインタがハンドルであることを思い出してください)の不要な再参照を削除します。

明らかに、静的と同じようにfで作業すること。しかし、一方が実行され、もう一方が割り込む ことをどう説明するのか。

 
実際、少なくともこれは便利でしょう。
input string Value = _MarketWatch; // Выпадающий список (а-ля enum) символов из Обзора рынка

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

ENUM シンボルリストを INPUT にする。

マーティン・ノヘイル さん 2017.09.26 13:01

こんにちは、私は以下のことをしようと思っています。

シンボルを入力パラメータに したいので、以下のような入力変数(enum)を用意して、そこから正しいシンボルを選択するようにしたい。

私は、このコードでこれを行いました。

enum ENUM_SYMBOL
   { 
    EURUSD=0, 
    GPBUSD=1, 
    USDCHF=2
   };

それは私にとって完璧な仕事です。しかし、私はシンボルのリスト全体によって動的に列挙を満たしたい(SymbolsTotal(0);)。

なんとなくですが、おそらくコードで。

int a = SymbolsTotal(0);
for(int i=0; i!=a;i++){
....
}
 
fxsaber:

明らかに、静的と同じようにfで作業すること。しかし、一方が実行され、もう一方が中断 されることをどう説明するのでしょうか?

ほとんどの場合、デバッグ(F5)を開始し、A100が先にコンパイル(F7)し、その後チャートが表示されます。

デバッグ用にコンパイルする場合、オプティマイザは明示的に使用されていないコードのみを削除し、その他の最適化は行いません。
 
Ilyas:
ほとんどの場合、デバッグを開始し(F5)、A100が先にコンパイルし(F7)、それをチャートに投げるのでしょう。

デバッグ用にコンパイルする 場合、オプティマイザは明示的に使用されていないコードのみを削除し、その他の最適化は 行いません。

その特徴は、すぐに取り入れました。今、自分で再確認してみました。

リリース版 です。

Test (EURUSD,H1)        invalid pointer access in 'Test.mq5' (9,11)
理由: