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

 
piero:

подскажите в чем дело, не могу понять что за проблемы  стаймером?

Желательно приводить полные логи с момента добавления скрипа на чарт и до его завершения.

По указанному логу нет четкого указания:

  1. времени, когда был запущен скрипт
  2. тот ли это скрипт, не другой ли скрипт с дополнительной логикой внутри?
  3. это не в тестере?
 
как узнать, сколько строк в файле... в каждой строке при этом значения разделены знаком ";"
 

Я только начал осваивать Метатрейдер и MQL5. Пробую создать свой индикатор.

Решил сделать уровни сопротивления и поддержки на основе стандартного индикатора фракталы.

Кое-что переделал, а многое убрал или закомментировал. Получился вот такой код:

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrDeepPink
#property indicator_label1  "Level"
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//---- indicator buffers
double ExtBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtBuffer,INDICATOR_DATA);
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
// точность индикатора равна точности графика??
//---- sets first bar from what index will be drawn
//  PlotIndexSetInteger(0,PLOT_ARROW,217);
//  PlotIndexSetInteger(1,PLOT_ARROW,218);
//---- arrow shifts when drawing
//  PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,ExtArrowShift);
//  PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,-ExtArrowShift);
//---- sets drawing line empty value--
//  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
// PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- initialization done
  }
//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
  {
   int i,limit;
//---
   if(rates_total<5)
      return(0);
//---
   if(prev_calculated<7)
     {
      limit=2;
      //--- clean up arrays
      ArrayInitialize(ExtBuffer,EMPTY_VALUE);
     }
   else limit=rates_total-5;

   for(i=limit;i<rates_total-3 && !IsStopped();i++)
     {
      //---- Upper Fractal
      if(High[i]>High[i+1] && High[i]>High[i+2] && High[i]>=High[i-1] && High[i]>=High[i-2])
         ExtBuffer[i]=High[i];
      else ExtBuffer[i]=EMPTY_VALUE;

      //---- Lower Fractal
      if(Low[i]<Low[i+1] && Low[i]<Low[i+2] && Low[i]<=Low[i-1] && Low[i]<=Low[i-2])
         ExtBuffer[i]=Low[i];
      else ExtBuffer[i]=EMPTY_VALUE;
     }
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }

//+------------------------------------------------------------------+

При компиляции ошибок нет. Однако линии (уровни) не отрисовываются.

Подскажите, в чем может быть трабл?

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
Raven:

Подскажите, в чем может быть трабл?

минимум две точки должны быть на соседних барах, чтоб линия была видна.

Попробуйте

else ExtBuffer[i]=EMPTY_VALUE;//заменить на

else ExtBuffer[i]=ExtBuffer[i-1];

   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
// точность индикатора равна точности графика??

да.


зы: для кода на форуме есть замечательная кнопачка SRC, пользуйтесь)

 

при отправке ордера возникает ошибка.. В чем может быть причина? 

2012.02.08 19:15:22 pattern (EURUSD,M10) CTrade::PositionOpen: request buy 0.10 (null) at 1.32710 sl: 1.32530 tp: 1.33021 [invalid request]

 

Обновился на build 581.

Почему-то по EURUSD показания индикаторов объема AD и OBV сплошной линией. Картинка приложена.

 

По этой причине тестирование и оптимизация эксперта сошли на нет. 

 

Не получается установить наклонную надпись ( "Описание") на объект TREND .Сначала не получилось программно.

Потом обнаружил что и в ручную на линию надпись не поставить.Может что не так делаю..

void Trend(string name,double price)
{
      ObjectCreate(0,name,OBJ_TREND,0,TimeCurrent(),price,TimeCurrent()+10000,price);
      ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,true);
      ObjectSetString(0,name,OBJPROP_TEXT,DoubleToString(price,_Digits));
      ObjectSetInteger(0,name,OBJPROP_COLOR,clrLimeGreen);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
      ObjectSetString(0,name,OBJPROP_FONT,"Arial");
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
}

 

 В МТ4 :

 

 

На код:

class Test1
{
    public:
        void Test1(int i) {}
};

class Test2: public Test1
{
    public:
        void Test2(int i) {}
};


получаю ошибку:

'Test1' - wrong parameters count    test.mqh    10    8

Вопрос где-то здесь обсуждался, но решение я не нашел.

"Решается" так:

class Test1
{
    protected:
        void Test1() {}
    public:
        void Test1(int i) {}
};

class Test2: public Test1
{
    public:
        void Test2(int i) {}
};

, но как-то это неправильно.

Что я делаю не так?

 
Karlson:

Не получается установить наклонную надпись ( "Описание") на объект TREND .Сначала не получилось программно.

Потом обнаружил что и в ручную на линию надпись не поставить.Может что не так делаю..

Нажмите правой кнопкой мыши на графике. В контекстном меню нажмите => Свойства. Откроется окно "Свойства". Во вкладке "Показывать" поставьте флажок "Показывать описания объектов". Окно "Свойства" можно вызвать также нажатием клавиши F8.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

После того как стал сервер от MIGBank-Demo, появились постоянные проблемы с соединением, в данный момент не может соединиться.



Причина обращения: