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

 
Elena Baranova:

Chers professionnels, pourriez-vous me dire s'il est possible d'obtenir les valeurs du RSI pour une semaine dans le code du conseiller, mais de calculer les valeurs pour la semaine, qui ne commence pas le lundi, mais par exemple à partir de mercredi (c'est-à-dire la semaine de mercredi à mercredi prochain). Pour autant que je sache, cela ne peut pas être fait avec l'iRSI ?

Pour l'instant, je ne vois qu'un moyen d'écrire moi-même le code pour faire le calcul. Existe-t-il une solution plus simple ou une solution toute faite ?

Si vous créez une poignée d'indicateur sur l'échelle de temps W1, cela signifie que l'indicateur sera calculé sur les barres W1 : une barre, une semaine.

Vous devez créer une poignée d'indicateur sur l'échelle de temps D1 (échelle de temps quotidienne).


En général, le sens de la phrase "(c'est-à-dire une semaine du mercredi au mercredi suivant)" n'est pas clair. Le jour de la semaine qui commence ne fait aucune différence - l'indicateur est calculé sur les barres.

 
Vladimir Karputov:

Si vous créez une poignée d'indicateur sur l'échelle de temps W1, cela signifie que l'indicateur sera calculé sur les barres W1 : une barre, puis une semaine.

Vous devez créer une poignée d'indicateur sur l'échelle de temps D1 (échelle de temps quotidienne).


En général, le sens de la phrase "(c'est-à-dire une semaine du mercredi au mercredi suivant)" n'est pas clair. Peu importe le jour de la semaine, l'indicateur est calculé à partir des barres.

Je comprends tout sur les barres. Mais toutes les barres hebdomadaires commencent le lundi. Par conséquent, pour obtenir, par exemple, une semaine de mercredi à mercredi, je pense que je devrais écrire mon propre code basé sur les barres quotidiennes.

Je ne comprends pas non plus très bien la signification de ce calcul, mais le client a demandé.

 
Elena Baranova:

Je comprends tout à propos des barres. Mais toutes les barres hebdomadaires commencent le lundi. Donc pour obtenir la semaine de mercredi à mercredi par exemple, je suppose que je dois écrire mon propre code basé sur les barres quotidiennes.

Je ne comprends pas non plus parfaitement la signification de ce calcul, mais mon client m'a demandé de le faire.

Le conseiller expert ouvre des transactions en fonction des valeurs RSI. Je ne comprends pas l'intérêt de ce calcul, mais le client l'a demandé et l'EA ouvre des ordres le lundi uniquement à l'ouverture d'une nouvelle barre hebdomadaire.

 
Elena Baranova:

Je comprends tout à propos des barres. Mais toutes les barres hebdomadaires commencent le lundi. Donc pour obtenir la semaine de mercredi à mercredi par exemple, je suppose que je dois écrire mon propre code basé sur les barres quotidiennes.

Je ne comprends pas non plus très bien la signification d'un tel calcul, mais le client m'a demandé de le faire.

Je ne peux pas comprendre la signification physique. C'est pourquoi je pars.

 

Aidez-nous à résoudre le problème d'affichage des graphiques dans MT5. Le graphique ne cesse de se mettre à jour et de glisser vers la gauche. Et ce, sur tous les instruments.

Plus loin, on passe à l'histoire maximale. En général, il ne peut pas afficher correctement les informations de la semaine dernière. Les bougies du dernier jour disparaissent constamment, elles clignotent et se déplacent vers la gauche. Comment le réparer ?

 
Александр:

Aidez-nous à résoudre le problème d'affichage du graphique dans MT5. Le graphique ne cesse de se mettre à jour et de glisser vers la gauche. Et ce, sur tous les instruments.

Il continue à se déplacer vers l'histoire maximale. En général, il ne peut pas afficher normalement les informations de la dernière semaine, les chandeliers du dernier jour disparaissent constamment, il clignote et se déplace vers la gauche. Comment le réparer ?

C'est juste une machine à remonter le temps :)

Vous avez peut-être des scripts/conseillers/indicateurs en cours d'exécution - ils peuvent modifier le graphique.

 
Александр:

Aidez à résoudre le problème d'affichage du graphique dans MT5. Le graphique se met à jour en permanence et glisse vers la gauche. Et ce, sur tous les instruments.

Il continue à se déplacer vers l'histoire maximale. En général, il ne peut pas afficher normalement les informations de la dernière semaine, les chandeliers du dernier jour disparaissent constamment, il clignote et se déplace vers la gauche. Comment le réparer ?

Supprimez les indicateurs et les EAs en cours d'exécution. Retirez le chat du clavier. Nettoyez le café renversé sur le clavier.

 
Vladimir Karputov:

Retirez les indicateurs de fonctionnement et les conseillers. Retirez le chat du clavier. Nettoyez le café renversé sur le clavier.

Merci pour le conseil. Problème résolu, il fallait juste choisir un serveur avec un ping élevé.

 

Veuillez expliquer pourquoi la zone bleue n'est pas ombragée. Et comment le réparer ?
Est-il possible de produire deux histogrammes dans un seul indicateur ?

#property indicator_chart_window                   
#property indicator_buffers   8                    
#property indicator_plots     8                    

#property indicator_color1    clrRed                
#property indicator_style1    STYLE_SOLID          
#property indicator_color2    clrRed               
#property indicator_style2    STYLE_SOLID          
#property indicator_color3    clrRed               
#property indicator_style3    STYLE_DOT            

#property indicator_color5    clrDodgerBlue        
#property indicator_style5    STYLE_SOLID          
#property indicator_color6    clrDodgerBlue        
#property indicator_style6    STYLE_SOLID          
#property indicator_color7    clrDodgerBlue        
#property indicator_style7    STYLE_DOT            

double
   Line_High_Up[], Line_High_Dn[], Hist_High_Up[], Hist_High_Dn[],
   Line_Low_Up[],  Line_Low_Dn[],  Hist_Low_Up[],  Hist_Low_Dn[];
   

void OnInit() 
   { 
   SetIndexBuffer     (0, Line_High_Up,      INDICATOR_DATA); 
   PlotIndexSetInteger(0, PLOT_DRAW_TYPE,    DRAW_LINE);      
   SetIndexBuffer     (1, Line_High_Dn,      INDICATOR_DATA); 
   PlotIndexSetInteger(1, PLOT_DRAW_TYPE,    DRAW_LINE);      
   SetIndexBuffer     (2, Hist_High_Up,      INDICATOR_DATA); 
   PlotIndexSetInteger(2, PLOT_DRAW_TYPE,    DRAW_HISTOGRAM2);
   SetIndexBuffer     (3, Hist_High_Dn,      INDICATOR_DATA);

   SetIndexBuffer     (4, Line_Low_Up,       INDICATOR_DATA);
   PlotIndexSetInteger(4, PLOT_DRAW_TYPE,    DRAW_LINE);     
   SetIndexBuffer     (5, Line_Low_Dn,       INDICATOR_DATA);
   PlotIndexSetInteger(5, PLOT_DRAW_TYPE,    DRAW_LINE);     
   SetIndexBuffer     (6, Hist_Low_Up,       INDICATOR_DATA);
   PlotIndexSetInteger(6, PLOT_DRAW_TYPE,    DRAW_HISTOGRAM2);
   SetIndexBuffer     (7, Hist_Low_Dn,       INDICATOR_DATA);
   }


int OnCalculate(  const int         rates_total,      
                  const int         prev_calculated,  
                  const datetime   &time[],                   
                  const double     &open[],                     
                  const double     &high[],                     
                  const double     &low[],                      
                  const double     &close[],                    
                  const long       &tick_volume[],                
                  const long       &volume[],                     
                  const int        &spread[]   )                   
   {  
   int i;
   for(i=prev_calculated; i<=rates_total-1; i++)      
      {
      Line_High_Dn[i] = Hist_High_Dn[i] = high[i];
      Line_High_Up[i] = Hist_High_Up[i] = Line_High_Dn[i] + 20*_Point;

      Line_Low_Up[i]  = Hist_Low_Up[i]  = low[i];
      Line_Low_Dn[i]  = Hist_Low_Dn[i]  = Line_Low_Up[i] - 20*_Point;
      }
   return(i-1);
   }           
 
User_mt5:

Veuillez expliquer pourquoi la zone bleue n'est pas ombragée. Et comment le réparer ?
Est-il possible de produire deux histogrammes dans un seul indicateur ?

Si l'épaisseur des deux histogrammes est fixée à '3'.

//+------------------------------------------------------------------+
//|                                                            2.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   2
//--- plot Hist_High
#property indicator_label1  "Hist_High"
#property indicator_type1   DRAW_HISTOGRAM2
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot Hist_Low
#property indicator_label2  "Hist_Low"
#property indicator_type2   DRAW_HISTOGRAM2
#property indicator_color2  clrBlue
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- input parameters
input int      Input1=9;
//--- indicator buffers
double         Hist_HighBuffer1[];
double         Hist_HighBuffer2[];
double         Hist_LowBuffer1[];
double         Hist_LowBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Hist_HighBuffer1,INDICATOR_DATA);
   SetIndexBuffer(1,Hist_HighBuffer2,INDICATOR_DATA);
   SetIndexBuffer(2,Hist_LowBuffer1,INDICATOR_DATA);
   SetIndexBuffer(3,Hist_LowBuffer2,INDICATOR_DATA);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int limit=prev_calculated-1;
   if(prev_calculated==0)
      limit=0;
   for(int i=limit; i<rates_total; i++)
     {
      Hist_HighBuffer1[i]=high[i]+20.0*Point();
      Hist_HighBuffer2[i]=high[i];
      Hist_LowBuffer1[i]=low[i];
      Hist_LowBuffer2[i]=low[i]-20.0*Point();
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+



Dossiers :
2.mq5  3 kb