Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1365

 

Как считаете, что лучше рассчитать:

//+------------------------------------------------------------------+
//| Расчет цены                                                      |
//+------------------------------------------------------------------+
int CNewBar::PriceHL2(void)
  {
   double pr;
   int res=ArrayResize(this.m_pr_hl2,this.m_rt);
   for(int b=this.m_rt-this.m_pc; b>0; b--)
     {
      pr=MathAbs((iHigh(this.m_symbol,this.m_timeframe,b) + iLow(this.m_symbol,this.m_timeframe,b))/2);
      m_pr_hl2[this.m_rt-b]=pr;//<0 ? NULL : pr;
     }
   return(res);
  }

Или лучше вытащить через

int  CopyHigh( 
int  CopyLow( 
 
iCustom индикатор можно как то выводить в веб версии терминала?
 

Как объявить класс для того чтобы класс d[].m[]; стал публичным

class CSMA_Greed : public CObject
  {
   CMAOnArray        chsma;
   struct SDoubleArray { double       m[];};
   string            m_symbol;
   ENUM_TIMEFRAMES   m_timeframe;
   int               m_max_period;
   int               rt,prv;
   double            temp;
   string            Symbol(void)         { return this.m_symbol;    }
public:
   SDoubleArray      d[];
                     CSMA_Greed(const string symbol,const ENUM_TIMEFRAMES timeframe,const int max_period);
                    ~CSMA_Greed(void){};
   void              Init(int MaxMAperiod);
   void              Solve(const int aRatesTotal,const int aPrevCalc,const double  &aData[]);
  };

Получается массив есть , а вытащить не могу

cg.d[1199].m[3720]
 

Интересно 

создал значит в OnInit()

   CNewBar *nb = new CNewBar(Symbol(), n_period);
      if(nb==NULL)
         continue;
      if(!list_new_bar.Add(nb))
        {
         delete nb;
         continue;
        }


Скажите пожалуйста нагружает ли систему объявление в последующих функциях параметр

CNewBar* nb = list_new_bar.At(i);
      if(nb == NULL)
         continue;
 
Mikhail Toptunov #:

Интересно 

создал значит в OnInit()


Скажите пожалуйста нагружает ли систему объявление в последующих функциях параметр

Нет. В последующих функциях вы не создаёте новый, а просто из списка получаете указатель на уже созданный в OnInit() объект.

 
Здравствуйте. Как на mql5 сформулировать условие для открытия сделки? Условие: цена не изменилась за последние N баров на определенном таймфрейме.
 
Доброго!
Не заходил в приложение MetaTrader 5 больше трех месяцев(был в командировке где отсутствует связь). Теперь не могу войти совсем в профиль счета.
Как можно снова пользоваться счетом? Или хотя бы вывести из него средства?
 
knoughr #:

Где-то на листочке у Вас записан сайт брокера, логин и пароль для входа в личный кабинет. Это тот листок, на который Вы бережно записали всю эту информацию при регистрации. Ведь есть у Вас такой листок, правда? Тогда всё просто, в личном кабинете делайте всё, что Вам нужно: пополняйте, выводите, открывайте новые счета, меняйте пароль на старых.

А если нет - кто не спрятался, я не виноват.
 

А может кто подсказать как найти максимальное или минимальное значение в массиве если у массива пустые значения определенны как EMPTY_VALUE.


То есть такая функция не работает.

//+------------------------------------------------------------------+
//| Получим High для заданного номера бара                           |
//+------------------------------------------------------------------+
double CNewBar::iHighMax(int ot,int bands)
  {
   double result=-1;
   result=m_ExtLowerBuffer[ArrayMaximum(m_ExtLowerBuffer,ot,bands)];
   return(result);
  }

Если меняю  EMPTY_VALUE на NULL , тоже не воспринимает.

Может есть обход полегче для системы, а то я щас начну городить китайский ребус)

Заранее благодарю Добрые Люди 

 
Mikhail Toptunov #:

А может кто подсказать как найти максимальное или минимальное значение в массиве если у массива пустые значения определенны как EMPTY_VALUE.


То есть такая функция не работает.

Если меняю  EMPTY_VALUE на NULL , тоже не воспринимает.

Может есть обход полегче для системы, а то я щас начну городить китайский ребус)

Заранее благодарю Добрые Люди 

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

Я терпеть не могу NULL и всегда в числовых значениях применяю 0.0 которое никогда не подведёт.

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