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

 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

comp, 2016.03.23 09:49

Comment connaître la période du graphique par ChartID ?ChartGetInteger ne permet pas de faire cela en une seule action.

Jusqu'à présent, j'ai trouvé une solution de fortune en sauvegardant un modèle et en analysant la période qu'il contient.

Comment le découvrir normalement ?

UtiliserChartPeriod

Période du graphique

Retourne la valeur de lapériode du graphique spécifié.

ENUM_TIMEFRAMESChartPeriod(
longchart_id=0// ID du graphique
) ;

Paramètres

chart_id=0

[Chart ID. 0 signifie le graphique actuel.

Valeur retournée

Valeur du typeENUM_TIMEFRAMES. S'il n'y a pas de graphique, 0 est renvoyé.

 
Karputov Vladimir:

UtiliserChartPeriod

Merci.
 

Bonjour !

Comment déterminer l'état du panneau de négociation en un clic (déplié ou replié) ?

 
Dites-moi comment rechercher des questions sur le bon sujet dans ce fil pour débutants. Le fil de discussion s'est transformé en une énorme couche de questions et de réponses et il n'est donc plus possible d'effectuer une recherche manuelle. Si vous avez déjà hésité à poser une question, il se peut que la réponse ait déjà été donnée ici il y a longtemps, mais la recherche se fait sur l'ensemble du site et non dans cette section particulière "pour débutants" ?
 
Alexander:
Dites-moi comment rechercher des questions sur le bon sujet dans ce fil pour débutants. Le fil de discussion s'est transformé en une énorme couche de questions et de réponses et la recherche manuelle n'est plus possible. Poser une question, c'est déjà hésiter, peut-être y a-t-il déjà été répondu ici depuis longtemps, et la recherche se fait sur l'ensemble du site et non dans cette section particulière "pour débutants" ?

Tapez dans une recherche google : recherche site:https://www.mql5.com/ru/forum/6343

"Recherchable" est ce que vous recherchez.

 
Question sur le langage µl4 - Pourquoi la fonction"create object" ne fonctionne-t-elle pas pendant l'optimisation, lorsqu'on utilise un objet pour stocker les données de plusieurs variables, cela s'avère 20 fois plus rapide que lorsqu'on utilise la fonction openfail->failride->failclose, qui ralentit beaucoup l'optimisation et les tests ?
 

Bonjour !

Je n'arrive pas à trouver comment traiter les barres pendant deux heures, disons de 15 heures à 17 heures, heure du serveur, pour les 250 dernières sessions de négociation.

Pourriez-vous me donner une suggestion conceptuelle ?

mql5

 
Stairway_2_7:

Bonjour !

Je n'arrive pas à trouver comment traiter les barres pendant deux heures, disons de 15 heures à 17 heures, heure du serveur, pour les 250 dernières sessions de négociation.

Pourriez-vous me donner une suggestion conceptuelle ?

mql5

Utiliser les fonctions avec la requête de temps

int  CopyOpen( 
   string           symbol_name,     // имя символа 
   ENUM_TIMEFRAMES  timeframe,       // период 
   datetime         start_time,      // с какой даты 
   datetime         stop_time,       // по какую дату 
   double           open_array[]     // массив для копирования цен открытия 
   );
 

Sergey,

Merci pour la réponse !

Pour ma tâche, il est plus pratique de

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00") ;

datetime stop =StringToTime("2016.03.25 15:55") ;

MqlRates rates[] ;

ArraySetAsSeries(rates,true) ;

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates) ;

si(copié>0)

{

Print("Barres copiées : "+copied) ;

string format="open = %G, high = %G, low = %G, close = %G, volume = %d" ;

la ficelle ;

int size=fmin(copié,10) ;

for(int i=0;i<size;i++)

{

out=i+" : "+TimeToString(rates[i].time) ;

out=out+"+StringFormat(format,

taux[i].ouvert,

taux[i].haut,

taux[i].bas,

taux[i].fermer,

taux[i].tick_volume) ;

Imprimer(out) ;

}

}

else Print("Failed to get historical data on symbol ",Symbol()) ;

}

Comment puis-je supprimer les samedis et dimanches ?

Plus précisément, faites une opération similaire pour les 250 derniers jours de bourse, par exemple ?

 
Stairway_2_7:

Sergey,

Merci pour la réponse !

Pour ma tâche, il est plus pratique de

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00") ;

datetime stop =StringToTime("2016.03.25 15:55") ;

MqlRates rates[] ;

ArraySetAsSeries(rates,true) ;

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates) ;

si(copié>0)

{

Print("Barres copiées : "+copied) ;

string format="open = %G, high = %G, low = %G, close = %G, volume = %d" ;

la ficelle ;

int size=fmin(copié,10) ;

for(int i=0;i<size;i++)

{

out=i+" : "+TimeToString(rates[i].time) ;

out=out+"+StringFormat(format,

taux[i].ouvert,

taux[i].haut,

taux[i].bas,

taux[i].fermer,

taux[i].tick_volume) ;

Imprimer(out) ;

}

}

else Print("Failed to get historical data on symbol ",Symbol()) ;

}

Comment puis-je supprimer les samedis et dimanches ?

Pour être plus précis, comment faire une opération similaire pour les 250 derniers jours de bourse, par exemple ?

Essayez de travailler avec cette structure

struct MqlDateTime 
  { 
   int year;           // год 
   int mon;            // месяц 
   int day;            // день 
   int hour;           // час 
   int min;            // минуты 
   int sec;            // секунды 
   int day_of_week;    // день недели (0-воскресенье, 1-понедельник, ... ,6-суббота) 
   int day_of_year;    // порядковый номер в году (1 января имеет номер 0) 
  };
Raison: