Erreurs, bugs, questions - page 81

 
Urain:

L'appel peut être fait en spécifiant la période, puis la valeur de la TF spécifiée sera retournée,

ou sans indication de la période, la valeur sera retournée à partir de la valeur actuelle

(r) :o)

Je suppose que c'est comme ça qu'il faut faire, non ?

double  Close(int i,ENUM_TIMEFRAMES tf=PERIOD_CURRENT){...
 
maryan.dirtyn:
int
juste ici en haut, il y a une fonction pour transférer de MQL4 à MQL5 et vous pouvez transférer en arrière...
 
maryan.dirtyn:
hallelujah... c'est une affaire))))))
La valeur de l'horizon temporel peut être obtenue de deux façons en utilisant une variable prédéfinie
int _Period

В переменной _Period хранится значение таймфрейма текущего графика.

et avec la fonction

Period

Возвращает значение таймфрейма текущего графика.

ENUM_TIMEFRAMES  Period();
 

Возвращаемое значение

Содержимое переменной _Period, в которой хранится значение таймфрейма текущего графика. Значение может быть одним из значений перечисления ENUM_TIMEFRAMES.
 
maryan.dirtyn:

pour que ça marche comme ça, ça doit toujours être comme ça, non ?

Non, alors la surcharge ne fonctionnera pas, vous ne pourrez pas compiler. Mon code est correct et l'appel dans le post suivant est également correct.
 
Urain:
Vous pouvez passer du MQL4 au MQL5 et vice versa...

Pour connaître le nombre de minutes d'une période donnée du graphique, divisez la valeur de la fonctionPeriodSeconds par 60. Ce lien montre une erreur 404 :) Je vais essayer moi-même :

int PeriodMQL4()
  { switch(Period())
     {
      case PERIOD_CURRENT: return(0);
      case PERIOD_M1:     return(1);
      case PERIOD_M5:     return(5);
      case PERIOD_M15:    return(12);
      case PERIOD_M30:    return(30);
      case PERIOD_H1:     return(60);
      case PERIOD_H4:     return(240);
      case PERIOD_D1:     return(1440);
      case PERIOD_W1:     return(10080);
      case PERIOD_MN1:    return(43200);      
      default: return(0);
     }
  }

Cela fera-t-il l'affaire ? il ne le fera pas))) tellement d'erreurs c'est effrayant)

 
Urain:
Non, alors la surcharge ne fonctionnera pas, vous ne pourrez pas compiler. Mon code est correct et l'appel dans le post suivant est également correct.
Lors de l'insertion d'une fonction sans désignation explicite de la période, c'est-à-dire juste Close(0) ... ne compile pas), je dois définir manuellement Close(0,PERIOD_CURRENT) ... mais ce n'est rien ;)
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков - Документация по MQL5
 
maryan.dirtyn:
int

Ahhhh je me souviens que c'est plus simple, mais ensuite il faut diviser par 60 pour obtenir les minutes.

Возвращает количество секунд в периоде.

int  PeriodSeconds(ENUM_TIMEFRAMES  period=PERIOD_CURRENT ); // период графика



int Per=PeriodSeconds(PERIOD_D1)/60;
Print("Period=",Per);
 
Urain:

Ahhhh je me souviens que c'est plus simple, mais ensuite il faut diviser par 60 pour obtenir les minutes.

Oh merci)) Que la force soit avec vous)
 

Un bit pour travailler avec des périodes comme dans MQL4

//Fumction MinuteToPeriod
ENUM_TIMEFRAMES MinuteToPeriod(int Value)
//Преобразовывает число сикунд в период, возвращаемый как ENUM_TIMEFRAMES
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
ENUM_TIMEFRAMES Result;
//----------------------------------------------------------------------------//
  switch(Value)
  {
  //Перирд текущещего графика
  case   0: return(PERIOD_CURRENT); break;
  //Минуты
  case   1: return(PERIOD_M1);  break;   //1 минута
  case   2: return(PERIOD_M2);  break;   //2 минуты
  case   3: return(PERIOD_M3);  break;   //3 минуты
  case   4: return(PERIOD_M4);  break;   //4 минуты
  case   5: return(PERIOD_M5);  break;   //5 минуты
  case   6: return(PERIOD_M6);  break;   //6 минуты
  case  10: return(PERIOD_M10); break;   //10 минуты
  case  12: return(PERIOD_M12); break;   //12 минуты
  case  15: return(PERIOD_M15); break;   //15 минуты
  case  20: return(PERIOD_M20); break;   //20 минуты
  case  30: return(PERIOD_M30); break;   //30 минуты
  //Часы
  case  60: return(PERIOD_H1); break;    //60 минут  - 1 час
  case 120: return(PERIOD_H2); break;    //120 минут - 2 часа  
  case 180: return(PERIOD_H3); break;    //180 минут - 3 часа
  case 240: return(PERIOD_H4); break;    //240 минут - 4 часа
  case 360: return(PERIOD_H6); break;    //360 минут - 6 часов
  case 480: return(PERIOD_H8); break;    //480 минут - 8 часов
  case 720: return(PERIOD_H12); break;   //720 минут - 12 часов
  //Старшие ТФ
  case 1440: return(PERIOD_D1); break;   //1 день
  case 10080: return(PERIOD_W1); break;  //1 неделя 
  case 43200: return(PERIOD_MN1); break; //1 месяц 
  //Default
  default: return(PERIOD_CURRENT);
  }
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

//Fumction PeriodToMinute
int PeriodToMinute(ENUM_TIMEFRAMES Value)
//Возвращает число секунд в периоде
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
int Result;
//----------------------------------------------------------------------------//
Result = PeriodSeconds(Value)/60;
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}
 

Je fais un test de 2010.01.01 à aujourd'hui. J'ai sorti la date de la toute première barre 2009.01.02.

Comment puis-je faire en sorte que la première barre disponible soit par exemple 2006.01.02 ?