Questions sur l'assistant MQL5 et la bibliothèque standard de classes de trading - page 9

 
-Alexey-:

Quel est donc son objectif pratique, plutôt que son objectif de test ? Il semble être là, mais vous ne pouvez pas l'utiliser. Et pourquoi toutes les questions sur ce sujet, par exemple la suggestion d'introduire un tel traitement ou d'écrire un article par les développeurs ou un guide sur la gestion des erreurs, se heurtent toujours au silence des développeurs ? Après tout, ils sont les plus compétents en la matière - quel est le problème ? Il semble pour le moins étrange qu'au lieu de quelque chose de vraiment utile, nous travaillions sur un tas d'indicateurs dont personne n'a besoin (0 commentaire, 0 demande pour eux), alors qu'il n'y a aucune base pour le trading - la possibilité d'ouvrir et de fermer des transactions. La question de l'émulateur d'auto-trading est restée sans réponse, mais il doit être dans la bibliothèque standard. J'aimerais entendre la réponse.

Ainsi, personne ne cache le fait que l'assistant de stratégie est uniquement destiné au testeur. )) Vérifiez simplement et rapidement telle ou telle idée et décidez ensuite de la direction à prendre. Et la gestion des erreurs n'est pas une tâche si difficile. Vous pouvez au moins regarder comment les autres le font. Par exemple, la bibliothèque de fonctions de KimIV sur le quatrième forum. Je pense que je pourrais même écrire un article sur ce sujet, mais je n'ai pas le temps maintenant.

Et les promoteurs ont maintenant, si j'ai bien compris, concentré tous leurs efforts sur le développement du projet dans son ensemble. Les services Marché, Signaux et Entrepôt sont en suspens, peut-être encore quelques bugs. Voici, à mon avis, les principales tâches à accomplir maintenant.

 
La question n'est pas de savoir si la tâche est complexe ou non, mais si elle doit être mise en œuvre dans une bibliothèque standard. Ce serait une bonne idée de définir une liste des principales tâches lors de l'écriture d'une EE et de les mettre en œuvre pour les développeurs, afin qu'il ne soit pas nécessaire de regarder comment les autres le font, ou d'attendre que quelqu'un ait le temps d'écrire un article.
 
beginner:

La question n'est pas de savoir si la tâche est complexe ou non, mais si elle doit être mise en œuvre dans une bibliothèque standard. Ce serait une bonne idée de définir une liste des principales tâches lors de l'écriture de l'EE et de les mettre en œuvre pour les développeurs, afin qu'il ne soit pas nécessaire de regarder comment les autres le font, ou d'attendre que quelqu'un ait le temps d'écrire un article.
Dans tous les cas, vous devrez très probablement attendre que l'entreprise résolve des tâches plus prioritaires. Peut-être qu'un jour, dans un avenir proche, elle sera mise en œuvre. Ici, j'ai décidé de ne pas attendre, car je n'aime vraiment pas attendre et je l'ai déjà mis en œuvre il y a longtemps. Ça n'a pas pris longtemps du tout. De plus, je l'ai fait au tout début de l'apprentissage de la langue. Vous pouvez écrire votre demande au Service Desk. Et si je le fais ? ))
 
tol64:
... Mais si je le fais ? ))

Non.

Je suis désolé, mais c'est à cela que sert la bibliothèque standard, à contenir des solutions génériques. Le traitement des erreurs de trading dépend largement des préférences du trader.

Alors, chers amis, faisons-le par nous-mêmes.

 
tol64:
Dans tous les cas, il faudra probablement attendre que l'entreprise ait plus de priorités. Peut-être sera-t-elle mise en œuvre dans un avenir proche. Ici, j'ai décidé de ne pas attendre, car je n'aime vraiment pas attendre et je l'ai déjà mis en œuvre il y a longtemps. Ça n'a pas pris longtemps du tout. De plus, je l'ai fait au tout début de l'apprentissage de la langue. Vous pouvez écrire votre demande au Service Desk. Et si je le fais ? ))
La mise en œuvre peut être effectuée par n'importe qui, de n'importe quelle manière. Êtes-vous sûr d'avoir tout fait de manière optimale, correcte et belle ? Bien sûr, il peut y avoir de nombreuses variantes, mais une seule typique des développeurs pour la personnaliser selon vos besoins ou l'utiliser telle quelle.
 
beginner:
La mise en œuvre peut être effectuée par n'importe qui et de n'importe quelle manière. Êtes-vous sûr d'avoir tout fait de manière optimale, correcte et belle ? Bien sûr, il peut y avoir de nombreuses variantes, mais une seule typique des développeurs suffit pour la personnaliser selon vos besoins ou l'utiliser telle quelle.
Pas encore testé sur le réel, mais ceux qui ont testé (membres compétents du forum) sont tout à fait satisfaits. Regardez la version terminée, elle est disponible, mais pour MT4. C'est la même chose sur MT5. Victor Kirillin a déjà répondu ci-dessus, il est donc préférable de ne pas attendre et de le faire. )) Exactement selon le modèle que vous voulez.
 

Bonjour, j'ai deux questions.

1) Dans la méthode double CExpertSignal::Direction(), pour normaliser le résultat sur tous les filtres, nous divisons la valeur totale obtenue par la valeur numérique. Supposons que nous utilisions un seul filtre, alors selon le code de la bibliothèque standard, la valeur du nombre qui =1 pendant l'initialisation sera incrémentée de +1 et deviendra 2. Le résultat obtenu avec un filtre est donc divisé par 2. Question = y a-t-il une erreur ?

double CExpertSignal::Direction()

{

CExpertSignal *filtre ;

long masque ;

double sens ;

double result=m_weight*(LongCondition()-ShortCondition()) ;

int number=1 ; // nombre de "votés".

//---

int total=m_filters.Total() ;

//--- pour le débogage

//printf(__FUNCTION__+" : %s %d",EnumToString(m_period),total) ;

//--- boucle par les filtres

for(int i=0;i<total;i++)

{

//--- masque pour les cartes binaires

mask=((long)1)<<i ;

//--- vérification du drapeau d'ignorance du signal du filtre

si((m_ignore&mask)!=0) continuer ;

filtre=m_filtres.at(i) ;

direction=filter.Direction() ;

//--- le signal "interdiction

if(direction==EMPTY_VALUE) return(EMPTY_VALUE) ;

//--- vérification du drapeau d'inversion du signal du filtre

if((m_invert&mask)!=0) result=direction ;

autre résultat+=direction ;

numéro++ ;

}

//--- normalisation

résultat/=nombre ;

//--- retourner le résultat

retour(résultat) ;

}

2) Pouvez-vous me dire ce que signifie la variable m_adjusted_point ?

Merci.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
IlshatG:

Bonjour, j'ai deux questions.


1) Il n'y a pas d'erreur fondamentale.

2) Correction pour les citations à 3/5 chiffres.

 
uncleVic:

Non.

Je suis désolé, mais c'est à cela que sert la bibliothèque standard, à contenir des solutions génériques. Le traitement des erreurs de trading dépend largement des préférences du trader.

Alors, chers amis, c'est un truc à faire soi-même.

Qu'est-ce que vos préférences ont à voir avec ça ? Qui connaît mieux que vous les capacités de la configuration du serveur ? Personne. Vous pouvez définir la réponse adéquate - la réponse typique - et le trader la modifiera en fonction de ses goûts et de ses connaissances. Les délais dans les protocoles d'échange et ainsi de suite ? Le trader fait-il du commerce ou étudie-t-il en profondeur les erreurs ? Le programmeur doit écrire des algorithmes ou étudier les erreurs ? Le programmeur devrait étudier l'API pour écrire un émulateur (pour un glitchy one) de l'auto-trading en cas de panne du serveur ou écrire les algorithmes ? Combien de temps faut-il consacrer à cela plutôt qu'au commerce ?
 

Bonjour.

J'ai décidé d'écrire mon propre module de signal à des fins purement cognitives. J'ai été confronté à un problème. J'ai compris que cela peut être fait par CExpertSignal::OpenLongParams(...). Mais j'ai un problème - mon testeur m'avertit d'une expiration invalide. Après avoir creusé le code source, je me suis rendu compte que nous ne pouvons pas obtenir de type de temps autre queORDER_TIME_SPECIFIED et que nous voudrions ORDER_TIME_GTC.

J'ai fait un geste intelligent jusqu'à présent, mais ce n'est pas tout à fait ça. J'ai corrigé la fonction dans la bibliothèque :

bool CExpertTrade::SetOrderExpiration(datetime order_expiration)
  {
   if(m_symbol==NULL) return(false);
//---

   if (order_expiration == 0)
   {
      m_order_type_time =ORDER_TIME_GTC;      
   }
   else
        if(!SetOrderTypeTime(ORDER_TIME_SPECIFIED)) return(false);
//---
   m_order_expiration=order_expiration;
//---
   return(true);
  }

Que pouvez-vous conseiller ?

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
Raison: