Все мы знаем, что в C++ нет такого понятия как виртуальный конструктор , который бы собирал нужный нам объект в зависимости от каких-либо входных параметров на этапе выполнения. Обычно для этих целей используется параметризованный фабричный метод (Factory Method) . Однако мы можем сделать «ход конем» и сымитировать поведение виртуального...
你能解释一下吗?
我有时间检查了一下:是的,这一招失败了,可视和非可视的 ChartID()=12345......(测试者的 ChartID 是恒定的)。
但如果没有屏幕,ChartGetInteger(ChartID(),CHART_WIDTH_IN_PIXELS)会给出一个诚实的-1。您可以用它来判断物理情况--是否有输出东西的地方。因为有很多标记,而我们根本不知道 VPS 上有哪些标记
另一个突如其来的 MQL 细微差别 - 虚拟方法不能从构造函数中调用。
在代码中
你不能这样做 :-))父类的 OnAttach 将在构造函数中调用;而在正常访问过程中,子类的 OnAttach 将在构造函数中调用。
你无法理解它,你必须记住它:-)
MQL 的另一个突如其来的细微差别--虚拟方法不能从构造函数中调用。
在代码中
你不能这样做 :-))父类的 OnAttach 将在构造函数中调用;而子类的 OnAttach 将在正常访问过程中调用。
你无法理解它,你必须记住它:-)
为什么无法理解?虚拟方法表中方法指针的初始化在构造函数中进行。首先调用父类的构造函数,然后调用子类的构造函数。因此,在执行父类构造函数的主体时,虚拟方法表中的指针指向基类方法的地址。
PS.这是关于是否应该学习 C++ 的永恒话题。如果你认真学习,挖掘事物的本质,而不是死记硬背,这些东西就会变得不言自明)。
为什么无法理解?虚拟方法表中方法指针的初始化在构造函数中进行。首先调用父类的构造函数,然后调用子类的构造函数。因此,在执行父类构造函数的主体时,指针指向虚拟方法表中基类方法的地址。
PS.这是关于是否应该学习 C++ 的永恒话题。如果你认真学习,挖掘事物的本质,而不是死记硬背,这些东西就会变得不言自明)。
在一切皆有可能的脚本之后,"构造函数不能为虚 "的说法有点令人惊讶 :-))
在一切皆有可能的脚本之后,"构造函数不能为虚 "的说法有点令人惊讶:-)
对于你的 "麻烦",有这样一种解决方案:https://habr.com/ru/post/64369/。
PS.当然不完全相同,但可以作为一个大致的思考方向
在一切皆有可能的脚本之后,"构造函数不能为虚 "的说法有点令人惊讶:-)
意料之外?
想象一下,如果调用 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。
例如