template <typename T>
class IS
{
public:
template <typename T1>
staticbool Object( const T1* Ptr )
{
return(dynamic_cast<const T*>(Ptr) != NULL);
}
};
class CLASS1 {};
class CLASS2 : public CLASS1 {};
class CLASS3 : public CLASS1 {};
voidOnStart()
{
CLASS2 Object;
CLASS1* Ptr = &Object;
Print(IS<CLASS1>::Object(Ptr)); // true - Ptr указывает на объект класса CLASS1Print(IS<CLASS2>::Object(Ptr)); // true - Ptr указывает на объект класса CLASS2Print(IS<CLASS3>::Object(Ptr)); // false - Ptr НЕ указывает на объект класса CLASS3
}
例題はポストランダムチェックから引用しています。
セミコロンはコンパイル結果に影響しません。ノーエラーセミコロンはコンパイル結果に影響しません。エラーなし結果
関数の呼び出しによる静的変数の初期化は、文書化されていない機能で、完全に偶然に現れたものですが、現在では削除するのが非常に困難な状況です。
静的変数を初期化するためのトレーディング環境 関数の呼び出しは強く推奨されません。
文意を汲み取る必要はない。このようなフレーズがあります。
テストの精度を最大限に高めるため、リアルティクモードでは分単位のバーも使用します。これらは、ティックデータのチェックと修正に使用されます。また、Strategy Testerとクライアント端末のチャートの乖離を回避することも可能です。
1分足の履歴はティックバーに対応していないということでしょうか。
実際の取引履歴に対応したデータであると仮定して、どのように可能なのでしょうか?
いくつかの最適化(1つではダメ!)を10パス分実行する(50だと多すぎる)。最適化キャッシュがあることに留意して、最適化の間にEAを再コンパイルするか、偽のパラメータ列挙値を変更する(これが望ましい)。上下の2つの極端な値は破棄してください。各最適化の残りの6つの値を分析する。
質量測定にマイクロセカンドタイマーを使用しないでください。通常のミリ秒のGetTickCountを使用します。ミリ秒が何百、何千という単位で計測されるような大きな範囲のテスト日を使用する。そうすれば、より正確で安定した測定が可能になります
テスターの速度測定に関する推奨事項