Erreurs, bugs, questions - page 2184

 
Vitaly Muzichenko

Comment passer un tableau dans mt5 ?

En C++, cela ressemblerait à quelque chose comme ceci

template<typename T, int n>
void Array(T arr[][n]) {}
 

Erreur pendant l'exécution

struct A {
        A() : i( 1 ) {}
        int i;
};
struct B : A {};
void OnStart()
{
        B b;
        Print( b.i );
}

Résultat : 0

Attendu : 1

 
A100:

En C++, cela ressemblerait à quelque chose comme ceci :

Mais dans mql5 comment ?

 
Vitaly Muzichenko:

Et dans mql5 ?

Il n'y a pas de tel mécanisme

 

Incompris .

struct String {};
String f1() { String s; return s; }
string f2() { string s; return s; }
void   g1( String& ) {}
void   g2( string& ) {}
void OnStart()
{
        g1(f1()); //нормально
        g2(f2()); //Error: 'f2' - parameter passed as reference, variable expected
}

Dans le premier cas, tout va bien, dans le second, il y a une erreur de compilation. Quelle est la différence ?

 

Les mots-clés ne fonctionnent pas correctement dans le préprocesseur

//#define struct class 
struct A {
#ifdef struct
public:
        void f( A* ) {} //Error ???
#else
        void f( A& ) {}
#endif
};
//#define string String 
void OnStart()
{
#ifdef string
        Print( 1 );
#else
        Print( 2 );
#endif
}

Résultat : 1

Attendu : 2

 
Vladimir Karputov:

Cette erreur est connue et est en cours de correction. J'attends moi-même.

La réparation prend beaucoup de temps https://www.mql5.com/ru/forum/216476/page7#comment_5834235

C'était là.

#include <Controls\WndContainer.mqh>
class Rect {};

Ici

#include <Trade/Trade.mqh>
class Entry {};
et la demande elle-même #1660355 date en fait de plus d'un an déjà https://www.mql5.com/ru/forum/1111/page1797#comment_4042334
Предложение для удобства использования MetaEditor
Предложение для удобства использования MetaEditor
  • 2017.09.29
  • www.mql5.com
Здравствуйте. Хотел бы предложить разработчикам сделать в MetaEditor стандартизировать отступы при написание кода, как это сделано в VisualStudio...
 

Je suggère que OnTesterInit permette de spécifier le symbole principal du test

enum ENUM_TESTER_INFO_STRING
{
  TESTER_SYMBOL;
};

string TesterInfoString( const ENUM_TESTER_INFO_STRING property_id );
bool TesterSetString( const ENUM_TESTER_INFO_STRING property_id, const string property_value );

void OnTesterInit()
{
  TesterSetString(TESTER_SYMBOL, "EURUSD");
}
 

Все символы, выбранные в окне "Обзор рынка"

Contrairement aux deux précédents, ce mode d'optimisation vous permet de tester l'EA avec les mêmesparamètres d'entrée, mais sur des symboles différents. À chaque passage d'optimisation, seulle symbole principal dutest de l'EA est modifié, en d'autres termes, le symbole graphique auquel l'EA serait attaché.

L'optimisation est effectuée uniquement sur les symboles qui sont actuellement sélectionnés dans la fenêtre"Market Watch". De cette façon, vous pouvez gérer l'optimisation en ajustant l'ensemble des symboles sélectionnés.

  • Veuillez noter que le téléchargement des données de prix requises depuis le serveur peut prendre beaucoup de temps. Cependant, le ralentissement du processus d'optimisation dû au téléchargement des données ne se produit que lorsqu'il est lancé pour la première fois sur un symbole, par la suite seules les données manquantes sont téléchargées.
  • Les valeurs actuellesdes paramètres d'entrée spécifiés dans la colonne "Valeur" sont utilisées pendant l'optimisation du symbole.


Il manque beaucoup le mode Optimisation, lorsqu'il y a une énumération séquentielle de symboles de Market Watch et que dans chacun d'eux il y a une Optimisation des paramètres d'entrée.

Ce mode est très utile pour rechercher le symbole approprié pour TS. Et c'est particulièrement pertinent lorsque des symboles personnalisés existent - vous créez différents symboles personnalisés et examinez leurs propriétés dans l'Optimiseur.

Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

Question sur MT4.

J'ai rencontré ce problème une fois auparavant et je suis tombé sur ce bogue à nouveau lors d'un test HFT.

Je fixe une limite d'achat, le prix la casse et reste à la baisse pendant plusieurs minutes. Au même moment, BuyLimit est allumé en jaune mais "non exécuté".


Les tentatives pour le modifier échouent

2018.04.09 19:15:41.242 '89015117': modification of invalid order #108362456

Quand je l'ai vu, je me suis souvenu de cette situation d'il y a longtemps. La recette, à l'époque et aujourd'hui, est toujours la même : se reconnecter. Après le contact, il s'avère que BuyLimit est depuis longtemps (depuis le moment du croisement) une position d'achat.

Au même moment, avant la reconnexion, nous pouvions négocier d'autres ordres et tout allait bien avec eux, seule la BuyLimit était en suspens.


Il s'avère qu'il n'y a pas de notification dans le terminal MT4 que BuyLimit est devenu une position d'achat. Et, par conséquent, c'est une déception jusqu'à ce que vous vous reconnectiez.

Je dois me rappeler comment j'ai résolu cette situation. Mais je suis sûr à 99% qu'en cas d'erreurs ou de bizarreries, j'étais simplement obligé de me reconnecter via WinAPI.


Est-il utile d'écrire à SD à ce sujet, puisqu'il s'agit de MT4 après tout ? Je n'ai rien remarqué de tel dans MT5.