Souhaits pour MT5 - page 31

 

Veuillez considérer


Proposition d'ajouter à MQL5 une fonctionnalité permettant de changer à partir d'un indicateur ou d'un expert ou à partir d'un script.

Les barres Max dans la fenêtre...

Il peut être utile de rendre une limite contrôlable du programme



 
Aux développeurs. Veuillez prêter attention à ma demande18097(je comprends que cette chose est controversée, mais quand même)...


PS

De plus, si vous le pouvez, faites en sorte que les résultats d'optimisation et le graphique d'optimisation soient supprimés, au cas où les tests se déroulent en mode normal.

Ou est-ce que c'est un tel truc de pouvoir le regarder à tout moment ?

 
Interesting:


PS

De plus, si vous le pouvez, faites en sorte que les résultats d'optimisation et le graphique d'optimisation soient supprimés, au cas où les tests se déroulent en mode normal.

Ou est-ce juste une astuce pour pouvoir le voir à tout moment ?

Je m'oppose à une telle suggestion. Après l'optimisation, pour analyser les résultats, je dois vérifier plusieurs passes séparément en mode normal (en cliquant sur la passe correspondante). Si les résultats de l'optimisation disparaissent après le premier essai en mode normal, une occasion précieuse de travailler avec les résultats sera perdue.

 
Yedelkin:

Je m'oppose à cette suggestion. Après l'optimisation, je dois tester plusieurs passes individuellement en mode normal pour analyser les résultats (obtenus en cliquant sur la passe correspondante). Si les résultats de l'optimisation disparaissent après le premier essai en mode normal, une occasion précieuse de travailler avec les résultats sera perdue.

Je n'insiste pas, c'est ce que dit la ligne - > Ou est-ce un tel tour de force de pouvoir voir à tout moment ?

 

1)Vous devez ajouter des événements normaux, pas ce que vous avez mis en place.

La première chose qui m'est venue à l'esprit

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected...

les changements de statut des demandes, etc.

2) faire une documentation de type humain, comme ici : http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "Apporter l'API aux masses" -)

ps Il semble que les développeurs créent des logiciels pour les débutants ou qu'ils soient eux-mêmes...

System.Data Namespace ()
System.Data Namespace ()
  • msdn.microsoft.com
The namespace provides access to classes that represent the ADO.NET architecture. ADO.NET lets you build components that efficiently manage data from multiple data sources. In a disconnected scenario such as the Internet, ADO.NET provides the tools to request, update, and reconcile data in multiple tier systems. The ADO.NET architecture is...
 
anubis:

1)Vous devez ajouter des événements normaux, pas ce que vous avez mis en place.

La première chose qui m'est venue à l'esprit

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected...

les changements de statut des demandes, etc.

2) faire une documentation de type humain, comme ici : http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "Apporter l'API aux masses" -)

ps ps Il semble que les développeurs créent des logiciels pour les novices ou qu'ils soient eux-mêmes des novices.

Il existe des événements destinés aux utilisateurs. Vous pouvez en mettre en œuvre un certain nombre par vous-même.

Cela fait longtemps que je capte les événements OnConnected et OnDisconnected via un timer. Si vous le souhaitez, vous pouvez également créer des événements OnBar et OnBarClose ou tout autre événement.

Ensuite, vous pouvez facilement les attraper dans OnChartEvent avec l'aide d'un tel bloc (il y a tout cela dans l'aide, pourquoi réinventer la roue ?).

  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  }

PS

Et au niveau de la classe, vous pouvez gérer n'importe quel (enfin, presque n'importe quel) événement...

 
Interesting:

Il existe des événements destinés aux utilisateurs. Vous pouvez en mettre en œuvre un certain nombre vous-même.

Cela fait longtemps que j'attrape OnConnected et OnDisconnected avec un timer. Si vous le souhaitez, vous pouvez également créer des événements OnBar et OnBarClose ou tout autre événement.

Ensuite, il suffit de les attraper dans OnChartEvent à l'aide de ce bloc (tout est dans l'aide, pourquoi réinventer la roue ?).

PS

Et au niveau de la classe, vous pouvez gérer n'importe quel (enfin, presque n'importe quel) événement...

Il sera intéressant de voir comment vous l'implémentez (OnConnected ?).

 

dentraf:

Il est intéressant de voir comment vous mettez cela en œuvre (OnConnected ?).

Oui, s'il vous plaît :)

Voici un exemple de traitement de ces événements dans Expert Advisor avec la classe CMqlManagerConnect (module joint au post).

1. Copiez le module dans le dossier \MQL5\Include\ (de préférence dans un sous-répertoire)

J'ai tout ici - MQL5\Include\Units\Objects.

2. Dans le conseiller expert, ajoutez un lien vers ce fichier.

////////////////////////////////////////////////////////////////////////////////
//              Object classes, used in working the trade system              //
////////////////////////////////////////////////////////////////////////////////
#include <\Units\Objects\UManagerConnect.mqh> //Class - CMqlManagerConnect

3. Créer une variable de type CMqlManagerConnect.

////////////////////////////////////////////////////////////////////////////////
//             Global variables, used in working the trade system             //
////////////////////////////////////////////////////////////////////////////////
//****************************************************************************//
//               Objects created on the grounds of the classes                //
//****************************************************************************//
CMqlManagerConnect ManagerConnect; //Менеджер контролирующий состояние коннекта

4. Dans le minuteur, cela se passe comme suit

void OnTimer()
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//
//****************************************************************************//
//                  Контроль состояния соединения с сервером                  // 
//****************************************************************************//
ManagerConnect.OnEventTimer();
//----------------------------------------------------------------------------//
}

5 Vous devez écrire le texte suivant dans OnChartEvent

void OnChartEvent(const int id,         // идентификатор события  
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam  // параметр события типа string
                  )
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//

//****************************************************************************//
//                          Processing user events                            //
//****************************************************************************//
  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  //Выводим текстовое сообщение о событии в комментарий
  Comment("User Event ",sparam);

    if(id==CHARTEVENT_CUSTOM+1)
    //Соединеие с сервером востановлено
    {
    //тут обрабатываем все что нам нужно
    }

    if(id==CHARTEVENT_CUSTOM+2)
    //Соединеие с сервером потеряно
    {
    //тут обрабатываем все что нам нужно
    }

  }
//----------------------------------------------------------------------------//  
}

PS

Vous pouvez, bien sûr, ne pas passer les événements à OnChartEvent, mais les traiter directement dans la classe (soit dans la base, soit dans les descendants). Mais même avec cette approche, je recommande de laisser la référence à OnChartEvent, parce que vous pouvez avoir besoin d'informer les autres graphiques des événements... :)

Dossiers :
 
Interesting:

Oui, s'il vous plaît :)

Voici un exemple de la façon dont ces événements sont traités dans l'Expert Advisor à l'aide de la classe CMqlManagerConnect (le module est joint à l'article).

1. Copiez le module dans le dossier \MQL5\Include\ (de préférence dans un sous-répertoire)

J'ai tout ici - MQL5\Include\Units\Objects.

2. Dans le conseiller expert, ajoutez un lien vers ce fichier.

3. Créer une variable de type CMqlManagerConnect.

4. Dans le minuteur, cela se passe comme suit

5 Vous devez écrire le texte suivant dans OnChartEvent

PS

Vous pouvez, bien sûr, ne pas passer les événements à OnChartEvent, mais les traiter directement dans la classe (soit dans la classe de base, soit dans les descendants). Mais même avec cette approche, je recommande de laisser la référence à OnChartEvent, parce que vous pouvez avoir besoin d'informer les autres graphiques des événements... :)

Avez-vous écrit vous-même la classe CMqlManagerConnect ? Avez-vous une solution pour récupérer le serveur lorsque vous perdez la connexion au serveur ?
 
dentraf:
Avez-vous écrit vous-même la classe CMqlManagerConnect ? Avez-vous une solution pour l'énumération des serveurs lorsque vous perdez la connexion au serveur ?
Bien sûr, je l'ai écrit moi-même (par exemple), mais j'ai une autre façon de résoudre ce problème. Il n'existe pas de solution de force brute (du moins pour l'instant), mais nous devrons également nous pencher sur ce problème (des personnes ont déjà contacté les développeurs à ce sujet)...