Erreurs, bugs, questions - page 1330

 
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 mais pas en M1.

Dans le testeur, vous pouvez obtenir des ticks M1 intra-bar. Ils sont simulés par le terminal. A quel point est-ce aléatoire ? Je ne sais pas. Je parle de MT4. Il devrait en être de même sur MT5.
OnTick()
{Print("Bid=",Bid);}

Dans l'onglet "Journal" du testeur de stratégie, voyez la valeur du prix et l'heure d'arrivée.

Dossiers :
2107.PNG  7 kb
 

MT4/845, Windows 7/64bit. J'ai fait un script :

#property strict
double value=1/2;
//---
void OnStart()
  {
   Print("value = ",DoubleToString(value));
  }

C'est imprimé dans les journaux :

2015.07.22 10:13:26.134 Test EURUSD,H1 : valeur = 0.00000000

et il devrait être de 0,50000000.

 
Vous devriez écrire 1.0/2 ou 1/2.0 ou 1.0/2.0 et ce sera comme prévu.
 
Аноним:
Vous devriez écrire 1.0/2 ou 1/2.0 ou 1.0/2.0 et cela correspondra à ce qui est attendu.
Oui, votre conseil m'a aidé. Bien qu'il semblerait que même sans .0, cela devrait fonctionner.
 

Pourquoi methaquotes a-t-il désactivé la fonction de téléchargement des devis à partir du serveur du concessionnaire ? Maintenant, il est seulement possible de télécharger à partir de méta-citations.

Mais même cela ne peut être fait, car le message indique qu'il n'y a pas de citations.

Bien sûr, il est absent, car pourquoi les métacitations ont-elles des suffixes ?

Par exemple, les suffixes dans les noms de paires de devises sont utilisés par fortfs, roboforex, eksness, etc.

 
Maxim Khrolenko:
Oui, votre conseil m'a aidé. Bien que cela aurait semblé fonctionner sans .0.
Conversion implicite de double en int.
 

Résultat différent : c'est un résultat discutable

#import "Test.ex5"
        void f( uint, uint );
#import
        void f( uint, int  )   { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,int) - что само по себе сомнительно
}
et c'est normal
        void f( uint, uint )    { Print( __FUNCSIG__ ); }
        void f( uint, int  )    { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,uint) - нормально
  
}
quelle différence cela fait-il ?
 
A100:
mais sinon c'est bien, quelle différence cela fait-il ?
Si je comprends bien, le compilateur devrait planter et ne pas compiler du tout. Parce qu'il y a uint uint, il y a uint int, et int, uint sont passés à la fonction, l'incertitude, cependant.
 
Аноним:
Si je comprends bien, le compilateur devrait planter et ne pas compiler du tout. Parce qu'il y a uint uint, il y a uint int, et int, uint est passé dans la fonction, incertitude, cependant.

https://www.mql5.com/ru/docs/basis/function/functionoverload

Citation : "La fonction trouvée doit être le meilleur choix parmi les autres choix pour au moins un argument, et, en même temps, pour les autres arguments, elle doit convenir aussi bien que les autres."

Quel est donc le meilleur choix pour appeler f(int,uint) ici ?

Indice : le reste de l'argument dans ce cas est le premier

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Comme ceci - il y aurait vraiment une ambiguïté

void f( uint )  { Print( __FUNCSIG__ ); }
void f( int  )  { Print( __FUNCSIG__ ); }
void OnStart()
{
        char ch = 0;
        f( ch ); // неопределенность 
}

ce qui est étrangement surmonté par le compilateur si vous réécrivez l'exemple différemment

#import "Test.ex5"
        void f( uint );
#import
        void f( int  )  { Print( __FUNCSIG__ ); }
void OnStart()
{
        char ch = 0;
        f( ch ); // вызывается f(int), а должна генерироваться неопределенность
}
Raison: