Apprendre et écrire ensemble en MQL5 - page 3

 
FlyAgaric   :

"Cela me semble assez simple...".

Utiliser le logiciel gratuit MS Visual Studio (ou tout autre analogue) comme environnement de développement.

Nous publierons l'"adaptateur" standard mql5.exe pour permettre la compilation à partir d'autres IDE. Cependant, le débogage ne fonctionnera que depuis le MetaEditor.

Cependant, je doute personnellement qu'il y ait un sens à travailler avec du code MQL5 provenant d'autres IDE.

Le MetaEditor sera encore amélioré et sera également directement intégré à MQL5.com et à sa base de code.

Et MQL4(MQL5) sera implémenté comme une bibliothèque utilisant l'un des langages (VB, C++ et C#). Ce dernier,

à mon avis, est le plus expressif. Vous disposez maintenant d'un environnement de développement débogué et éprouvé.

avec tous les attributs nécessaires. Et le code compilé est le plus adapté à Windows.

Si vous voulez écrire le code le plus rapide possible, vous pouvez créer vos propres DLL et les appeler depuis MQL5.

Selon les auteurs, tout fonctionnera 4 à 20 fois plus vite dans MQL5. Pas remarqué. Un indicateur simple

La moyenne mobile, avec quelques changements mineurs, est beaucoup plus lente que dans MQL4.

J'ai donné mon opinion, si elle offense quelqu'un - veuillez m'excuser.

MQL5 est en fait plusieurs fois plus rapide que MQL4, bien que l'optimisation du code soit désactivée avant la sortie.

Dès que nous approcherons de la sortie du système, nous publierons les tests de performance open source afin que chacun puisse vérifier et s'assurer.
 
Renat :


Si vous voulez écrire le code le plus rapide possible, vous pouvez créer vos propres DLL et les appeler depuis MQL5.


MQL5 est vraiment plusieurs fois plus rapide que MQL4, bien que l'optimisation du code soit désactivée avant la sortie.


Dès que nous nous rapprocherons de la sortie du système, nous publierons des tests de performance ouverts avec les sources, afin que chacun puisse vérifier et s'assurer.

Merci de votre attention. Je ne pensais pas que quelqu'un le lirait pendant son jour de congé.

Renat, c'était mes pensées à voix haute. Je serai très heureux si tout ce que vous avez en tête se passe bien.

Quant à l'utilisation de DLL, je n'ai pas pu l'obtenir dans MT4 ou MT5. Je l'ai écrit en C++ et C#.

Félicitations pour les vacances à venir et bonne chance à MetaQuotes Software Corp.

 
FlyAgaric   :

Quant à l'utilisation d'une DLL, je n'ai pas pu la trouver dans MT4 ou MT5. J'écrivais en C++ et C#.

Félicitations pour les prochaines vacances et bonne chance à MetaQuotes Software Corp.

Attachez le projet DLL rogné avec les sources dans l'archive ZIP directement au Forum - ils vous aideront certainement.

Merci pour les félicitations !

 

Bonjour, tout le monde !

Aidez-moi, les gars.

J'ai besoin de connaître l'heure de la dernière citation dans l'express. Peut-être y a-t-il un moyen simple de le faire ?

Pour l'instant, je fais ça :

      err=0;
      do
        {
         rates_total=CopyTime(NULL,PERIOD_CURRENT,0,1,iTime);
         err++;
        }
      while(rates_total<=0 && err<QUANTITY_OF_ATTEMPTS);
      if(err>=QUANTITY_OF_ATTEMPTS)
        {
         cur_time=TimeCurrent();
        }
      else
        {
         cur_time=iTime[0];
        } 

Y a-t-il un moyen plus simple ?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
vdv2001   :

Bonjour, tout le monde !

Aidez-moi, les gars.

J'ai besoin de connaître l'heure de la dernière citation dans l'express. Peut-être y a-t-il un moyen simple de le faire ?

Pour l'instant, je fais ça :

Y a-t-il un moyen plus simple ?

Voir la structure pour les prix actuels
 

Bon après-midi.

Mon Expert Advisor calculeun profil de marché sur M1, tout fonctionne bien lorsque je le place sur le graphique, mais si j'éteins le terminal et le rallume après quelques heures, une erreur se produit et l'Expert Advisor se plante.

Je soupçonne que c'est à cause de l'historique des échanges, la fonction d'initialisation s'exécute avant que les données mises à jour ne soient chargées (les principaux calculs sont effectués à l'initialisation) et par conséquent elle se plante.

J'ai une question : comment puis-je savoir à partir d'Init que les données de l'outil sont entièrement chargées ? Lorsque j'ai vérifié si le terminal est connecté au serveur, cela n'aide pas toujours, c'est-à-dire que si les données "fraîches" ne sont pas trop nombreuses, cela fonctionne bien, mais si cela fait quelques jours, cela se bloque avec une erreur ou ne calcule pas les derniers jours.

Pouvez-vous me dire comment lever le drapeau pour que toutes les données soient à jour ?

Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
  • 2010.01.26
  • Dmitry
  • www.mql5.com
Рыночный профиль был разработан Питером Стидлмайером (Peter Steidlmayer), который предложил использовать альтернативное представление информации как о горизонтальном, так и о вертикальном движении рынка, что дает полностью отличный набор моделей. Он предположил, что у рынка существует основной рыночный пульс, или фундаментальная модель, которая называется цикл равновесия и неравновесия (cycle of equilibrium and disequilibrium). В данной статье я сделаю попытку дать общие понятия об упрощенной модели Рыночного профиля (Market Profile) – Ценовой Гистограмме (Price Histogram) и расскажу, как реализовал данный инструмент на MQL5.
 
vdv2001   :

Bon après-midi.

Mon Expert Advisor calcule un profil de marché sur M1, tout fonctionne bien lorsque je le place sur le graphique, mais si j'éteins le terminal et le rallume après quelques heures, une erreur se produit et l'Expert Advisor se plante.

Je soupçonne que c'est à cause de l'historique de pagination, la fonction d'initialisation s'exécute avant que les données mises à jour ne soient chargées (les principaux calculs sont effectués à l'initialisation) et par conséquent elle se plante.

J'ai une question : comment puis-je savoir à partir d'Init que les données de l'outil sont entièrement chargées ? Lorsque j'ai vérifié si le terminal est connecté au serveur, cela n'aide pas toujours, c'est-à-dire que si les données "fraîches" ne sont pas trop nombreuses, cela fonctionne bien, mais si cela fait quelques jours, cela se bloque avec une erreur ou ne calcule pas les derniers jours.

Pouvez-vous me dire comment lever le drapeau que toutes les données sont mises à jour ?

Déplacez l'initialisation de l'historique de OnInit() à OnTick() (vous devez vérifier que le code n'est exécuté qu'une seule fois) et tous les problèmes de pagination disparaissent.

 
 
alsu   :

Déplacez l'initialisation sur l'historique de OnInit() à OnTick() (le code doit être vérifié pour n'être exécuté qu'une seule fois) et tous les problèmes de pagination disparaîtront.

Un problème a disparu, mais après le transfert des calculs vers OnTick() un autre est apparu - les marchés qui ne fonctionnent pas en ce moment ont un graphique vide et la fonction OnTick() n'est pas appelée.

 
Rosh   :
Voir aussi Organiser l'accès aux données


Merci de l'avoir résolu de cette façon :

int OnInit()
  {
//---
   while(!(bool)SeriesInfoInteger(Symbol(),0,SERIES_SYNCRONIZED))
     {
      Sleep(20);
     }
   if(ExtExpert.Init())
      return(0);
   else
      return(-1);
  }
Raison: