错误、漏洞、问题 - 页 1967

 
Комбинатор:
如果你能让它在专业人员中编译和运行,那就可以了 )

我真的不明白它有什么问题。一切正常。

template<typename T>
void f() { }

template<>
void f<int>() { }

int _tmain(int argc, _TCHAR* argv[])
{
  f<double>();
  f<int>();

  return 0;
}
 
Alexey Navoykov:

我真的不明白你不喜欢它的原因。一切正常。

好吧,我是那个愚蠢的人。
 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

A100, 2017.08.17 18:45

template <typename T>
int xxx::value = -1;

是的,这是我已经发现的事情。但问题是(过去),在源码中,这个memeber实际上是一个数组,为了简单起见,我决定先处理这个标量。然而,对于阵列来说,同样的技巧并不奏效。我不得不在成员函数中静态地拖动数组。

 
Stanislav Korotky:

然而,同样的技巧对数组不起作用。我不得不在成员函数中静态地拖动数组。

这已经是一个编译器错误 - 我们应该告诉服务台

template<typename T>
struct A {
        static int i[];
};
template<typename T>
int A::i[]; //error: '[' - unexpected token
 

建于1650年。如果连接了几个.ex5模块(主模块和库模块),那么就完全不能工作。到处都有一个形式的错误。

2017.08.18 01:49:59.759 绘图(USDJPY,H1) 无法在'yyy.ex5'中找到'xxx'。

以前一切工作都很正常。即使是现在,在编译MetaEditor 1646+MetaTrader 1650时,一切都能正常工作。

很明显,MetaEditor 1650中存在一个错误,而.ex5文件几乎薄了一倍。为什么要进行这样的实验?

 

添加代码

//Test.mqh
class A {};
class B { public:
        B() { f(); }
        A *g() { return NULL; }
void f()
{
        void *x = g();
        if ( true )
                return; 
        delete x; //в build 1650 не работает даже если до delete никогда (!) не доходит
                   //а ошибка при выполнении возникает именно из-за наличия этой строки
                   //и указатель в исходном коде действительный (есть проверка)
}
};

//Test.mq5
#include "Test.mqh"
#import "Test2.ex5"
        A *f();
#import
void OnStart()
{
        f();
}
//Test2.mq5
#property library
#include "Test.mqh"
static B b;
A *f() export { return NULL; }

结果在上一篇文章中

 
另一个要检查的例子
//Test.mq5
class A;
#import "Test2.ex5"
        A *f();
        void g( A* );
#import
void OnStart() //вариант 1
{
        f(); /*возвращаемое значение не используется*/
}
//Test2.mq5
#property library
class A {};
static A *a;
A *f()       export { /*делает что-то полезное*/; return a; }

void g( A* ) export { /*делает что-то полезное*/; }

该图书馆具有一般性质。顺便说一下,在这种情况下不使用返回的f()指针--选项1(但可以使用--见下面的选项2)。编译Test.mq5时,没有错误信息--这意味着编译器不需要定义类(A)。然而,在执行过程中出现了一个错误:无法在'Test2.ex5'中找到'f'。

更多关于

void OnStart() //вариант 2
{
        g( f()/*возвращаемое значение используется*/);
}
 
你能告诉我是否可以在测试结果 中设置相对缩减而不是最大缩减?但往往最大的缩水是3-5%,相对缩水达到50%。而要看到相对的缩减应单独测试。预先感谢
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии ( советники ) перед началом использования их в реальной торговле. При...
 
 
Vladimir Pastushak:

Windows的语言需要改变,才能让人满意...