오류, 버그, 질문 - 페이지 1973

 
Stanislav Korotky :
특정 막대의 부피를 계산하는 알고리즘을 알려주십시오(어쩌면 이미 어딘가에 설명되어 있습니까?). 예를 들어 CopyTicksRange를 사용하여 특정 막대에 대한 모든 틱을 요청하는 경우 계산 결과 데이터 창에 표시된 것과 동일한 볼륨(실제 및 틱 모두)을 가져와야 합니다. 교환 상품에 대한 두 볼륨의 크기 차이가 있습니다(구체적으로는 MQ-Demo에서 AFLT를 사용하겠습니다). Forex 의 경우 틱 볼륨 은 동일하며 실제 볼륨에 대한 이야기는 없습니다.
볼륨을 합산할 때 TICK_FLAG 플래그를 확인하십시오. 그렇지 않으면 동일한 볼륨을 금액으로 여러 번 계산합니다.
 
Dmitriy Skub :
볼륨을 합산할 때 TICK_FLAG 플래그를 확인하십시오. 그렇지 않으면 동일한 볼륨을 금액으로 여러 번 계산합니다.

물론, 나는 깃발을 본다. 그것이 내가 요구한 것입니다. 나는 단지 세부 사항이 필요했습니다. 이미 답변했습니다. _TRADE 틱을 쿼리하는 것이 더 쉽습니다. 공장.

 
Stanislav Korotky :

물론, 나는 깃발을 본다. 그것이 내가 요구한 것입니다. 단지 세부 사항이 필요했습니다. 이미 답변했습니다. _TRADE 틱을 쿼리하는 것이 더 쉽습니다. 공장.

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();
 
Николай Никитюк :

TrendTenkan 방법의 계산 결과를 사용하기 위해 "LongCondition" 및 "ShortCondition" 기능이 필요하지만 여전히 수행할 수 없는 경우. 이것은 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();
}
 

빌드 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 );
}