Все мы знаем, что в C++ нет такого понятия как виртуальный конструктор , который бы собирал нужный нам объект в зависимости от каких-либо входных параметров на этапе выполнения. Обычно для этих целей используется параметризованный фабричный метод (Factory Method) . Однако мы можем сделать «ход конем» и сымитировать поведение виртуального...
どういう意味ですか?
はい、トリックは失敗しました、ビジュアルとノンビジュアルのChartID()=12345...(テスターの定数ChartID)。
しかし、ChartGetInteger(ChartID(),CHART_WIDTH_IN_PIXELS)は、スクリーンがなければ正直に-1を与える。これを使用して、物理学、つまり何かを出力する場所があるかどうかを判断することができます。多くのフラグがあり、VPS上に何があるのかまったくわからないからだ。
仮想メソッドはコンストラクターからは呼び出されない。
コードでは
コードではこうはできない :-))親クラスのOnAttachはコンストラクタから呼び出されます。
理解できないなら、暗記するしか ない :-)
MQLのもうひとつの突発的なニュアンス--仮想メソッドはコンストラクターからは呼び出されない。
コードでは
コードではこうはできない :-))親クラスのOnAttachはコンストラクタから呼び出されます。
理解できないなら、暗記するしか ない :-)
なぜ理解できないのか?仮想メソッドのテーブルにあるメソッドへのポインタの初期化はコンストラクタで行われる。親クラスのコンストラクタが最初に呼ばれ、次に後継クラスのコンストラクタが呼ばれる。従って、親クラスのコンストラクタ本体が実行されると、仮想メソッドのテーブルでは、ポインタは基底クラスのメソッドのアドレスを指すことになります。
PS.これは、C++を学ぶべきかどうかという永遠のコリヴァーに対するものだ。詰め込みではなく、物事の本質を掘り下げながら勉強すれば、そのようなことは自明になる)。
なぜ理解できないのか?仮想メソッドの表にあるメソッドへのポインタの初期化はコンストラクタの中で行われる。まず親クラスのコンストラクタが呼ばれ、次に後継クラスのコンストラクタが呼ばれます。したがって、親クラスのコンストラクタ本体が実行されると、ポインタは仮想メソッド表の基底クラスのメソッドのアドレスを指す。
PS.これは、C++を学ぶべきかどうかという永遠のコリヴァーに対するものだ。詰め込みではなく、物事の本質を掘り下げて勉強すれば、そんなことは自明の理になる)。
なんでもありのスクリプトの後で、「コンストラクタが仮想化できない」というのはちょっと驚きだ :-))
あらゆることが可能なスクリプトの後で、「コンストラクタを仮想にできない」というのはちょっと驚きだ。)
https://habr.com/ru/post/64369/。
追記。もちろん、まったく同じではありませんが、一般的な考え方の方向性として
あらゆることが可能なスクリプトの後で、「コンストラクタを仮想にできない」というのはちょっと驚きだ。)
予想外?
HiLow::OnAttachが呼ばれた場合を想像してみてほしい。HiLowに新しいフィールドがあり、OnAttachがそれを読み込むと、「初期化されていない変数の使用」が発生する(HiLowのコンストラクタはまだ実行を開始していないため)。
POSITION_TIME_UPDATEは、ポジションのロットを変更する場合にのみ関係します。例えば、あらゆるタイプの口座でのポジションの一部決済や、ネッティングでのリフィルなどです。
SL/TP レベルの変更は POSITION_TIME_UPDATE に影響しません。
言い換えると、POSITION_TIME_UPDATE は取引履歴に反映された変更によってのみ影響を受けます。SL/TPレベルはそのような修正には属さないので、影響しません。
はい、確かに実際の口座ではそうです。
しかし、Expert Advisorを構築した後、テスターで試してみたところ、テスターでは SL/TPレベルの修正がPOSITION_TIME_UPDATEに影響 することが判明しました。
以下はログの抜粋です。
ここでは、ポジションがオープンした時間を黄色でハイライトし、(次のティックで) SLとTPを変更(配置)した時間を赤でハイライトしています。そして、 POSITION_TIMEと POSITION_TIME_UPDATEの 時間をプリントで確認すると、それらは異なって います。
SLとTPの変更が同じ秒数内にある場合、POSITION_TIMEと POSITION_TIME_UPDATEの 時間はもちろん同じです。
情報ありがとうございました!
ORDER_TIME_SETUP_MSC フィールドは、注文が部分的に実行されると変更されます。
その結果、DEAL_TIME_MSC は、その注文のORDER_TIME_SETUP_MSC よりも小さくなることがある。
例