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

 
Artyom Trishkin:

ご説明いただいた動作から判断すると、これは全く別のアルゴリズムを持つ別のEAです。

みんなで考えたんですが、端末のバグなのか、開発者の設計なのか、どのセットの履歴でもテストを実行すると、テストの最後にグラフが出るんですが、その上に実際の履歴からこの期間の履歴が全部自動的に重なってしまうということなんです。

結果を比較した後、ログを見て、テスターと実際のトレードのオープニングポジションの 価格を比較したところ、ほとんど一致しており、わずかな違いがあります。

しかし、テスト終了後、このチャートに実際のトレードが重ねられるのは事実です。

その重ね合わせを避けるために、次のようなことをしました。

ジャーナルを右クリックして自動更新を無効にしたところ、すべてのテストがテスターでテストされた取引のみをこのチャートに表示し、実際の取引は適用されなくなりました。

グループの人たちに、このシンボルで何か取引があった期間、ロボットでも何でも使って動かしてもらったところ、テスターでの取引に加えて、過去に取引された実際の取引がチャートに重なって表示される、この事実を全員が確認したのだそうです。


どの商品にも取引がある場合、この期間にどのロボットを実行しても、これらの取引がチャートに適用され、オートトレードが無効になっている場合は、実際の取引は適用されないことがわかります。

このバグがあれば、1週間ロボットをテストして、チャート上でトレードの違いを比較することができます。

 
Konstantin Seredkin:

テスターのトレードに加え、過去に取引されたリアルトレードがチャートに重ねられます。

この動作は、カスタムシンボルを 使用している人には見えません。しかし、実際のシンボルでは、かなり不便そうです。

 

デバッガで、GetLastError();の値が取得できないのですが?

変数または定義された _LastError を通してのみ ?

ファイル:
 
awsomdino:

デバッガで、GetLastError();の値が取得できないのですが?

変数または事前定義された _LastError を通してのみ ?

はい、ここで_Valueが役に立ちます。

 
fxsaber:

そう、これが_Valueの良さなんです。

もしかしたら、開発者がGetLastError() 関数からデバッガを覗く機能を追加するかもしれません。

そうでなければ、この便利でシンプルな2行は意味がない。

   if(GetLastError()>0)
      DebugBreak();
 
awsomdino:

GetLastError() 関数からデバッガを見ることができるようになるかもしれませんね。

そうでなければ、この便利でシンプルな2本の線は役に立ちません。

この機能だけは使わないでください。

 

前回の「見直し」修正による エントリ数を最小化するため、以前に修正された不具合は引き継がれない

テンプレート機能/クラス動作の不具合
MT5(ビルド2474)では未修正 です。)*** テンプレート関数のパラメータで内部クラスにアクセスしようとすると、コンパイルエラーになるバグがあります。
(MT5(ビルド2474)では修正 されていません)** テンプレート関数の戻り値が、テンプレート関数の引数型で指定されたテンプレートクラス内の内部クラスである場合のコンパイルエラー、不具合。
(MT5(ビルド2474)では修正 されていません)** テンプレートコンストラクタで、継承クラスと内部クラスで同じクラス名を使用している場合に、ベースクラスを呼び出すと、コンパイルエラー、名前空間、スコープのバグが発生します。
(MT5(ビルド2474)では修正 されていません)* コンパイルエラー、オーバーロードされた非テンプレート関数から呼び出された場合、明示的な引数型を持つテンプレート関数呼び出しのバグ。
(MT5(build 2474)では未修正
) コンパイルエラー、内部クラス定義のバグ - ベースクラス指定時にグローバルネームスペースを参照しない。
(MT5(ビルド2474)では修正 されていません)* ベースクラスを明示的に指定して代入文を呼び出すと、コンパイルエラーになります。この問題は、テンプレート・パラメータをベース・クラスとするテンプレート・クラスで発生します。
(MT5(build2474)で修正
) テンプレートクラスで継承のためのデフォルトアクセス修飾子を使用する場合、テンプレートパラメータがベースクラスであると、コンパイルエラーになります。
(MT5(ビルド2474)で修正 されました)* (new) Compile Error, 名前空間からテンプレート・クラスを継承する際のコンパイル・エラー。
( MT5(ビルド2474)で修正 されました)** (new) コンパイルエラー、デフォルトのoperator=はポインタオブジェクトからアクセスされない。
(MT5(ビルド2474)では修正
されていません)*** (new)Compile Error, テンプレートクラスメソッドの前方宣言のためのコンパイルエラー.
(MT5(ビルド2474)では
修正 されていません)** (new) クラスが、クラスをフィールドとして使用するラッパークラスへのポインタを含む場合、コンパイル エラーになります。


MQL vs C++におけるオーバーロードされた関数呼び出しの優先順位の不一致に関する不具合
( MT5(ビルド 2474)では修正 されていない)** オーバーロードされたテンプレート関数の1つ目が完全に特化されたテンプレートベースクラスを使用し、2つ目が特化されていないテンプレートベースクラスを使用している場合、コンパイルエラーとなります。
( MT5(ビルド2474)では修正 されていません)** 渡されたパラメーターに適したシグネチャーを持つオーバーロードされたテンプレート関数が存在するにもかかわらず、テンプレート関数のコードを生成する際にコンパイルエラーが発生します。
( MT5(ビルド2474)では修正 されていません)* テンプレートパラメーターの数が異なるオーバーロードされたテンプレート関数を呼び出すと、コンパイルエラー「ambiguous call to overloaded function」が発生します。

(MT5(ビルド2474)では未修正)*** コンパイルエラー、オーバーロードされたテンプレート関数の呼び出しにエラーが発生しました。
(MT5(ビルド2474)では未修正)** データ型 color を持つオーバーロードされたテンプレート関数があるにもかかわらず、データ型 color を持つ引数の関数を呼び出すと、暗黙の型会話が使用され、コンパイルエラーとなります。
(MT5(ビルド2474)では未修正)* コンパイルエラー オーバーロードされたテンプレート関数が呼ばれたとき、明示的に特殊化されているにもかかわらず、テンプレート関数がデフォルトで呼ばれるため、スタックオーバーフローになる...。
(MT5(ビルド2474)では未修正)* 関数ポインタの配列を使用している場合、そのポインタを介して関数を呼び出すとコンパイル エラーになります。
( MT5(build 2474)で修正)* (new) コンパイルエラー、名前空間でオーバーロードされた関数の呼び出し優先度に問題がある。

MetaEditor関連のバグ:
( ME5(ビルド2474)では修正 されていません)*** デバッガで、静的 構造体メソッドに ブレークポイントを設定すると、MT端末がハングアップしてしまう。
( ME5(build 2474)では修正 されていません)** コンパイル時に、コンパイルエラーの記述が256文字に収まらずカットされるため、必要な部分がカットされ、どのデータ型に対してエラーが発生しているのかがわからなくなる。
( ME5(build 2474)で修正さ れました)** デバッガ、StepInto(F11)、ブレークポイントの設定がうまくいかない。
( ME5(build 2474)で修正さ れました)* デバッガで、ブレークポイントが発生した後、(F5)を押してコードの実行を継続する代わりに、実際には何も実行せずに再度同じブレークポイントが発生します。
( ME5(build 2474)では修正 されていません)* コンパイル時、Error DescriptionとParameter infoの関数テンプレートのシグネチャが正しくありません。
( ME5(build 2474)では修正 されていません)* MetaEditorの置換(Strl + H)機能は、アプリケーションの必要な部分が選択され、コード全体が選択されていない場合、「選択中」と「逆方向」が有効になっていると機能しない。
( ME5(ビルド2474)では修正 されていません)* (new) MetaEditorで、ブレークポイントをトリガーすると、入力条件が満たされたと誤解されるが、実際には全くそうでないかもしれない。


遅い関数実行に関する不具合、コードオプティマイザ:
( MT5(ビルド2474)で修正)**(up) ランタイム、ArrayResize を使って配列に要素を1つずつ追加する際に、それらのためのメモリがあらかじめ確保されているにもかかわらず大きなオーバーヘッドが発生、例えば、構造体は最大で7倍遅くなります。


提案:
- MEに現在のプロジェクトによる検索/置換を追加。リファクタリング中に各ファイルを調べて発生を検索するのはあまり良いことではない。
リンク- コンパイル時の ME で、空の列 File、Line、Column に、include を作成したソースファイルに関する適切な情報を入力します。
リンク- クラス内の静的メソッドに対するインテリセンスをベースに、名前空間機能に対するインテリセンスのサポートについて紹介します。

link - "プロジェクト "タブでプロジェクトファイルを移動 するとき、移動したファイルが MEタブで開かれている場合、自動的にロケーションパスを更新します。
link- MQLにtypedef宣言機能を導入する必要性について。
link- デフォルトコピー構成子および割り当て演算子を強制生成する可能性の提供について。

 
Sergey Dzyublik :

前回の訂正の「見直し」からの エントリ数を最小限にするため、以前に訂正した不具合は繰り越されていません。
...

これはリストに入っていますか?ない場合は、追加してください。

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

MQLの構文が違う?

Dan Marinescu, 2020.05.27 22:47

汎用的なインターフェースを定義し、それを別のクラスで使いたい。このコードのどこが悪いのかがわからない。

 #property  strict

template < typename T> interface IGenericHandler {
     bool Handle(T &item);
};

#define  DOES_NOT_WORK

class GenericHandler {
     public :
#ifdef  DOES_NOT_WORK   
         template < typename T> bool Handle(T &val, IGenericHandler<T> *handler);
#else   
         template < typename T> bool Handle(T &val, IGenericHandler<T> *handler) { return false ; }
#endif        
 };

#ifdef  DOES_NOT_WORK
template < typename T> bool GenericHandler::Handle(T &val, IGenericHandler<T> *handler) { return false ; }
#endif 

DOES_NOT_WORKが定義されていない場合、全て動作します。しかし、DOES_NOT_WORKが定義されていると、コンパイラはこう言います。

'Handle' - member function already defined with different parameters

なぜ?


 
Alain Verleyen:

これはリストに入っていますか?ない場合は、追加してください。

追加ありがとうございます。はい、リストにこの問題の記述があります:
( MT5(ビルド2474)では修正 されていない)*** (new)CompileError,クラスのテンプレートメソッドの前方宣言のためのコンパイルエラー.

 
Sergey Dzyublik :

追加ありがとうございます。はい、リストにこの問題の説明があります:
( MT5(build 2474)では修正 されていません)*** (new) コンパイル エラー テンプレートクラスメソッドの前方宣言のコンパイルエラー について .

素晴らしい、ありがとうございます。