Erreurs, bugs, questions - page 3116

 

Deux transactions longues sur la démo MQ sur le symbole BTCUSD: 1ère avec 1.01 lot, 2ème avec 11.01 lot. Effet de levier : 1:500. Après avoir ouvert le premier, le niveau de marge était tout à fait adéquat (je ne me souviens pas et n'ai pas eu le temps de l'écrire, mais quelque part autour de 100000) ; après avoir ouvert le deuxième :

Marge BTCUSD

c'est-à-dire qu'elle a augmenté d'un ordre de grandeur, alors que, selon ma compréhension, elle aurait dû diminuer d'un facteur dix. Je ne peux pas en être sûr, mais je pense que c'est la même chose dans MT4 sur les crypto.

Est-ce un crypto-bug ou est-ce conçu de cette façon ?

 

x572intraday #:

Cryptobug ou est-il conçu de cette façon ?

une caution de 0,01 $ pour 12 bits ? bien sûr que c'est un bug
 

Bonjour !

Lechar est un type signé de -128 à 127, pourquoi change-t-il son type de char à int lorsqu'un "-" est substitué ?

Est-ce quelque chose que je ne comprends pas et la conversion tia apparaît pour une raison ? Ou est-ce un bug ? (fichier joint warning.png)

void OnStart() {
  char positive = 1;
  char negative = -positive;
}


Aucune conversion de ce type vers un ancien format n'est observée pour int. Et je n'arrive pas encore à comprendre la conversion de type lors du changement de signe...

void OnStart() {
  int positive = 1;
  int negative = -positive;
}
Dossiers :
warning.png  29 kb
int.png  22 kb
truncation.png  25 kb
 
NastyaMaley #:

Zéro tic, comment c'est possible ? Une erreur dans le testeur ?

Nous écrivons un code simple pour le testeur.

La sortie est :

....

Logiquement, si le dernier tick est nul, il ne devrait rien générer. Mais il produit un tick zéro, ce qui entraîne un échec dans les calculs de l'EA, par exemple, lors du calcul de la moyenne. (13000 + 0 + 13000) / 3 = 8667, alors que ce devrait être (13000 + 13000) / 2 = 13000. A cause du zéro tick nous avons obtenu 8667 au lieu de 13000 ! !!

avez-vous vérifié ce que SymbolInfoTick renvoie ? si faux, vérifiez LastError

 
Aleksey Mavrin #:

Avez-vous vérifié ce que retourne SymbolInfoTick ? Si c'est faux, vérifiez LastError.


Retourne vrai partout

2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:00 2021.11.08 00:00
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:00 true
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:03 2021.11.08 00:00:03
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:03 true
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:04 2021.11.08 00:00:04
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:04 vrai

... et ainsi de suite

Bien sûr, nous pourrions ajouter une condition, si trade.last == 0, alors nous ignorons le calcul de la moyenne. Mais j'aimerais quand même trouver la cause de ce zéro. Le dernier historique des ticks est clair et il n'y a pas de ticks == 0.
 
NastyaMaley #:


Retourne vrai partout

2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:00 2021.11.08 00:00:00
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:00 true
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:03 2021.11.08 00:00:03
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:03 true
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:04 2021.11.08 00:00:04
2021.12.16 00:21:02.461 Core 1 2021.11.08 00:00:04 vrai

... etc.

Bien sûr, nous pouvons ajouter une condition, si trade.last == 0, alors nous ignorons le calcul de la moyenne. Mais j'aimerais quand même trouver la cause de ce zéro. Le dernier historique des ticks est clair et il n'y a pas de ticks == 0.

Je n'utilise pas trade.last et ne le vérifie pas, mais j'utilise trade.ask et trade.bid, et je dois les vérifier à 0 sinon je risque de me faire mal.

 
NastyaMaley #:

En même temps, il n'y a pas de ticks zéro dans l'historique des tics. Voici un morceau d'histoire pour zéro seconde 2021.12.09 00:00:0 Il s'agit du contrat en euro CME EU6Z21

"<DATE> <HEURE> <OFFRE> <SOUMISSION> <DEMANDE<DERNIER> <VOLUME> <FLAGS>"
"2021.12.09 00:00:00.034 1.13445 2"
"2021.12.09 00:00:01.607 1.13445 1.00000000 88"
"2021.12.09 00:00:01.607 1.13445 1.00000000 88"
"2021.12.09 00:00:01.608 1.13445 1.13450 6"
"2021.12.09 00:00:01.660 1.13440 2"

ici, vous avez zéro nageoire partout.

le fait qu'il y ait plusieurs ticks de ce type par jour à 00:00 peut être dû à des ticks non négociables au moment de la cotation/session non négociable.

quel type de courtier ?

 
Maksim Astafev #:

Bonjour !

Lechar est un type signé de -128 à 127, pourquoi change-t-il son type de char en int lorsqu'un "-" est substitué ?

Est-ce quelque chose que je ne comprends pas, et la conversion de tia apparaît pour une raison ? Ou est-ce un bug ? (fichier joint warning.png)


Aucune conversion de ce type vers un ancien format n'est observée pour int. Et je n'arrive pas encore à comprendre la conversion de type lors du changement de signe...

Quel est le problème ?

Lisez la documentation.

Les types de données char, uchar, short et ushort sont inconditionnellement convertis en int dans les opérations.

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Приведение типов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slava #:

Quel est le problème ?

Lisez la documentation.

Il devrait être en gros caractères et en rouge) Je viens juste de le remarquer aussi.

 
Valeriy Yastremskiy #:

Vous devriez utiliser une police plus grande et la surligner en rouge), et je viens seulement de le remarquer.

Et les autres sont différents... Je devrai alors réécrire toute la documentation en caractères gras et rouges.