class A { protected: void f( int ) {} //(*) }; class B : public A { public: void f( uint ) {} }; voidOnStart() { B b; b.f( 1 ); //'A::f' - cannot call protected member function }
而如果你去掉(*)行,一切都会好起来。B::f(uint)有什么问题?如果你从另一个角度看情况
class A { public: void f( int ) {} //(**) }; class B : public A { public: void f( uint ) {} };
class A { protected: void f( int ) {} //(*) }; class B : public A { public: void f( uint ) {} }; voidOnStart() { B b; b.f( 1 ); //'A::f' - cannot call protected member function }
而如果你去掉(*)行,一切都会好起来。B::f(uint)有什么问题?如果你从另一个角度看情况
class A { public: void f( int ) {} //(**) }; class B : public A { public: void f( uint ) {} };
怎样才能消除NOT LABEL对象对条形时间坐标的视觉粘连?
我把对象的时间坐标设置为秒,但它的视觉效果就像我把它设置为时间框架一样。
我挖出了这个问题
关于交易、自动交易系统和策略测试的论坛
错误, 漏洞, 问题
Andrew Petras, 2014.11.26 13:34
我很擅长移动三角形、椭圆或矩形等物体,而锚点却不成比例地 "浮动"。
这并不取决于这些设置
我创造
拖放
矩形是 "漂移 "的第二点,三角形和椭圆有第三点。
这个问题可以解决吗?我需要准确的 "测量"。
当我选择 "精确的时间尺度 "时,提到的约束力就消失了,一切都显示得很好。然而,我在MQL5中没有找到任何地方可以启用/禁用这个参数。难道没有规定吗?
真的需要一些帮助!几个小时以来,我一直在试图弄清这种奇怪行为的原因。最后我写了一个EA,结果很出乎意料
string TimeToString( const ulong Time )
{
return(TimeToString(Time / 1000, TIME_DATE|TIME_SECONDS) + "." + ::IntegerToString(Time % 1000, 3, '0'));
}
void OnTick()
{
static MqlTick PrevTick = {0};
MqlTick NowTick;
if (SymbolInfoTick(_Symbol, NowTick) && (PrevTick.time_msc > NowTick.time_msc))
Alert(TOSTRING(TimeToString(PrevTick.time_msc)) + TOSTRING(TimeToString(NowTick.time_msc)));
PrevTick = NowTick;
}
结果(自下而上)
2016.10.31 11:55:51.031 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:58:10.702
2016.10.31 11:55:50.979 Test10 (Si-12.16,M1)
2016.10.31 11:55:50.979 Test10 (Si-12.16,M1) TimeToString(NowTick.time_msc) = 2016.10.31 12:58:10.654
2016.10.31 11:55:50.979 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:58:10.656
2016.10.31 11:55:45.792 Test10 (Si-12.16,M1)
2016.10.31 11:55:45.792 Test10 (Si-12.16,M1) TimeToString(NowTick.time_msc) = 2016.10.31 12:58:05.458
2016.10.31 11:55:45.792 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:58:05.464
2016.10.31 11:53:45.807 Test10 (Si-12.16,M1)
2016.10.31 11:53:45.807 Test10 (Si-12.16,M1) TimeToString(NowTick.time_msc) = 2016.10.31 12:56:05.474
2016.10.31 11:53:45.807 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:56:05.476
SymbolInfoTick有时会返回(你必须等待)一个时间低于前一个时间的tick!
这到底是怎么一回事!?配置
Terminal C:\Program Files\BCS Broker MetaTrader 5 Terminal
Terminal Windows 7 Ultimate (x64 based PC), IE 09.00, Intel Core i7-2700K @ 3.50GHz, RAM: 11327 / 16301 Mb, HDD: 4346 / 30000 Mb, GMT+02:00
Terminal MetaTrader 5 x64 build 1455 started (MetaQuotes Software Corp.)
真的需要一些帮助!几个小时以来,我一直在试图弄清这种奇怪行为的原因。最后我写了一个EA,结果很出乎意料
string TimeToString( const ulong Time )
{
return(TimeToString(Time / 1000, TIME_DATE|TIME_SECONDS) + "." + ::IntegerToString(Time % 1000, 3, '0'));
}
void OnTick()
{
static MqlTick PrevTick = {0};
MqlTick NowTick;
if (SymbolInfoTick(_Symbol, NowTick) && (PrevTick.time_msc > NowTick.time_msc))
Alert(TOSTRING(TimeToString(PrevTick.time_msc)) + TOSTRING(TimeToString(NowTick.time_msc)));
PrevTick = NowTick;
}
结果(自下而上)
2016.10.31 11:55:51.031 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:58:10.702
2016.10.31 11:55:50.979 Test10 (Si-12.16,M1)
2016.10.31 11:55:50.979 Test10 (Si-12.16,M1) TimeToString(NowTick.time_msc) = 2016.10.31 12:58:10.654
2016.10.31 11:55:50.979 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:58:10.656
2016.10.31 11:55:45.792 Test10 (Si-12.16,M1)
2016.10.31 11:55:45.792 Test10 (Si-12.16,M1) TimeToString(NowTick.time_msc) = 2016.10.31 12:58:05.458
2016.10.31 11:55:45.792 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:58:05.464
2016.10.31 11:53:45.807 Test10 (Si-12.16,M1)
2016.10.31 11:53:45.807 Test10 (Si-12.16,M1) TimeToString(NowTick.time_msc) = 2016.10.31 12:56:05.474
2016.10.31 11:53:45.807 Test10 (Si-12.16,M1) TimeToString(PrevTick.time_msc) = 2016.10.31 12:56:05.476
SymbolInfoTick有时会返回(你必须等待)一个时间低于前一个时间的tick!
这到底是怎么一回事!?配置
Terminal C:\Program Files\BCS Broker MetaTrader 5 Terminal
Terminal Windows 7 Ultimate (x64 based PC), IE 09.00, Intel Core i7-2700K @ 3.50GHz, RAM: 11327 / 16301 Mb, HDD: 4346 / 30000 Mb, GMT+02:00
Terminal MetaTrader 5 x64 build 1455 started (MetaQuotes Software Corp.)
魔术线
virtual int f( const ABCDEFGHIJK ) const { return ABCDEFGHIJK; }
行动顺序(严格)
结果。![](https://c.mql5.com/3/108/replace__1.png)
这里的设置:https://www.mql5.com/ru/forum/1111/page1127#comment_795376
是的,你不是这里唯一需要帮助的人。几个星期以来,我一直试图将我的抽搐正确地卷成一支蜡烛。所以...抽搐仍然是原始的。在SD#1598238 中投标
提基正常地滚入蜡烛。
真的吗?而数量是一样的?而你已经进行了控制?而且你甚至可以显示日志吗?
做了控制--观看代码库。不要在意蜡烛图的交易量和计算出来的交易量之间的不匹配,因为这关系到一个边界刻度,它可以落入一个柱子或另一个柱子。这不是本金。我还在论坛上发布了交易额指标。所以根本不存在问题。
在你的案例中,如果你变得非常书呆子,你可以在条形创建机制上挑剔,但不能在CopyTicks上。
编译错误
protected:
void f( int ) {} //(*)
};
class B : public A {
public:
void f( uint ) {}
};
void OnStart()
{
B b;
b.f( 1 ); //'A::f' - cannot call protected member function
}
而如果你去掉(*)行,一切都会好起来。B::f(uint)有什么问题?如果你从另一个角度看情况
public:
void f( int ) {} //(**)
};
class B : public A {
public:
void f( uint ) {}
};
我们可以看到搜索匹配函数的MQL算法的基本缺点。在第二个例子中,B::f(uint)将被调用,直到没有字符串(**)。只要第(**)行出现,A::f(int)将被调用。这意味着基类的变化会影响最终结果,而在C++中,无论基类如何变化,B::f(uint)都会一直被调用,这就保证了最终结果的稳定性。
在MQL中,事实证明,A类开发者刚刚发明了一个新的public/protected/private函数,由于这个原因,B类用户停止了对代码的编译,并且/或者,更重要的是,最终的结果已经改变了。
魔术线
virtual int f( const ABCDEFGHIJK ) const { return ABCDEFGHIJK; }
行动顺序(严格)
结果。
这里的设置:https://www.mql5.com/ru/forum/1111/page1127#comment_795376
编译错误
protected:
void f( int ) {} //(*)
};
class B : public A {
public:
void f( uint ) {}
};
void OnStart()
{
B b;
b.f( 1 ); //'A::f' - cannot call protected member function
}
而如果你去掉(*)行,一切都会好起来。B::f(uint)有什么问题?如果你从另一个角度看情况
public:
void f( int ) {} //(**)
};
class B : public A {
public:
void f( uint ) {}
};
我们可以看到搜索匹配函数的MQL算法的基本缺点。在第二个例子中,B::f(uint)将被调用,直到没有字符串(**)。只要第(**)行出现,A::f(int)将被调用。这意味着基类的变化会影响最终结果,而在C++中,无论基类如何变化,B::f(uint)都会被调用,这保证了最终结果的稳定性。
在MQL中,事实证明,A类开发者刚刚发明了一个新的public/protected/private函数,由于这个原因,B类用户停止了对代码的编译,并且/或者,更关键的是,最终结果发生了变化。
只是b.f( 1 )调用中的常数 "1 "被解释为一个int。做一个明确的转换,一切都会成功。
b.f( (uint)1 );