MetaEditor build 1463 - 页 14

 
Renat Fatkhullin:

还没有。

ArrayPrint- 类似。
 
问题是.
void OrderSend( int ) {}  // no problem
void Print( MqlTick& ) {} // 'Print' - override system function

例如,外部类":: "不允许重载,但任何内部类可以。

这就是为什么我们要用拐杖来限制

class PRINTCLASS
{
public:  
  template <typename T>
  static void MyPrint( const T &Value )
  {
    T Array[1];
    
    Array[0] = Value;
    
    ::ArrayPrint(Array);
  }
  
  template <typename T>
  static void MyPrint( const T Value )
  {
    ::Print(Value);
  }
};

#define Print(A) PRINTCLASS::MyPrint(A)

void OnStart()
{
  MqlTick Tick;
  
  SymbolInfoTick(_Symbol, Tick);

  Print(Tick);
  
  int i = 5;
  
  Print(i);
}
ZSArrayPrint 在网站上没有突出显示。
 
1467版本现在已经出来了。有什么变化?
 
仍未解决
 

在测试器中发现我的指标有问题。从1463版开始,测试器在测试指标 时挂起,几乎在启动后立即挂起。悬挂的是测试器,而不是指标。因为,当用新旧编译器编译时,问题仍然存在,但在旧的测试器中,一切测试都正常。

代码中导致挂起的地方找不到了。我试图在不同的代码行中做评论,但它总是在不同的地方挂起。一般来说,某种内部错误测试器。

 
Alexey Navoykov:

在测试器中发现我的指标有问题。从1463版开始,测试器在测试指标 时挂起,几乎在启动后立即挂起。悬挂的是测试器,而不是指标。因为,当用新旧编译器编译时,问题仍然存在,但在旧的测试器中,一切测试都正常。

代码中导致挂起的地方找不到了。我试图在不同的代码行中做评论,但它总是在不同的地方挂起。因此,测试器中存在某种内部错误。

所以仍然挂起,或者在测试器中你只是设置了最大的测试速度?

补充:我以前没有遇到过这种情况,所以非常希望能审查你的代码。

 
Alexey Navoykov:

无法找到代码中导致挂起的地方。

设置为在视频中永久地记录整个屏幕。当你遇到一个错误时,停止录制并修剪掉视频中不需要的东西。
 
Vladimir Karputov:

那么,它是否会冻结,或者你只是把它设置为测试仪中的最大测试速度?

补充:我以前没有遇到过这种情况,所以非常希望能审查你的代码。

它在任何速度下都会冻结。StrategyTestVisualization窗口没有反应。不幸的是,我不能向你展示所有的代码,它是一个商业产品。

它也不取决于测试模式 和时间框架。

 
Alexey Navoykov:

它在任何速度下都会冻结。StrategyTestVisualization窗口不响应请求。不幸的是,不可能展示整个代码,它是一个商业产品。

显示代码的唯一方法是使用ServiceDesk。虽然,在指标中存在一个无限的While循环的疑虑......
 
fxsaber:
2016.11.10 11:07:42.764 Test (EURUSD,M1)                         [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]
2016.11.10 11:07:42.764 Test (EURUSD,M1)        [0] 2016.11.10 11:10:11 1.09207 1.09217 1.09207   500000 1478776211595       2

唯一缺少的是一个ArrayToString。然后可以修改输出。例如,time_msc 和flags。

请将MqlTick 改为
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   datetime_msc time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags          // Флаги тиков
  };
也就是说,引入一个新的类型datetime_msc。