错误、漏洞、问题 - 页 1973

 
Stanislav Korotky:
你能不能建议一种算法来计算特定酒吧的数量(也许已经在某个地方描述了?)例如,我们用CopyTicksRange请求得到一个特定条形的所有ticks,我们需要得到与数据窗口中显示的相同的成交量(包括实际成交量和ticks)的计算结果。我在交易所工具的两个量上都有数量级的差异(具体来说,在MQ-Demo上采取AFLT)。对于外汇,tick量 是一样的,真实的量在那里是不可能的。
在汇总卷数时,检查标志--TICK_FLAG。否则,你将会把同一个量总共计算几次。
 
Dmitriy Skub:
在汇总卷数时,你必须检查标志 - TICK_FLAG。否则,你将会把同一个量总共计算几次。

当然,我看的是旗帜。这就是我所问的--我只是想知道具体细节。它已经得到了回答。要求_TRADE ticks更容易。它是有效的。

 
Stanislav Korotky:

当然,我看的是旗帜。这就是我所问的--我只是想知道具体细节。它已经得到了回答。要求_TRADE ticks更容易。它是有效的。

你也可以根据ENUM_SYMBOL_CALC_MODE应用一个标志。

 
Alexey Viktorov:

你也可以根据ENUM_SYMBOL_CALC_MODE应用一个标志。

我当然知道。

 
与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。
 
内部错误#27
#import "Test.ex5"
        int f();
#import
static int i = Test::f();
 
Николай Никитюк:

如果我需要 "LongCondition "和 "ShortCondition "函数使用TrendTenkan方法的计算结果,而我仍然没有办法做到这一点。这是否意味着LongCondition必须调用TrendTenkan?

我只能对明显的错误进行调整。

for(i=idx+1;i<idx+21;i++)
     {if(DiffKijun(i)>0.0) {value_t=TYPE_TREND_UP; break; return(value_t);}
//здесь явно что-то не так
//return после break не имеет смысла

我不知道应该从哪里调用什么?

 

内部错误#112

class A;
struct B {
        void f() { a.g(); }
        A *a;
};
void OnStart()
{
        B b;
        b.f();
}
 

在Build 1653中,运行时错误并没有消失,而是转移到了代码的另一个部分。

无法在'Test2.ex5'中找到'f1'。

//Test.mqh
class B {
        virtual void  f() {}
};
class C {
        virtual void g( B& ) {}
};
class A : C {};
#import "Test2.ex5"
        A *f1();
        B *f2();
#import
//Test.mq5
#include "Test.mqh"
void OnStart()
{
        f1();
}
//Test2.mq5
#property library
#include "Test.mqh"
A *f1() export { return NULL; }
B *f2() export { return NULL; }
 

编译错误

#import "Test.ex5"
        void g();   //g(1)
#import
        void g() {} //g(2)
typedef void (*fn)();
void f( fn )       {}
void f( int, int ) {}
void OnStart()
{
        f( Test::g ); //нормально
        f(     ::g ); //error: 'f' - no one of the overloads can be applied to the function call
        f(       g ); //error: 'f' - no one of the overloads can be applied to the function call
//а как иначе указать что g - это g(2) ... и причем здесь overloads ???
        fn gg = g;    //нормально
        f( gg );
}
原因: