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

 
Seric29:

Je veux dire que si la condition est vraie, alors il faut faire 2 actions identiques, par ex.

J'ai déclaré des variables et rien n'est fait, sauf cette actionPrice_UrNij = Bar_Cl[iHgCL]>Bar_Op[iHgOP] ? Bar_Cl[iHgCL]:Bar_Op[iHgOP] ; ou cette actionPrice_UrVerh = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ? Bar_Cl[iLwCL]:Bar_Op[iLwOP] ; comment lui faire effectuer 2 actions identiques avec les deux niveaux supérieur et inférieur par condition. Quelqu'un peut-il suggérer comment l'écrire sous une forme plus courte ?

1) Un tel code est très difficile à lire.

          int iHgCL=iHighest(_Symbol,PERIOD_D1,MODE_CLOSE,4,qt+1); int iHgOP=iHighest(_Symbol,PERIOD_D1,MODE_OPEN,4,qt+1);

Peu de gens chercheraient une déclaration de variable en dehors du début d'une ligne.

2. Il suffit d'appeler deux fois la fonction de construction des niveaux à l'intérieur du bloc if.

vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrNij, iTime(_Symbol,PERIOD_D1,qt), Price_UrNij, clrGreen, DRAW_LINE, 2, false, false);
vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrVerh, iTime(_Symbol,PERIOD_D1,qt), Price_UrVerh, clrGreen, DRAW_LINE, 2, false, false);
 

quelle est la différence d'utilisation ? quelle est la nuance ?

MqlDateTime dt;
datetime time=TimeTradeServer(dt)

и

MqlDateTime tm;
TimeToStruct(TimeTradeServer(),tm);
 
Fast528:

dites-moi quelle est la différence d'usage ? quelle est la nuance ?

Il n'y a probablement aucune différence.

 
Alexey Viktorov:

Il n'y a probablement aucune différence.

J'en déduis que le premier cas est celui où vous voulez utiliser la variable temporelle et la structure, et que le second cas est celui où vous utilisez uniquement les données de la structure ?

 
Fast528:

J'en déduis que le premier cas est celui où vous voulez utiliser la variable temporelle et la structure, et que le second cas est celui où vous utilisez uniquement les données de la structure ?

Je n'ai pas fait attention à la variable temps.

A quoi ça sert ? Après tout, cela ne coûte rien de traduire la structure en temps. Mais dans ce cas, il n'y aura pas de mémoire réservée pour la variable.

Ou si nous n'avons besoin que de temps sans division en parties, pourquoi devrions-nous réserver la mémoire à la structure ?

 
Alexey Viktorov:

Je n'ai pas fait attention à la variable temps.

C'est pour quoi faire ? Cela ne coûte rien de traduire la structure en temps. Mais dans ce cas, il n'y aura pas de mémoire réservée pour la variable.

Ou si vous n'avez besoin que de temps sans division, pourquoi aurais-je besoin de réserver la mémoire pour la structure ?

J'ai besoin que l'indicateur affiche les positions d'entrée/sortie sur le graphique et trace une ligne entre elles, par exemple, sur la période d'aujourd'hui moins 1 jour, comme cela se fait habituellement dans un indicateur ou un robot ?

 

Exécution d'un test.

Le programme ouvre le fichier dans OnInit() :

CFileTxt file;
int file_handle=file.Open("file_name.lic",FILE_READ);
if(file_handle==INVALID_HANDLE)
     {      
      return INIT_FAILED;
     }

Non seulement il ne trouve pas le fichier dans le dossier, mais il supprime également un autre fichier dans le dossier MQL5\Files de l'agent de test après le test. Il y a deux fichiers au total qui sont supprimés au démarrage.

Erreur5004 sur FileOpen().

Le problème se situe uniquement au niveau du testeur.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

Exécution du test.

Le programme ouvre le fichier dans OnInit() :

Non seulement il ne trouve pas le fichier dans le dossier, mais il supprime également un autre fichier dans le dossier MQL5\Files de l'agent de test après le test. Il y a deux fichiers au total qui sont supprimés au démarrage.

Erreur5004 sur FileOpen().

Le problème se situe uniquement au niveau du testeur.

Les dossiers des agents sont en train d'être nettoyés. C'est exact. Si vous devez rentrer un fichier précédemment enregistré, utilisez la référence au fichier enregistré dans le dossier partagé.


Exemple de mes codes :

//--- STEP 6
   if(m_file_txt.Open(InpFileName,FILE_WRITE|FILE_COMMON)==INVALID_HANDLE)
 
Vladimir Karputov:

Les dossiers des agents sont en train d'être nettoyés. C'est exact. Si vous devez rentrer un fichier précédemment enregistré, utilisez la référence au fichier enregistré dans le dossier partagé.


Un exemple tiré de mes codes :

Quel dossier partagé ? Je ne l'utilise pas du tout. Je commence toujours en mode portable. J'ai tout dans le dossier d'installation.

 
Juer:

Quel dossier partagé ? Je ne l'utilise pas du tout. Je fonctionne toujours en mode portable. J'ai tout dans le dossier d'installation.

Dossier partagé :FILE_COMMON. Cherchez, lisez. Penser.

Raison: