Test des "CopyTicks". - page 45

 

Trouvé une perte des drapeaux TICK_FLAG_BUY, TICK_FLAG_SELL dans la structure MQLTick lors de la copie des ticks d'un symbole personnalisé avec la fonction CopyTicks(...).

Le symbole RTS-6.20 a exporté les ticks de cette année vers un fichier CSV. Créer le symbole MyRTS-6.20 en le copiant depuis RTS-6.20. Chargé à lui des ticks depuis un fichier CSV. Il semble qu'il s'agisse d'un doublon. Tout est bon avec sa carte.

Mais CopyTicks(...).




Script fxsaber utilisé

Dossiers :
 
Sealdo Сергей:

Trouvé une perte des drapeaux TICK_FLAG_BUY, TICK_FLAG_SELL dans la structure MQLTick lors de la copie des ticks d'un symbole personnalisé avec la fonction CopyTicks(...).

Le symbole RTS-6.20 a exporté les ticks de cette année vers un fichier CSV. Créer le symbole MyRTS-6.20 en le copiant depuis RTS-6.20. Chargé à lui des ticks depuis un fichier CSV. Il semble qu'il s'agisse d'un doublon. Tout va bien avec sa carte.

Corrigé dans la bêta 2414.

Maintenant exporté en CSV et importé avec une colonne de drapeau.

 

J'ai une autre question stupide : est-ce que MT détermine le sens de la transaction (en écrivant BUY/SELL dans MqlTick.flags) en analysant les données du tick lui-même, ou bien il obtientle sens de la transaction à partir de la source de données ?

 
Sealdo Сергей:

J'ai une autre question bête : est-ce que MT détermine le sens des transactions (écriture BUY/SELL dans MqlTick.flags) en analysant les données de tick lui-même, ou bien il obtient le sens des transactions à partir de la source de données ?

De la source.

Tout dépend de l'alimentation en données, qui peut définir elle-même des indicateurs.

 
MetaQuotes:

De la source.

Tout dépend de l'alimentation en données, qui peut aussi se signaler elle-même.

Afin de ne pas dépendre de la source, il est préférable d'organiser une logique locale pour le marquage.

(Last == Ask ? TICK_FLAG_BUY : TICK_FLAG_SELL);

De cette façon, n'importe quel flux de données sera comestible, qu'il ait une direction de transaction ou non.
Cela résoudra le problème du testeur de stratégie pour l'exécution des échanges.
Cela signifie qu'il sera possible d'étendre la structure de l'historique des tics pour les instruments d'échange.
En étendant la structure de l'historique des ticks, il sera possible d'organiser l'exécution des échanges dans le testeur de stratégie.
Nous avons besoin d'un vrai testeur d'échange !

 

Avec ce genre de logique de programme, je pense qu'il y aura pas mal de bogues >>>.


 
Sealdo Сергей:

Avec ce genre de logique de programme, je pense qu'il y aura pas mal de bogues >>>.

Quel genre d'erreurs ?
Je pense que cela résoudra le problème du rendu des transactions erronées, comme sur votre capture d'écran, qui ne correspondent pas du tout aux offres et aux soumissions.
Au fait, j'ai constaté le même problème dans TcLab, il me semble que cela est dû au fait qu'il s'agit de canaux de données différents.
Les échanges vont dans leur prise, l'offreur/l'enchère dans une autre prise. Les transactions doivent se faire sur les lignes d'offre et de demande et rien d'autre.
Juste une comparaison locale

(Last == Ask ? TICK_FLAG_BUY : TICK_FLAG_SELL)

permettra de synchroniser les deux canaux de données, les transactions passées et l'offre/la demande, et peut-être d'éliminer le défaut que vous avez mentionné.

Il y a aussi l'état indéfini des transactions de comptoir N/A.
Pour ces derniers, nous devons également tenir compte de l'état des drapeaux.

Je l'ai vérifié sur un instrument CME.
Juste des contre-opérations S/O ne sont pas tirées par offre/offre.
Mais ils sont dessinés à l'intérieur de l'écart (cercle vert), ce qui est correct.
Le reste des échanges se fait strictement sur l'offre/la demande.
Vous avez un instrument de Mos. Exchange, peut-être que ce sont les opérations de contrepartie qui ne tombent pas dans le spread, mais pourquoi elles sont en dehors du spread, ce qui n'est pas correct.
Il ne s'agit donc pas de contre-opérations mais d'opérations dirigées qui ont une direction.
Et d'après ce que j'ai compris d'autres discussions, le terminal MT5 n'affiche pas les contre-ordres sur Mos. Échange.
C'est peut-être le problème du dessin incorrect des transactions passées.


 
Bonjour à tous ! !! Pouvez-vous me dire s'il est possible de charger l'historique des cotations dans mt5 ? Cela fait deux jours que je cherche des informations, mais je ne les trouve pas.
 
Igorz2006:
Bonjour à tous ! Pouvez-vous me dire s'il est possible de charger un historique de cotations dans mt5 ? Je le cherche depuis deux jours, mais je ne le trouve pas.

Réception des tics :

CopyTicks

Récupère les ticks dans un tableau au format MqlTick.

CopyTicksRange

Récupère les ticks d'un tableau dans la plage de dates spécifiée.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
  • www.mql5.com
[in]  Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000. Первый вызов CopyTicks() инициирует синхронизацию базы тиков, хранящихся на жёстком диске по данному символу. Если тиков в локальной базе не хватает, то недостающие тики...
 
Merci, je vais m'en occuper.