Erreurs, bugs, questions - page 59

 
Renat:

Heureusement, le problème des anciennes configurations est derrière nous. Il y a 50 ans, c'est très long et nous nous sommes permis de changer de format à plusieurs reprises.

Pour les courtiers, nous avons fourni non seulement un réseau de distribution, mais aussi un dépôt centralisé de toutes les distributions à l'adresse files.metaquotes.net - cela résout fondamentalement le problème des mises à jour en temps voulu de centaines de copies de distributions pour différentes sociétés.

En tout cas, je vous présente mes excuses pour ce désagrément - je suis sûr que cela ne se reproduira pas.

En outre, nous appliquerons désormais une méthode encore plus avancée pour localiser automatiquement et en toute sécurité les serveurs de négociation des courtiers lorsque les connexions aux points d'accès connus échouent. Cela résoudra fondamentalement le problème de la publication des listes de points d'accès en fonctionnement.

Dieu merci, Alpari s'est arrangé, je crois que la version est maintenant disponible sur le site 291. Il reste à Admiral markets à expliquer qu'il n'est pas nécessaire de conserver l'ancienne version sur le site - il existe une version 237 pesant 7 mb... :)
 
EQU:

Les gars, c'est quoi ce curseur... C'est définitivement F7, ça sort...

Au lieu de hosannas - juste des mots...

et les touches de raccourcis - s'il vous plaît - ramenez-les... ce n'est pas difficile... c'est une habitude - elle a été dessinée pendant des années...


Quant aux touches de raccourci, elles sont acceptées. La tâche est là.

C'est un peu plus compliqué avec le curseur. Toujours pas observé, même par les actions que vous avez mentionnées.

 

J'ai écrit une telle situation, j'essaie de l' exécuter, le terminal se plante.

2010.07.22 13:43:55 StandardDeviationChannel (EURUSD,M1) Tableau hors limites dans 'StandardDeviationChannel.mq5' (114,51)

J'ai pris un exemple de l'indicateur MACD dans l'ensemble standard d'indicateurs personnalisés dans le dossier ...\MQL5\Indicators\Examples.

//+------------------------------------------------------------------+
//|                                     StandardDeviationChannel.mq5 |
//|                                                    Сергей Грицай |
//|                                               sergey1294@list.ru |
//+------------------------------------------------------------------+
#property copyright "Сергей Грицай"
#property link      "sergey1294@list.ru"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   3
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_type3   DRAW_LINE
#property indicator_color1  DodgerBlue
#property indicator_color2  DodgerBlue
#property indicator_color3  Blue
#property indicator_style3  STYLE_DOT

input int                InpMAPeriod=14;              // Period
input int                InpMAShift=0;                // Shift
input ENUM_MA_METHOD     InpMAMethod=MODE_SMA;        // Method
input ENUM_APPLIED_PRICE InpAppliedPrice=PRICE_CLOSE; // Applied price
input int                InpDeviation=2.0;            // Deviation
//--- indicator buffers
double                   ExtUpBuffer[];
double                   ExtDownBuffer[];
double                   ExtMiddBuffer[];
double                   ExtMABuffer[];
double                   ExtStdDevBuffer[];
//--- indicator handle
int                      ExtMAHandle;
int                      ExtStdDevMAHandle;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,ExtUpBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtDownBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ExtMiddBuffer,INDICATOR_DATA);
   SetIndexBuffer(3,ExtMABuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,ExtStdDevBuffer,INDICATOR_CALCULATIONS);
   
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpMAPeriod-1);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpMAPeriod-1);
   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,InpMAPeriod-1);


   ExtMAHandle=iMA(NULL,0,InpMAPeriod,0,InpMAMethod,InpAppliedPrice);
   ExtStdDevMAHandle=iStdDev(NULL,0,InpMAPeriod,0,InpMAMethod,InpAppliedPrice);
   return(0);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
//--- return value of prev_calculated for next call
   if(rates_total<InpMAPeriod)
      return(0);
//--- not all data may be calculated
   int calculated=BarsCalculated(ExtMAHandle);
   if(calculated<rates_total)
     {
      Print("Not all data of ExtMAHandle is calculated (",calculated,"bars ). Error",GetLastError());
      return(0);
     }
   calculated=BarsCalculated(ExtStdDevMAHandle);
   if(calculated<rates_total)
     {
      Print("Not all data of ExtStdDevMAHandle is calculated (",calculated,"bars ). Error",GetLastError());
      return(0);
     }
//--- we can copy not all data
   int to_copy;
   if(prev_calculated>rates_total || prev_calculated<0) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
      if(prev_calculated>0) to_copy++;
     }
//--- get MA buffer
   if(CopyBuffer(ExtMAHandle,0,0,to_copy,ExtMABuffer)<=0)
     {
      Print("Getting fast MA is failed! Error",GetLastError());
      return(0);
     }
//--- get StdDev buffer
   if(CopyBuffer(ExtStdDevMAHandle,0,0,to_copy,ExtStdDevBuffer)<=0)
     {
      Print("Getting slow StdDev is failed! Error",GetLastError());
      return(0);
     }
//---
   int limit;
   if(prev_calculated==0)
      limit=0;
   else limit=prev_calculated-1;
//--- the main loop of calculations
   for(int i=limit;i<rates_total;i++)
     {
      ExtMiddBuffer[i]=ExtMABuffer[i];
      ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation*ExtStdDevBuffer[i]);
      ExtDownBuffer[i]=ExtMABuffer[i]-(InpDeviation*ExtStdDevBuffer[i]);
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
sergey1294:

J'ai écrit une telle situation, j'essaie de l'exécuter, le terminal se plante.

2010.07.22 13:43:55 StandardDeviationChannel (EURUSD,M1) Tableau hors limites dans 'StandardDeviationChannel.mq5'(114,51)

Veuillez indiquer où se trouvent les postes de la ligne 114 et 51 dans le code joint.
 
ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation*E xtStdDevBuffer[i]);
mis en évidence en rouge
 
sergey1294:
mis en évidence en rouge.

Apparemment, votre to_copy est clairement inférieur au rates_total.
 
mql5:
Apparemment, votre to_copy est clairement inférieur au rates_total.

Oui, to_copy=1.
 
Rosh:
Oui, to_copy=1.

et comment cela peut-il être corrigé ? si c'en est un, pourquoi est-ce que lorsque vous enlevez ces lignes

      ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation*ExtStdDevBuffer[i]);
      ExtDownBuffer[i]=ExtMABuffer[i]-(InpDeviation*ExtStdDevBuffer[i]);

l'indicateur commence à fonctionner et affiche МА

 
sergey1294:

et comment cela peut-il être corrigé ? si c'en est un, pourquoi est-ce que lorsque vous enlevez ces lignes

l'indicateur commence à fonctionner et affiche МА


Vous avez spécifié

#property indicator_buffers 4

et vous le réglez sur

   SetIndexBuffer(0,ExtUpBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtDownBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ExtMiddBuffer,INDICATOR_DATA);
   SetIndexBuffer(3,ExtMABuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,ExtStdDevBuffer,INDICATOR_CALCULATIONS);
 
mql5:
Vous avez souligné

#property indicator_buffers 4

mais vous l'avez fait.

Merci beaucoup, je n'avais pas remarqué une si petite chose, c'est bon maintenant.