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

 

Bon après-midi.

J'ai un problème étrange.

Terminal MT4. Il y a environ 15 indicateurs sur chaque graphique (standard et auto-écrits). Dans certains cas, si j'essaie de supprimer un indicateur via la liste des indicateurs (Ctrl + i), le terminal se bloque. En même temps, si vous essayez de supprimer le même indicateur en appuyant sur le bouton droit de la souris sur la ligne ou la flèche dessinée par l'indicateur à travers le tampon et en sélectionnant l'élément de menu "Supprimer l'indicateur" - il est supprimé instantanément et sans problème. Le plus ennuyeux est que le problème est flottant : parfois un indicateur se bloque à la suppression, parfois un autre..... le même indicateur accroche le terminal, parfois non.

À cet égard, j'ai deux questions :

1) Qu'est-ce qui peut être lié au blocage du terminal lors de la suppression d'un indicateur via la liste des indicateurs ?

2) quelle est la différence entre les deux méthodes de suppression des indicateurs que j'ai décrites ci-dessus ?

 
satorifx:

J'ai un problème étrange

Essayez d'abord d'exécuter les sept indicateurs ensemble, s'il n'y a pas de problèmes, puis les huit autres séparément. S'il y a des problèmes, divisez-les à nouveau en deux. Cela permettra de trouver un ou deux coupables. Si rien n'est trouvé, retirez-en un à la fois à partir de 15. La méthode de la boîte noire par essais et erreurs fonctionnera si vous avez la compétence et la patience.
 
Le gestionnaire d'événements MT5, CHARTEVENT_CUSTOM OnChartEvent () sait qu'il gère plusieurs threads.

Pouvez-vous créer une logique à sécurité thread dans le gestionnaire OnChartEvent () ?

Est-il possible d'écrire du code orienté thread dans MQL5 ?
 
Veuillez me conseiller ! Si j'appelle un indicateur personnalisé via iCustom dans un Expert Advisor, comment puis-je faire en sorte que les paramètres d'entrée de cet indicateur soient affichés dans l'Expert Advisor ? J'ai le code source de l'indicateur. Est-ce même compliqué ?
 
Sayberix:
Veuillez me conseiller ! Si j'appelle un indicateur personnalisé via iCustom dans un Expert Advisor, comment puis-je faire en sorte qu'il affiche ses paramètres d'entrée dans l'Expert Advisor ? J'ai le code source de l'indicateur. Est-ce même difficile ?

Écrire dans l'ordre d'énumération des propriétés comme dans l'indicateur

doubleiCustom(
symbole de chaîne de caractères,// nom du symbole
inttimeframe,//nom de la chaîne de temps
,// dossier indicateur/nom_de_l'utilisateur
... // liste des paramètres d'entrée de l'indicateur
intmode,// source de données
intshift// shift
) ;


Ouvrez "Paramètres d'entrée" dans l'indicateur et copiez-les tour à tour avec les valeurs requises.

Assurez-vous de regarder le type de la variable, et si c'est une chaîne de caractères, mettez-la entre guillemets, on ne peut rien sauter :

double val=iCustom(NULL,0,"SampleInd","",240,3,"",clrNONE,clrNONE,1,0);
 
Bonjour, pourquoi ces artefacts se produisent-ils ? Le code de fermeture d'urgence ne devrait-il pas se fermer au premier croisement ? Aucune erreur de fermeture n'est survenue.
if(MathAbs(Ima-Ima2) <= c && OrdersTotal() != 0)
        {
         OrderSelect(ticket, SELECT_BY_TICKET);
         int a = OrderType();
         RefreshRates();
         if(a == 0)
           {
            OrderClose(ticket, lots, Bid, 20, clrBlack);
           }
         if(a == 1)
           {
            OrderClose(ticket, lots, Ask, 20, clrBlack);
           }
         ticket = 0;
}
Dossiers :
test.png  22 kb
 
Est-ce que RefreshRates fonctionnera ici ?

Dans la fonction OrderSend, nous avons une cena, mais la cena a été définie avant le cycle.


double cena=Ask;

for (int i=0; i<=10; i++)
   {
   RefreshRates();
   int t=OrderSend(OrderSymbol(),OP_BUY,0.1,cena,10,0,0); 
   if (t!=-1) break;
   }
 
igrok333:
Est-ce que RefreshRates fonctionnera ici ?

Dans la fonction OrderSend, nous avons une cena, mais la cena a été définie avant le cycle.


ne sera pas

 
Igor Makanu:

ne sera pas

il a pris le prix avant quand l'asc était encore vieux,
et ensuite seulement les rafraîchissements ont changé l'asc, non ?
 
Vous l'avez deviné. La variable cena est indépendante de RefreshRates.