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

 
Igor Makanu:

ne peut pas.

utiliser iBars() pour voir l'historique disponible

HH : Si je ne me trompe pas, dans le testeur, lorsque vous démarrez le conseiller expert est disponible 1000 barres, puis avec la génération de nouvelles données le nombre de barres va augmenter. Le testeur modélise l'historique de toutes les TF auxquelles il s'adresse, c'est-à-dire que si vous avez lancé le test sur H1 et que pendant le test vous avez accédé aux données de la TF M1, alors quand vous démarrez, il sera disponible pour 1000 barres sur H1, et donc 60 * 1000 = 60,000 barres M1

vous devez lire plus d'articles comme celui-cihttps://www.mql5.com/ru/articles/1511

J'ai une idée sur la façon de le faire.

Vous pouvez faire démarrer un EA et ne pas faire de commerce pendant un mois.

et le mois suivant, il ne fera que commencer à commercer.

L'historique sera accumulé et le coefficient de variance sera calculé avant le trading.


Comment trouvez-vous la méthode ?



Mais comment puis-je enregistrer que "le premier mois n'a pas été négocié"...

Je vais faire des tests sur différentes périodes.

Je ne veux pas avoir à fixer la date à la main tout le temps.

Je ne veux pas continuer à corriger la date à la main.

 
multiplicator:

J'ai trouvé comment faire.

Vous pouvez faire en sorte que l'EA démarre et n'effectue pas de transactions pendant un mois.

C'est à peu près ce dont vous avez besoin pour votre problème, mais là encore, utilisez iBars() et vous saurez combien d'historique est disponible pour l'EA dans le testeur.

 

multiplicator:
счётчик, что ли включить, дней...

Igor Makanu:

mais encore une fois, utilisez iBars() et vous saurez combien d'historique est disponible pour l'EA dans le testeur.

Exactement !

lorsque iBars() devient > 30 000 - calculez la variance et autorisez ensuite l'EA à trader.

merci à tous ceux qui ont répondu.

 

Bonjour ! Aide pour un trader débutant et inexpérimenté ! J'ai un EA mais il n'a pas de stop loss ! Qui peut ajouter un stop loss à un EA (et si possible gratuitement !) ?

 
Tem4ik:

Bonjour ! Aide pour un trader débutant et inexpérimenté ! J'ai un EA mais il n'a pas de stop loss ! Qui peut ajouter un stop loss à un EA (et si possible gratuitement !) ?


Postez le code ici (s'il n'est pas décompilé) et peut-être que quelqu'un pourra vous aider.

 
#define  list "Cryptocurrency Market\\List.csv"

enum FILE_LOCATION
{
   LOCATE_TERMINAL = 0,
   LOCATE_COMMON = FILE_COMMON,
};

void GetLocalSource(FILE_LOCATION &dir)
{
   GetLocalList(FileOpenEx(list, FILE_WRITE|FILE_READ|FILE_CSV|dir));
}

int FileOpenEx(const string fname, int flags, int delimeter =';', uint codepage = CP_ACP)
{
   bool ex;
   if(flags > 4095)
      ex = FileIsExist(fname, FILE_COMMON);
   else
      ex = FileIsExist(fname);
   if(!ex) return -1;
   return FileOpen(fname, flags, delimeter, codepage);
}

bool GetLocalList(const int handle)
{
   if(handle == INVALID_HANDLE) {Print("Handle err: ", handle, " | ", GetLastError()); return false;}
...
}

Je ne peux pas trouver le fichier viaFileIsExist, la fonction ne veut pas le voir. J'ai déjà mélangé ce fichier à la fois dans le répertoire général et dans le répertoire du terminal - le résultat n'a pas changé

2019.01.06 16:11:14.957 CoinMarketCap EURUSD,Daily : Handle err : -1 | 5020

La fonction qui écrit List.csv l'ouvre via la même substitution de macro de liste

Quelle est l'erreur ?

 
Ilya Prozumentov:

Je ne peux pas trouver le fichier via FileIsExist, la fonction ne veut pas le voir. J'ai déjà mélangé ce fichier à la fois dans le répertoire général et dans le répertoire du terminal - le résultat n'a pas changé

2019.01.06 16:11:14.957 CoinMarketCap EURUSD,Daily : Handle err : -1 | 5020

La fonction qui écrit List.csv l'ouvre via la même substitution de macro de liste

Quelle est l'erreur ?

Essayez ceci :#define list "Files\\\\\NCryptocurrency Market\NList.csv"

Le fichier doit se trouver dans le dossier Files

 
Vladimir Pastushak:

Essayez ceci :#define list "Files\\\\\NCryptocurrency Market\NList.csv"

Le fichier doit se trouver dans le dossier Files

Ça n'a pas marché.


P.S Problème rencontré, il y a un espace à la fin d'un nom de fichier déjà existant.

 

Bonjour.

Pouvez-vous me dire comment déterminer la date (au format date) du début de la semaine et de la fin de la semaine ? J'ai besoin que l'oscillateur se mette à zéro à la fin de la semaine et commence à compter à partir de zéro au début de la nouvelle semaine. Pour l'instant, je sais comment le mettre à zéro pour chaque jour, mais je n'ai aucune idée de comment le mettre à zéro pour chaque semaine. C'est comme ça que je me réinitialise chaque jour.

void Calculate(int i)
  {
   double summ;
   datetime startTime  = StringToTime(TimeToString(Time[i],TIME_DATE)+" "+StartTime); // StartTime=00:10
   datetime endTime    = StringToTime(TimeToString(Time[i],TIME_DATE)+" "+EndTime);   // EndTime=23.50
   datetime currentTime= StringToTime(TimeToString(Time[i],TIME_DATE)+" "+TimeToString(Time[i],TIME_MINUTES));
//Print("Start = ",TimeToString(startTime,3));
//Print("End = ",TimeToString(endTime,3));
   if(CheckTimer(i,startTime,endTime,currentTime,0))
     {
      summ = MainBuffer[i+1];
      summ+= InfluenceBuffer[i];
      MainBuffer[i]=summ; 
     }
   else
     {
      summ=0.0;
      MainBuffer[i]=summ;
      }
  }

Merci

 
Gerkl:

Pouvez-vous m'indiquer comment déterminer la date (au format date) du début de la semaine et de la fin de la semaine ?

//1. для времени datetime t
if(TimeDayOfWeek(t))==1) // Понедельник
if(TimeDayOfWeek(t))==5) // Пятница

//2. для текущего времени
if(DayOfWeek() = 1) // Понедельник
if(DayOfWeek() = 5) // Пятница

Vous avez très probablement besoin de la variante №1, puis dans le code du cycle de calcul, où vous recherchez les barres, vous utilisez la structure suivante :

if(TimeDayOfWeek(Time[i]))==1) // Понедельник
if(TimeDayOfWeek(Time[i]))==5) // Пятница
vous avez le bon temps dans Time[i] après avoir vérifié la condition