错误、漏洞、问题 - 页 896

 

问候!

MT5优化器 - CustomMax计算正确吗?

我在MT5 5.00 build 722中运行优化器(遗传优化),无意中发现优化结果 的计算方式出乎意料。

专家顾问返回OnTester()。

Profit * Trades * (1/(MaxEquityDDPercent+1)) * RecoveryFactor

在哪里?

   double Profit = TesterStatistics(STAT_PROFIT);

   double Trades = TesterStatistics(STAT_TRADES);

   double MaxEquityDDPercent = TesterStatistics(STAT_EQUITY_DDREL_PERCENT);

   double RecoveryFactor = MathAbs(TesterStatistics(STAT_RECOVERY_FACTOR));

预计在利润和恢复系数较小的情况下,结果会更小,但事实并非如此--见截图。


是我没有正确理解吗?

附加的文件:
 
MetaDriver:

好吧,让我们开始行动吧。

但我担心你不会喜欢它。 例如,我就不喜欢它--图表抽搐和翻倍。 而我想做得更好--把它平稳地移到正确的地方......

// 有趣的是,使用ChartRedraw()比不使用它的速度快一倍。同时,它的抽搐更厉害。

ChartNavigate()仍然存在问题。有一天它会被修复吗?还是说这不被认为是一个错误?

服务台中是否已经有关于这个主题的帖子?还是要添加更多?))

 

执行错误:堆栈溢出

class A {
        static  bool OrderSend( const MqlTradeRequest& request, MqlTradeResult& result, bool async_mode = false )
	void function();
};
void A::function()
{...
	OrderSend(...) // ошибка выполнения возникает здесь
	A::OrderSend(...) // не помогает
...}

如果我们将OrderSend 替换成任何其他名称--一切都很好

静态的存在并不影响错误。

调用A::OrderSend() - 错误是不受影响的

 
A100:

堆栈溢出执行错误

如果你把OrderSend替换成任何其他的名字,就可以了


因为语境必须被解决

::OrderSend

 

我想我不是在调用::OrderSend,而是A::OrderSend()。

应该有效

 
A100:

我想我不是在调用::OrderSend,而是A::OrderSend()。

你想的是哪条线?

你刚才说的

void A::function()
{...
	OrderSend(...) // ошибка выполнения возникает здесь
вызывается именно ваша A::OrderSend
如果你想调用终端,在Ordersend 之前做:: 。
 
谢谢你,我已经找到了原因--我撤回这个问题--我自己把它圈起来了
 
A100:
谢谢你,我找到了原因--我把问题去掉了--我自己把它圈起来了

我了解到,你在你的Ordersend 中称自己没有:。

当我在课堂上重新定义打印和评论时,我马上就陷入了其中。现在我一直在做这件事 :)

 
sergeev:

我知道你在你的Ordersend中称自己没有:。

嗯,是的,虽然A::OrderSend有3(三个)参数,但后者是默认的,编译器不能(也不应该)通过参数的数量来区分与::OrderSend。
 
你能告诉我如何在论坛上创建一个投票吗?