Fehler, Irrtümer, Fragen - Seite 1973

 
Stanislav Korotky:
Könnten Sie bitte einen Algorithmus vorschlagen, um das Volumen für einen bestimmten Balken zu berechnen (vielleicht ist er schon irgendwo beschrieben?). Zum Beispiel fordern wir mit CopyTicksRange alle Ticks für einen bestimmten Balken an, und wir müssen als Ergebnis der Berechnungen dasselbe Volumen (sowohl reales als auch Ticks) erhalten, das im Datenfenster angezeigt wird. Ich habe Diskrepanzen in beiden Volumina für Börseninstrumente um Größenordnungen (um genau zu sein, nehmen Sie AFLT auf MQ-Demo). Für Forex sind die Tick-Volumina die gleichen, die realen Volumina sind dort nicht zu finden.
Überprüfen Sie beim Zusammenzählen der Mengen die Flaggen - TICK_FLAG. Andernfalls zählen Sie das gleiche Volumen insgesamt mehrmals.
 
Dmitriy Skub:
Bei der Summierung der Bände müssen Sie die Flags überprüfen - TICK_FLAG. Andernfalls zählen Sie das gleiche Volumen insgesamt mehrmals.

Natürlich achte ich auf die Flaggen. Das ist es, was ich gefragt habe - ich wollte nur etwas Genaueres wissen. Die Frage wurde bereits beantwortet. Es ist einfacher, _TRADE-Zeichen anzufordern. Es funktioniert.

 
Stanislav Korotky:

Natürlich achte ich auf die Flaggen. Das ist es, was ich gefragt habe - ich wollte nur etwas Genaueres wissen. Die Frage wurde bereits beantwortet. Es ist einfacher, _TRADE-Zeichen anzufordern. Es funktioniert.

Sie können auch ein Kennzeichen in Abhängigkeit von ENUM_SYMBOL_CALC_MODE setzen

 
Alexey Viktorov:

Sie können auch ein Kennzeichen in Abhängigkeit von ENUM_SYMBOL_CALC_MODE setzen

Natürlich weiß ich das.

 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Fragen von MQL4 MT4 MetaTrader 4 Anfängern" verschoben.
 
interner Fehler #27
#import "Test.ex5"
        int f();
#import
static int i = Test::f();
 
Николай Никитюк:

Wenn ich die Funktionen "LongCondition" und "ShortCondition" benötige, um die Ergebnisse der Berechnungen aus der TrendTenkan-Methode zu verwenden, habe ich noch keine Möglichkeit, dies zu tun. Bedeutet dies, dass LongCondition TrendTenkan aufrufen muss?

Ich kann nur die offensichtlichen Fehler korrigieren:

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

Ich weiß nicht, woher was aufgerufen werden soll

 

interner Fehler #112

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

In Build 1653 ist der Laufzeitfehler nicht verschwunden, sondern hat sich in einen anderen Teil des Codes verlagert:

Kann 'f1' in 'Test2.ex5' nicht finden

//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; }
 

Kompilierungsfehler

#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 );
}