Erreurs, bugs, questions - page 1973

 
Dmitriy Skub:
Lorsque vous additionnez les volumes, vous devez vérifier les drapeaux - TICK_FLAG. Sinon, vous compterez le même volume plusieurs fois au total.

Bien sûr, je regarde les drapeaux. C'est ce que je demandais - je voulais juste des détails. Il y a déjà été répondu. Il est plus facile de demander des ticks _TRADE. Ça marche.

 
Stanislav Korotky:

Bien sûr, je regarde les drapeaux. C'est ce que je demandais - je voulais juste des détails. Il y a déjà été répondu. Il est plus facile de demander des ticks _TRADE. Ça marche.

Vous pouvez également appliquer un indicateur dépendant de ENUM_SYMBOL_CALC_MODE

 
Alexey Viktorov:

Vous pouvez également appliquer un indicateur dépendant de ENUM_SYMBOL_CALC_MODE

Bien sûr que oui.

 
Les commentaires non liés à ce sujet ont été déplacés vers "Questions des débutants de MQL4 MT4 MetaTrader 4".
 
erreur interne n°27
#import "Test.ex5"
        int f();
#import
static int i = Test::f();
 
Николай Никитюк:

J'ai besoin des fonctions "LongCondition" et "ShortCondition" pour utiliser les résultats des calculs de la méthode TrendTenkan, et je n'y arrive toujours pas. Cela signifie-t-il que LongCondition doit appeler TrendTenkan ?

Je ne peux que corriger les erreurs évidentes :

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

Je ne sais pas où il faut appeler ce qu'il faut.

 

erreur interne n°112

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

Dans la version 1653, l'erreur d'exécution n'a pas disparu, mais s'est déplacée vers une autre partie du code :

Impossible de trouver 'f1' dans 'Test2.ex5'.

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

Erreur de compilation

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

Erreur de compilation

class B {};
class A {
template<typename T> void f() const {} //1
template<typename T> void f()       {} //2
        void g() const { f<B>(); } //error: 'f<B>' - call non-const method for constant object
};
Et si vous intervertissez les lignes (1) et (2), c'est bon. Quelle est la différence ?
Raison: