Errori, bug, domande - pagina 59

 
Renat:

Fortunatamente, il problema delle vecchie configurazioni è alle spalle. 50 costruzioni fa è un tempo molto lungo e ci siamo permessi di cambiare formato diverse volte.

Per i broker abbiamo fornito non solo una rete di distribuzione distribuita, ma anche un repository centralizzato di tutte le distribuzioni su files.metaquotes.net - questo fondamentalmente risolve il problema degli aggiornamenti tempestivi di centinaia di copie di distribuzioni per diverse aziende.

In ogni caso, le mie scuse per questa sgradevolezza - sono sicuro che non accadrà più.

Inoltre, ora applicheremo un metodo ancora più avanzato per localizzare automaticamente e in modo sicuro i server di trading del broker quando le connessioni ai punti di accesso conosciuti falliscono. Questo risolverà fondamentalmente il problema della pubblicazione di liste di punti di accesso funzionanti.

Grazie a Dio Alpari è risolto, penso che la versione è ora disponibile lì sul sito 291. Resta per Admiral markets spiegare che non è necessario mantenere la vecchia versione sul sito - c'è una versione 237 che pesa 7 mb... :)
 
EQU:

Ragazzi, cos'è quel cursore... È sicuramente F7, sta saltando fuori...

Invece di osanna - solo parole...

e i tasti di scelta rapida - per favore - riportateli indietro... non è difficile... è un'abitudine - è stato disegnato per anni...


Per quanto riguarda i tasti di scelta rapida - accettato. Il compito è lì.

È un po' più complicato con il cursore. Ancora non è stato osservato nemmeno dalle azioni che hai menzionato.

 

Ho scritto una situazione del genere, provo ad eseguirlo, il terminale si blocca.

2010.07.22 13:43:55 StandardDeviationChannel (EURUSD,M1) Array out of range in 'StandardDeviationChannel.mq5' (114,51)

Ho preso un esempio dall'indicatore MACD nel set standard di indicatori personalizzati nella cartella ...\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:

Ho scritto una situazione del genere, provo ad eseguirlo, il terminale si blocca.

2010.07.22 13:43:55 StandardDeviationChannel (EURUSD,M1) Array out of range in 'StandardDeviationChannel.mq5'(114,51)

Si prega di indicare dove si trovano le posizioni della linea 114 e 51 nel codice allegato.
 
ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation*E xtStdDevBuffer[i]);
evidenziato in rosso
 
sergey1294:
evidenziato in rosso.

Sembra che il tuo to_copy sia chiaramente inferiore a rates_total.
 
mql5:
A quanto pare, il tuo to_copy è chiaramente inferiore a rates_total.

Sì, to_copy=1.
 
Rosh:
Sì, to_copy=1.

e come può essere risolto? se è uno, perché quando si rimuovono queste linee

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

l'indicatore entra in funzione e visualizza МА

 
sergey1294:

e come può essere risolto? se è uno, perché quando si rimuovono queste linee

l'indicatore entra in funzione e visualizza МА


Avete specificato

#property indicator_buffers 4

e lo si imposta su

   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:
Lei ha sottolineato

#property indicator_buffers 4

ma tu l'hai fatto.

Grazie mille, non avevo notato una cosa così piccola, ora è tutto a posto