Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 799

 
Artyom Trishkin:
Мусор в буферах. Сначала нужно вписать пустое значение во все рисуемые буфера (если они стрелочные), и лишь затем уже выполнять расчёт индикатора. Я код не вижу с мобильного, точнее сказать не могу.

То есть сначала делать ArrayInitialize?

 
Roman Sharanov:

То есть сначала делать ArrayInitialize?

Это уже есть. 
В цикле индикатора нужно присваивать буферу значение "пустое значение" в ячейку буфера с индексом цикла.
 
Artyom Trishkin:
Это уже есть. 
В цикле индикатора нужно присваивать буферу значение "пустое значение" в ячейку буфера с индексом цикла.

ок, спасибо

 
Artyom Trishkin:

Да. Изучайте пример:

Спасибо, припаду к источнику знаний :-)


Это каждому массиву нужно в явном виде нулевое значение задавать?

С этим мусором можно бороться через PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0) ?

 
psyman:

Спасибо, припаду к источнику знаний :-)



Это каждому массиву нужно в явном виде нулевое значение задавать?

С этим мусором можно бороться через PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0) ?

Поставьте курсор на название функции в редакторе и нажмите F1, и явится чудо.
 
Скачал робота, с чем эта ошибка может быть связана?
У всех кто ставил бота все работает, у меня одного вот такое. Терминал переустанавливал, открывал от имени администратора, ничего не помогает

 
При компиляции ошибок и предупреждений нет. Правда позиции не открывает (открыл только 1 позицию в покупку и закрыл её по тейку). 

В чём проблема пока не знаю.

//+------------------------------------------------------------------+
//|                                    Test advisor on iDeMarker.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//------------------параметры советника -------------------------------
extern double lots=0.01; //
extern int Magic=1111678111;
extern int Slippage=1;
//double sell_level=0.7;
//double buy_level=0.3;

extern double StopLoss=50;
extern double TakeProfit=50;
extern double TrailingStop=30;
double SL,TP;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
   int ticket;
// int cnt,total;

// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;
   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Roman Sharanov:
Скачал робота, с чем эта ошибка может быть связана?
У всех кто ставил бота все работает, у меня одного вот такое. Терминал переустанавливал, открывал от имени администратора, ничего не помогает

Осталось только переустановить операционку, или сменить... сами знаете что.




Вы не правильно подумали. Я имел ввиду советник.

 
Alexey Viktorov:

Осталось только переустановить операционку, или сменить... сами знаете что.




Вы не правильно подумали. Я имел ввиду советник.

В чем причина?
 
Roman Sharanov:
В чем причина?

Я в таких случаях не пытаюсь разбираться и не пробую исправить. Всегда выбрасываю без сожаления и забываю.