Ошибки, баги, вопросы - страница 59

 
Renat:

К счастью, проблема старых конфигов осталась позади. 50 билдов назад - это очень большой срок и мы себе несколько раз позволили менять форматы.

Для брокеров мы предоставили не только распределенную сеть по доставке дистрибутивов, но и централизованное хранилище всех дистрибутивов на files.metaquotes.net - это в корне решает проблему своевременного обновления сотен копий дистрибутивов для разных компаний.

 

В любом случае, приношу извинения за эту неприятность - уверен, что такого больше не повторится.

Кроме того, мы сейчас применим еще более прогрессивный метод автоматического и защищенного поиска торговых серверов брокера при неудаче подключений к известным точкам доступа. Это в корне решит проблему с публикацией списков рабочих точек доступа.

Славу Богу с Альпари разабрались, вроде теперь там релиз на сайте доступен 291. Осталось Admiral markets объяснить, что не стоит на сайте держать старую версию - там вообще 237 релиз весом в 7 mb... :)
 
EQU:

Ребят, что с курсором.. Однозначно - по F7 вылетает..

Вместо осанны - одни слова..

и хоткеи - плиз - верните.. несложно.. привычка - годами рисовалась..


Что касается хоткеев - принято. Задание есть.

С курсором немного сложнее. До сих пор не наблюдается даже по указанным вами действиям.

 

У меня такая ситуация, написал индикатор, запускаю, вылетает терминал. пишет такую ошибку

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

просто не могу сообразить где допускаю ошибку, по логике вроде все правильно прописал, брал пример с индикатора MACD в стандартном наборе пользовательских индикоторов из папки ...\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:

У меня такая ситуация, написал индикатор, запускаю, вылетает терминал. пишет такую ошибку

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

Укажите, где в приложенном коде находится 114 строка и 51 позиция.
 
ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation*ExtStdDevBuffer[i]);
выделил красным
 
sergey1294:
выделил красным

По все видимости, to_copy у Вас явно меньше rates_total.
 
mql5:
По все видимости, to_copy у Вас явно меньше rates_total.

Да, to_copy=1.
 
Rosh:
Да, to_copy=1.

и как это можно исправить? если оно равно единицы, то почему когда убираешь эти строки

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

то индикатор начинает работать и прекрасно отрисовывает МА

 
sergey1294:

и как это можно исправить? если оно равно единицы, то почему когда убираешь эти строки

то индикатор начинает работать и прекрасно отрисовывает МА


Вы указали

#property indicator_buffers 4

а выставили

   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:
Вы указали

#property indicator_buffers 4

а выставили

спасибо огромное, такую мелочь и не заметил, теперь все в порядке
Причина обращения: