Erreurs, bugs, questions - page 578

 
Fia:

2) Existe-t-il une fonction dans MQL5 pour supprimer un élément (un élément au milieu du tableau) d'un tableau dynamique i ? Si non, quelle est la meilleure façon de le faire avec la langue ?

Il n'existe pas de fonctions prêtes à l'emploi pour cela dans le langage, mais la bibliothèque standard contient Classe d'objets de base CArrayObj
 

Bon après-midi

Veuillez me dire comment interpréter le graphique du solde et des fonds propres dans cet exemple.


Pourquoi les graphiques divergent-ils immédiatement en un point et convergent-ils à des moments différents (par le même niveau sur "y"). Il semble qu'au moment de l'ouverture du graphique du solde, on ne sache pas qu'il va augmenter.

Ou peut-être que je ne le comprends pas.

Merci.

 
papaklass:
Ok, votre position est claire. En effet, terminons sur cette note. Merci pour le temps que vous avez consacré à répondre à mes questions.

Je vais vous expliquer avec un exemple simple.

Une femme peut avoir un bébé en neuf mois. Neuf femmes ne donneront pas naissance à un seul enfant en un mois.

Ceci répond à la question sur la possibilité de traiter plusieurs ticks consécutifs en parallèle dans plusieurs threads. Le fait est que, dans la plupart des cas, le résultat du traitement d'un tick affecte fortement le résultat du traitement du tick suivant. En gros, sur 4 fils, vous pouvez obtenir 4 opérations commerciales simultanément au lieu d'une sur le premier tick.

 
olyakish:

Bonjour.

Veuillez me dire comment interpréter le tableau des soldes et des capitaux propres dans cet exemple.


Pourquoi en un point les graphiques divergent en même temps, et convergent à des moments différents (au même niveau de "y"). Il semble qu'au moment de l'ouverture du graphique du solde, on ne sache pas qu'il va augmenter.

Ou peut-être que je ne comprends pas quelque chose.

Merci.


sur la barre où la transaction a été ouverte, le prix a augmenté et la transaction est passée dans le rouge, mais n'a pas été clôturée - un drawdown s'est produit, sur les barres suivantes, il s'est "déplacé vers la droite" et peut-être sur la dernière ou l'avant-dernière barre, il est descendu plus bas que le prix de clôture et, par conséquent, les fonds propres sont devenus plus élevés que le résultat final, sur la dernière barre, la transaction a été clôturée et les fonds propres sont devenus égaux au solde.

Et vous avez eu deux transactions, l'une a fait un profit et l'autre a clôturé avec une oscillation d'équité nulle.

 
Rosh:
Il n'existe pas de fonctions prêtes à l'emploi pour cela dans le langage, mais la bibliothèque standard propose . La classe de base des objets CArrayObj
Merci pour les réponses !
 
Lazarev:

sur la barre où la transaction a été ouverte, le prix a augmenté et la transaction est passée dans le rouge, mais n'a pas été clôturée - un drawdown s'est produit, sur les barres suivantes, il s'est "déplacé vers la droite" et peut-être sur la dernière ou l'avant-dernière barre, il est descendu plus bas que le prix de clôture et c'est pourquoi l'équité est devenue supérieure au résultat final, sur la dernière barre, la transaction a été clôturée et l'équité est devenue égale au solde

Et vous aviez deux transactions, l'une était rentable et l'autre était fermée avec un capital nul qui oscillait toujours.

>Sur la même barre où la transaction a été ouverte, le prix a augmenté et la transaction a baissé mais n'a pas été clôturée - un drawdown s'est produit,

prélèvement sur l'équité mais pas sur le solde. => le solde doit être sur une seule ligne (ne pas modifier)

>Vous avez deux transactions, dont l'une s'est avérée être un profit et l'autre s'est clôturée avec une équité nulle (cependant, l'équité oscillait toujours).

En fait, il s'agit d'une seule opération consistant à vendre (ouverture d'une position de vente) et à acheter (fermeture d'une position de vente).

 
papaklass:

2. Vous devriez vous abaisser à mon niveau et m'expliquer, à moi et à d'autres personnes comme moi, sans snobisme, dans un langage que je peux comprendre. Pourquoi dans un testeur, en un seul passage, ne peut-on pas utiliser toute la puissance de l'ordinateur ? Je pense que le paramétrage des gestionnaires d'événements peut également être renvoyé au même sujet.

J'ai juste essayé de vous l'expliquer. Vous ne pouvez pas traiter des ticks consécutifs en parallèle, car le résultat du traitement d'un tick affecte le traitement du tick suivant.

Où les calculs parallèles pourraient-ils être utilisés dans un testeur ? Seulement dans le calcul des indicateurs. Pendant qu'un tick est traité, nous calculons les valeurs des indicateurs pour le(s) tick(s) suivant(s). Nous allons mourir en synchronisation et en répartition et nous n'obtiendrons aucun bénéfice. Nous avons passé (et passons encore) beaucoup de temps à améliorer les performances du système, et nous avons également envisagé cette possibilité.

Le paramétrage des gestionnaires d'événements est une question légèrement différente. Et nous n'avons pas encore abandonné les événements paramétrés.

 
Fonctions de conversion du type int standard en Exemple

doubleMathRound(
valeur double// valeur arrondie
) ;

Renvoie des erreurs doubles mais les avertissements sont très ennuyeux.

perte possible de données due à la conversion de type Tester.mqh 192 20

0 erreur(s), 22 avertissement(s) 1 23

Existe-t-il une méthode de contournement ?

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
ivandurak:

Y a-t-il une méthode pour contourner le fichier .spz ?

Donnez les types de manière explicite. Alors il n'y aura pas d'avertissement.

I.e.

int i = int(MathRound(5.5));
или
int i = (int)MathRound(5.5);
 

papaklass:

2. Vous devriez vous abaisser à mon niveau et m'expliquer, à moi et à d'autres personnes comme moi, sans snobisme, dans un langage que je peux comprendre. Pourquoi dans un testeur, en un seul passage, on ne peut pas utiliser toute la puissance de l'ordinateur ? Le paramétrage des gestionnaires d'événements, je pense, peut également être renvoyé au même sujet.

1. La paramétrisation peut être effectuée. Mais cela coûte cher aux développeurs et n'est manifestement pas une priorité.

2. Vous ne pouvez pas vraiment mettre en œuvre le threading dans cette orchestration. Non seulement cela coûtera cher en temps et en ressources, mais sous la forme d'une solution standard, cela posera beaucoup de problèmes à la plupart des utilisateurs (qui ne sont évidemment pas des programmeurs professionnels).

Il faut soit changer l'architecture de la plateforme elle-même, soit créer quelque chose de très lourd et associé à des ressources et des technologies supplémentaires.

Raison: