Questions des débutants MQL5 MT5 MetaTrader 5 - page 144

 
DC2008:

Lisez attentivement:

Valeur de retour

La fonction renvoie l'index de l'élément trouvé, en tenant compte de la sérialité du tableau. Si elle échoue, la fonction renvoie -1.

Par conséquent, ça devrait être comme ça :

1. Corrigez-moi si j'ai mal compris.

Trouve tous les minima dans l'intervalle :

double Low[];
CopyLow(_Symbol,_Period,tss,tspp,Low);

Puisqu'il existe un tableau avec des minima, nous recherchons avec la fonction ArrayMinimum seulement le minimum du tableau, sans énumérer l'intervalle de temps(tss,tspp).

double min= Low[ArrayMinimum(Low)];  
Alert("min=",min);

2. Dans le script, j'ai mis le code dans une fonction :

void OnDeinit(const int reason)

tous les paramètres temporels sont affichés correctement, mais la variable min=0.0, bien que lorsque les enchères étaient en cours, elle affichait le minimum de l'intervalle spécifié. Quel pourrait être le problème ?

 
forexman77:

1. Corrigez-moi si j'ai mal compris.

Nous avons trouvé tous les minima dans l'intervalle :

Puisqu'il existe un tableau avec des minima, nous utilisons la fonction ArrayMinimum pour trouver seulement le minimum du tableau, sans énumérer l'écart dans le temps(tss,tspp)

2. Dans le script, le code est placé dans la fonction :

tous les paramètres temporels sont affichés correctement, mais la variable min=0.0, bien que lorsque les enchères étaient en cours, elle affichait le minimum de l'intervalle spécifié. Quel pourrait être le problème ?

Dans la portée de la variable. Rendez-le mondial.
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
zfs:
Dans la portée de la variable. Rendez-le mondial.
Déplacement de la variable "double min ;". au global toujours =0.0.
 
forexman77:
Déplacement de la variable " double min ; ". au global encore =0.0

Script:

void OnStart()
  {
   double Low[];
   CopyLow(_Symbol,_Period,0,10,Low);
   double min=Low[ArrayMinimum(Low)];
   Alert("min=",min);
  }
Il n'y a pas de OnInit et OnDeinit dans les scripts.
 

Vous avez une erreur dans votre documentation https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples

int ChartFirstVisibleBar(constlong chart_ID=0)
{
//--- préparer une variable pour obtenir la valeur de la propriété
long result=-1 ;
//--- réinitialiser la valeur de l'erreur
ResetLastError() ;
//--- obtenir la valeur de la propriété
si( !ChartGetInteger(chart_ID,CHART_WINDOW_YD ISTANCE,0,result)) il devrait être CHART_FIRST_VISIBLE_BAR
{
//--- afficher le message d'erreur dans le journal "Experts".
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- retourner la valeur de la propriété du graphique
retour((int)résultat) ;
}

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

Script:

Il n'y a pas de OnInit et OnDeinit dans les scripts.

Merci beaucoup ! !!

Ça a marché pour moi ! !!

 

S'il vous plaît, dites-moi quels programmes utiliser pour protéger l'EA et pour limiter le temps de travail, par exemple j'ai besoin de protéger l'EA de la décompilation, donc il ne fonctionne que pendant 5 jours.

J'ai besoin d'un programme qui me permette de limiter de façon permanente le temps d'exécution de l'EA afin de le donner à d'autres personnes pour qu'elles le testent.

 

Lors du test d'une EA, j'ai rencontré la difficulté suivante.

Le conseiller expert ne négocie pas (il doit le faire) si :

 if(Stop <=Start) { return;}

Lors des tests, j'ai réglé les paramètres Stop de 1 à 33, Start de 1 à 33.

Bien sûr, le testeur produit environ 2/3 de résultats nuls, parce que Stop > Start dans le testeur se produit parfois pendant le dépassement.

Ces tests nuls prennent beaucoup de temps.

Question : Comment désactiver les tests nuls dans le code du conseiller expert ?

Logiquement, le temps de test devrait être réduit après l'interdiction ?

 
forexman77:

Lors du test d'une EA, j'ai rencontré la difficulté suivante.

Le conseiller expert ne négocie pas (il doit le faire) si :

Lors des tests, j'ai réglé les paramètres Stop de 1 à 33, Start de 1 à 33.

Bien sûr, le testeur produit environ 2/3 de résultats nuls parce que Stop > Start dans le testeur se produit parfois pendant le dépassement.

Ces tests nuls prennent beaucoup de temps.

La question est de savoir comment désactiver les tests nuls dans le code EA.

https://www.mql5.com/ru/docs/common/expertremove

Cela fonctionne dans le testeur. // Du moins, cela fonctionnait dans l'avant-dernière version. Cela fait un moment que je ne l'ai pas vérifié.

Документация по MQL5: Общие функции / ExpertRemove
Документация по MQL5: Общие функции / ExpertRemove
  • www.mql5.com
Общие функции / ExpertRemove - Документация по MQL5
 
MetaDriver:

https://www.mql5.com/ru/docs/common/expertremove

il fonctionne dans le testeur. // du moins il fonctionnait dans l'avant-dernière build. ça fait un moment que je n'ai pas vérifié.

J'ai besoin d'un laissez-passer pour le test. L'EA ne traite pas si :

if(Stop <=Start) { return;}

Je veux faire cela pour réduire le temps de test.

Peut-être existe-t-il dans le testeur de stratégie une fonction spécifique pour les paramètres d'entrée du conseiller expert?

Si nous obtenonsStop <=Start, nous sautons ce passage.

Raison: