Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1892

 
Vitaly Muzichenko #:

Merci. Je vais travailler avec ça. Le manuel est un désordre.

 
Sergey Dymov #:

Merci. Je vais travailler avec ça. Le manuel est un désordre.

Il semble être adapté...

Tout le monde dit que mql5 est plus rapide que mql4. Alors j'ai une question. Pourquoi le même Expert Advisor a été exécuté en 164 ms sur mql4 et 527 ms sur mql5 ? Quel pourrait être le problème ?

 
Sergey Dymov #:

L'adaptation semble avoir fonctionné...

Tout le monde dit que mql5 est plus rapide que mql4. Alors j'ai une question. Pourquoi le même Expert Advisor fonctionne-t-il en 164 ms sur mql4 et 527 ms sur mql5 ? Quel pourrait être le problème ?

Avec quoi et comment avez-vous mesuré les performances ?

 
Sergey Dymov un EA multi-devises que j'ai écrit en mql4. Dans le testeur, bien sûr, cela ne fonctionne pas. J'ai décidé que je devais passer à mql5.

J'ai adapté toutes les erreurs du compilateur et les ai corrigées. SAUF pour l'utilisation d'indicateurs techniques. J'ai très peu d'idées sur ce que je dois faire avec ma tête. La documentation est incompréhensible et couvre deux pages. Peut-être que je cherche au mauvais endroit.

Une ligne de code dans mql4 comme suit

double MA1EURGBP_TF = iMA("EURGBP",15,MA1_Period,0,MODE_EMA,PRICE_OPEN,0) ;

ou

double Stoch_M_GBPUSD=iStochastic("GBPUSD", Stoch_Period, K_Period, D_Period, Slowing, MODE_EMA, 0, MODE_MAIN, 0) ;

Selon la documentation, la page entière de code change dans mql5. Handles, buffers, tableaux avec paramètres, ceci pour initier, ceci pour calculer, gestion des erreurs pendant la création du handle... C'est fou... Peut-être que je cherche au mauvais endroit.

Et si j'utilise plusieurs paires et plusieurs horizons temporels, j'obtiens "Guerre et Paix".

Dans 4ka, la partie informative devrait fonctionner avec d'autres symboles, la partie commande ne le fait pas. Mais nous devons d'abord charger les symboles requis dans l'archive des citations. Ça ne marchait pas avant. Cela fonctionnera pour la profondeur de chargement de l'archive par un symbole. Vous pouvez voir la date dans l'archive.

 

Plus de conseils, s'il vous plaît.

J'ai transféré l'EA vers mt5, tout semble fonctionner. J'ai écrit un indicateur personnalisé sur mt4 pour vérifier l'exactitude de l'exécution, je le déplace également sur mt5.

J'ai adapté l'indicateur, il semble qu'il fonctionne aussi, mais pas très bien.

1) la suppression des objets du graphique lors de la désinstallation ne fonctionne pas. Je pense qu'il n'y a pas de place pour faire une erreur.

int OnInit()

{

ObjectCreate(0, "GBP_S0",OBJ_LABEL,0,0,0) ;

return(INIT_SUCCEEDED) ;

}

void OnDeinit(const int reason) ;

{

ObjectDelete(0, "GBP_S0") ;

}

2)

Si on fait comme ça :

ExtGBPBuffer[i]=GBPTP ;

ObjectSetString(0, "GBP_S101",OBJPROP_TEXT,ExtGBPBuffer[i]) ;

Alors la valeur GBP_S101 est exactement ce que nous recherchons. Mais la ligne est nulle. Comment est-ce possible ? C'est-à-dire que la ligne est tracée et tout est parfait, la couleur, la largeur, tout sauf les valeurs.


Même si je le fais de cette façonExtGBPBuffer[i]=2 ; la ligne est toujours 0

 
Sergey Dymov #:

1) La suppression des objets du graphique lors de la désinstallation ne fonctionne pas. Il semble qu'il n'y ait aucun endroit où se tromper.

Cela fonctionne

 
for(int cycle=1; cycle<=6; cycle++) { int period = per+(CountBuy()+CountSell()); vgran = iCustom(NULL,TF,"Канал_1",period,1,0);      }
Un conseil. J'ajoute un indicateur via iCustom et je boucle sur cet indicateur, en changeant 1 instance de paramètre-période. Par conséquent, je choisis une variante et je travaille avec elle. Je ne prends que la dernière barre. Mais lorsque j'arrête mon Expert Advisor, je remarque qu'il affiche une douzaine d'indicateurs avec des paramètres différents, et pour toute la durée de l'historique. Lorsque je modifie un indicateur en un histogramme (une fenêtre séparée), respectivement, dix fenêtres d'histogramme apparaissent. Comment supprimer (ne pas afficher les lignes), et ne pas utiliser l'indicateur entier pendant l'énumération du cycle, mais seulement la dernière valeur.
 
Aleksandr Kononov arrête mon Expert Advisor, je remarque que je vois une douzaine d'indicateurs avec des paramètres différents, et pour toute la durée de l'historique. Lorsque je modifie un indicateur en un histogramme (une fenêtre séparée), respectivement, dix fenêtres d'histogramme apparaissent. Comment supprimer (ne pas afficher les lignes), et ne pas utiliser l'indicateur entier pendant l'énumération du cycle, mais seulement la dernière valeur.
   HideTestIndicators(true); 
   MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0); 
   MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1); 
   HideTestIndicators(false);
 

Les gars, un conseil sur mql4 indicateur personnalisé construit sur MA basé sur les prix d'ouverture, il ne change pas ses lectures avec de nouveaux ticks à venir, c'est pourquoi il est basé sur les prix d'ouverture.

Sur mql5 l'indicateur adapté change ses lectures dans la zone de transition à chaque tick... Aussi en ouvrant les prix, même comme ceci


copy=CopyBuffer(MA2EURJPY,0,1,CountBars,MA2EURJPY_TF) ;

si(copie<0)

Print("Échec de la copie MA2EURJPY_MAS") ;


pour faire une seconde lecture, mais il fait toujours des allers-retours


Andrey Sokolov #:

Cela fonctionne

Cela ne fonctionne qu'une fois, j'ai l'impression que le langage est défaillant. Lorsque j'édite un fragment sans rapport dans mql5, tout cesse de fonctionner...



 
Sergey Dymov #:

J'ai l'impression que la langue est pleine de pépins. Quand j'édite une section sans rapport dans mql5, tout s'arrête de fonctionner... J'ai eu de telles situations aussi, mais à chaque fois je trouve que "ce n'était pas la babina", donc ce n'est pas la babina, donc ce n'est pas la mql4.

J'ai également connu des situations similaires, mais à chaque fois, il s'est avéré que "ce n'était pas le babina", alors...

Raison: