Erreurs, bugs, questions - page 131

 
Dmitriy2:

le code est inséré, le fichier n'est pas joint


Des corrections ont été apportées.

Veuillez réessayer.

 
alexvd:

Ça se bloque à cause de la boucle infinie.

Vous avez le seul moyen de sortir de la boucle - par la rupture. Mais la rupture que vous avez se produit lorsqu'une certaine condition est remplie. L'un des composants

Vous obtenez le handle de l'indicateur dans la fonction à chaque fois et le copiez sans vérifier si les données sont prêtes.

Suggestion.

1. Transférer la variable de la poignée au niveau global.

2. Recevez le handle de l'indicateur à OnInit (vous ne modifiez pas les paramètres du parabolique de toute façon).

3. Avant de copier les données du tampon de l'indicateur, vérifiez leur disponibilité (calculabilité) - la fonction BarsCalculated (Parabolic) vous aidera.

4) Organiser la sortie du cycle, si vous ne faites pas le point 3, il faudra appeler la fonction BarsCalculated(Parabolic). 3 n'est pas rempli.

2. il ne change pas dans l'exemple de test, en fait cette fonction est utilisée tout le temps avec des paramètres différents, c'est pourquoi j'obtiens le handle pas dans OnInit

3. je vais le vérifier, mais je ne comprends pas vraiment à quoi il me sert, la condition est telle qu'il ne peut pas échouer, une série de points paraboliques est la barre la plus proche, ils devraient certainement être téléchargés (et en général, je comprends que l'historique est téléchargé au testeur un an avant la date de début spécifiée du test). Cela fonctionne vraiment bien. Cela fonctionne dans MQL4 à la fois en réel et dans le testeur (bien qu'il y ait une fonction parabolique intégrée, et non une fonction séparée).

 
alexvd:

Des corrections ont été apportées.

Essayez encore.

Oui, ça a marché, merci.
 
Dmitriy2:

2. il ne change pas dans l'exemple de test, et en fait cette fonction est utilisée tout le temps avec des paramètres différents, donc j'obtiens le handle pas dans OnInit

3. ok, je vais faire une vérification, je ne comprends pas vraiment le point, la condition est telle qu'elle ne peut pas échouer, une série de points paraboliques est les barres les plus proches, ils devraient certainement être téléchargés (et en général, je comprends que l'historique est téléchargé au testeur un an avant la date de début du test spécifié). Cela fonctionne vraiment bien. Cela fonctionne dans MQL4 à la fois en réel et dans le testeur (bien qu'il n'y ait pas de fonction parabolique séparée, mais elle est intégrée...).

3. Il a déjà été discuté et décrit dans la référence(https://www.mql5.com/ru/docs/series/barscalculated), pourquoi il est nécessaire.

Note

Cette fonction est utile lorsque vous souhaitez obtenir les données d'un indicateur juste après sa création (pour obtenir un handle d'indicateur).

C'est votre affaire.

L'indicateur est calculé sur la base des données de la barre. Les barres sont là, mais les données calculées peuvent être absentes.

Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
  • www.mql5.com
Доступ к таймсериям и индикаторам / BarsCalculated - Документация по MQL5
 
Rosh:
Cela signifie que cette position est le résultat de plusieurs transactions sur cet instrument. En conséquence, vous voyez le prix moyen pondéré de la position.
Je pensais quele prix moyen pondéré ne concernait que les indicateurs techniques... je pense que je n'arrive pas toujours à le mettre à 0 dans le testeur pendant les tests... parfois quelques centimes dépassent encore.
 
alexvd:

3. La raison pour laquelle il est nécessaire a déjà été discutée à plusieurs reprises et est décrite dans l'aide(https://www.mql5.com/ru/docs/series/barscalculated).

C'est votre affaire.

L'indicateur est calculé sur des données en barres. Les barres sont là, mais les données calculées peuvent ne pas l'être.

Oui, je l'ai avec BarsCalculated, merci.

Mais de toute façon, il est logiquement faux que cela fonctionne et ne fonctionne pas dans le testeur. Vous devez avoir toutes les vérifications déjà construites dans le testeur, et si la demande va à certaines données et qu'elles ne sont pas là, alors l'erreur apparaîtra. Mais le testeur a des barres, mais pour une raison quelconque, il ne peut pas calculer les données et reste silencieux....

 
maryan.dirtyn:
Je pensais quele prix moyen pondéré n'était qu'un indicateur technique... Je n'obtiens pas toujours 0 lorsque j'exécute dans le testeur de stratégie... Il arrive que quelques centimes se produisent.

Moyenne pondérée par le volume. Par exemple, il y a eu trois transactions sur l'EURUSD :

Offre spéciale
Volume
Prix
Acheter EURUSD
0,1 lot
1.2800
Acheter EURUSD0,2 lots
1.3400
Acheter EURUSD0,3 lots
1.2000
Total : Position longue sur EURUSD
0,6 lot
?


En conséquence, nous avons une position sur EURUSD avec un volume de 0,6 lots, mais à quel prix ?

 
Rosh:

Moyenne pondérée par le volume. Par exemple, il y a eu trois transactions sur l'EURUSD :

Offre spéciale
Volume
Prix
Acheter EURUSD
0,1 lot
1.2800
Acheter EURUSD0,2 lots
1.3400
Acheter EURUSD0,3 lots
1.2000
Total : Position longue sur EURUSD
0,6 lot
?


Nous nous retrouvons avec une position EURUSD de 0,6 lot, mais à quel prix ?

Ne serait-il pas plus simple d'arrondir le prix au niveau de précision de la monnaie au niveau du serveur ? Après tout, le conseiller expert devra s'occuper de l'ajustement de la précision et du prix par point...
 
Interesting:
Ne serait-il pas plus simple d'arrondir le prix au niveau de précision de la monnaie au niveau du serveur ? Après tout, tout EA devrait souffrir de l'ajustement de la précision et du prix par point...
Pourquoi l'EA s'en soucierait-il ? Ce prix moyen pondéré sera nécessaire pour calculer la clôture des positions. Le conseiller expert n'en aura pas besoin. La position devra être fermée à un prix normal avec le nombre de chiffres nécessaires pour ce symbole.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Rosh:
Pourquoi le conseiller expert devrait-il souffrir ? Ce prix moyen pondéré est nécessaire pour calculer la clôture des positions. Il n'est d'aucune utilité pour le conseiller expert. Il devra clôturer la position à un prix normal avec le nombre de caractères nécessaires pour ce symbole.

Dans certains cas, vous devez avoir une valeur de prix normalisée, indépendamment de la façon dont le prix est reçu.

Il est plus facile de faire une normalisation côté serveur tant que le serveur recalcule le prix d'ouverture de toute façon (du moins à mon avis).


Au fait, puisque nous parlons de prix moyen pondéré et de plateforme de compensation.

D'après ce que je comprends, il existe deux modèles d'ajustement (fermeture partielle) d'une position perdante qui a été fermée précédemment :

1. Ne réparez pas la perte sur la fermeture partielle, mais recalculez simplement le prix d'ouverture (si je ne me trompe pas, c'est ce que fait FC) ;

2. laisser le prix d'ouverture inchangé, en fixant la perte.

Il en va de même pour le renversement des positions perdantes


Je veux connaître l'opinion des développeurs sur la méthode qui sera éventuellement standardisée dans MT5, si possible pourquoi...

Raison: