Erreurs, bugs, questions - page 1329

 

Pas de surcharge

class A {};
void f( const A& ) { Print( 1 ); } //1:
void f(       A& ) { Print( 2 ); } //2:
void OnStart()
{
              A a1;
        const A a2;
        f( a1 ); // ошибка компиляции
        f( a2 ); // нормально, вызывается 1: f( const A& )
         
}

Qu'est-ce qui vous empêche d'appeler 2 : f( A& ) là où il y a une erreur ?

Les pointeurs sont surchargés normalement

void f( const A* ) { Print( 1 ); }
void f(       A* ) { Print( 2 ); }
void OnStart()
{
              A *a1;
        const A *a2;
        f( a1 ); //нормально
        f( a2 ); //нормально
}
 

Erreur de compilation

void g( int&  array[] ) { Print( __FUNCTION__); }
void h( long& array[] ) { Print( __FUNCTION__); }
template<typename T>
void f( T& t[] )
{
        if (      typename( T ) == "int"  ) g( t ); //Ошибка: parameter conversion not allowed
        else if ( typename( T ) == "long" )  h( t ); //Ошибка: parameter conversion not allowed
}
void OnStart()
{
        int  i[ 1 ];
        long j[ 1 ];
        f( j );
        f( i );
}

mais autrement

void g( int  array ) { Print( __FUNCTION__); }
void h( long array ) { Print( __FUNCTION__); }
template<typename T>
void f( T t )
{
        if (      typename( T ) == "int"  ) g( t );
        else if ( typename( T ) == "long" ) h( t );
}
void OnStart()
{
        int  i;
        long j;
        f( j );
        f( i );
}
OK
 
Vladimir Zubov:

Lorsque je suis passé du russe à l'anglais, avec un redémarrage du terminal, le bouton "undo" est resté écrit en russe. Win XP SP3

C'est parce que le vent est russe. Les boutons du système sont signés par le système lui-même dans sa propre langue.
 
Vladimir Zubov:
Est-ce que cela signifie que si l'EA utilise l'appel standard de l'indicateur, il "hello" également ?

Non.

Il s'agit d'un simple problème d'interface.

 
Per post 1769811: c'est exact, vous devriez utiliser la spécialisation explicite des modèles de fonctions ici. Malheureusement, il n'est pas actuellement pris en charge par le compilateur, mais sa mise en œuvre est prévue.
Явная специализация шаблонов функций
Явная специализация шаблонов функций
  • msdn.microsoft.com
Используя шаблон функции, можно указать особое поведение для определенного типа, предоставив явную специализацию (переопределение) шаблона функции для этого типа.
 

Bonjour, pouvez-vous s'il vous plaît guider le nouveau. J'utilise MT5 non pas pour le trading, mais comme source de données "aléatoires" (et ne me demandez même pas pourquoi - ce n'est pas mon caprice). Est-il possible d'obtenir des données historiques mesurées en ticks (j'ai besoin de données bid et ask plusieurs fois par seconde). Que dois-je faire ? Je sais que lorsqu'on teste un indicateur, MT5 émet des données - comment l'utiliser ?

J'ai pour tâche d'écrire un indicateur personnalisé qui envoie les ticks actuels à un certain service (ce n'est pas un problème). Je n'ai trouvé nulle part comment obtenir des données historiques en ticks et non en M1.

 
iZer0:

Bonjour, pouvez-vous s'il vous plaît guider le nouveau. J'utilise MT5 non pas pour le trading, mais comme source de données "aléatoires" (et ne me demandez même pas pourquoi - ce n'est pas mon caprice). Est-il possible d'obtenir des données historiques mesurées en ticks (j'ai besoin de données bid et ask plusieurs fois par seconde). Que dois-je faire ? Je sais que lorsqu'on teste un indicateur, MT5 émet des données - comment l'utiliser ?

J'ai pour tâche d'écrire un indicateur personnalisé qui envoie les ticks actuels à un certain service (pas de problème). Je n'ai trouvé nulle part comment obtenir des données historiques en ticks et non en M1.

CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,ticks);
.
 
pako:
Merci pour le conseil. Mais la description dit qu'il faut obtenir les ticks pour la session de travail du terminal. Comment obtenir des données historiques réelles (en supposant, bien sûr, que le fournisseur les fournisse avec le bon niveau de détail). Veuillez me dire si ces données sont téléchargées par le terminal lui-même ? (pour le lui prendre essentiellement). Qu'est-ce qui détermine la profondeur des données historiques ?
 
iZer0:
Vous n'obtiendrez les cours acheteur et vendeur (pour l'instant) que si vous les collectez vous-même (en les écrivant dans un fichier). CoruTiscs ne renvoie que 2000 ticks.
 

Pourquoi, lors de la compilation de l'indicateur, tous les paramètres de cet indicateur qui sont sur les graphiques sont remis par défaut ?