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

Дважды два на два мы умножать умеем

- но на чём?

Как открыть файл для добавления в него текста ,чтобы старое содержимое не удалялось?
fellow:
Как открыть файл для добавления в него текста ,чтобы старое содержимое не удалялось?
FileSeek( int file_handle, 0, SEEK_END );

Повторюсь

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2014.01.25 16:22

Не работает список инициализации в следующем примере
class A {
public:
template<typename T> A( T b ) : a( b ) { /**/ }
        long a;
};

void OnStart()
{
        long l = 10;
        A a( l );
        Print( a.a ); //какое то большое случайное число, а должно быть 10
}

а если так

template<typename T> A( T b ) : a( b ) { a = b; }
то все нормально  

Заявка Начата: 2014.01.28 13:15, #940459

https://www.mql5.com/ru/users/A100/servicedesk/9488 

A100:

Повторюсь

Заявка Начата: 2014.01.28 13:15, #940459

https://www.mql5.com/ru/users/A100/servicedesk/9488 

Спасибо за сообщение, исправлено.
[Удален]

Добрый вечер.

Пишу индикатор. Нужно в одном индикаторе совместить три графических построения (indicator_buffers 3, indicator_plots 3): первое - обычная гистограмма MACD (DRAW_HISTOGRAM), второе и третье - визуальное не отображаются (DRAW_NONE). После написания в окне данных, как и должно, отображается информация из трех буферов, однако в подокне не видно гистограммы. В окне данных значения гистограммы указаны верно.

Вопрос. Можно ли вообще совместить в себе вышеперечисленные графические построения и, если можно, как сделать так, чтобы гистограмма была видна в подокне индикатора.

Файлы:
test3.mq5  5 kb

МТ4 выдаёт в лог ошибку: 

Compressor: invalid decompress block [54194 bytes]

Что это значит?

Tapochun:

Добрый вечер.

Пишу индикатор. Нужно в одном индикаторе совместить три графических построения (indicator_buffers 3, indicator_plots 3): первое - обычная гистограмма MACD (DRAW_HISTOGRAM), второе и третье - визуальное не отображаются (DRAW_NONE). После написания в окне данных, как и должно, отображается информация из трех буферов, однако в подокне не видно гистограммы. В окне данных значения гистограммы указаны верно.

Вопрос. Можно ли вообще совместить в себе вышеперечисленные графические построения и, если можно, как сделать так, чтобы гистограмма была видна в подокне индикатора.

Сделайте вот так:

#property indicator_plots   1


   SetIndexBuffer(1,ExtBuy,INDICATOR_CALCULATIONS);

   SetIndexBuffer(2,ExtSell,INDICATOR_CALCULATIONS);
ALXIMIKS:

Конструктор копирования и оператор присваивания вообще планируются хоть в каком-то будущем???


Конструктор копирования упоминается в справке https://www.mql5.com/ru/docs/basis/types/classes

Конструктор по умолчанию имеет специальное назначение при инициализации массива объектов своего класса. Конструктор, все параметры которого имеют значения по умолчанию, не является конструктором по умолчанию. Покажем это на примере:

//+------------------------------------------------------------------+
//| Класс с конструктором по умолчанию                               |
//+------------------------------------------------------------------+
class CFoo
  {
   datetime          m_call_time;     // время последнего обращения к объекту
public:
   //--- конструктор с параметром, имеющем значение по умолчанию, не является конструктором по умолчанию
                     CFoo(const datetime t=0){m_call_time=t;};
   //--- конструктор копирования 
                     CFoo(const CFoo &foo){m_call_time=foo.m_call_time;};
 
   string ToString(){return(TimeToString(m_call_time,TIME_DATE|TIME_SECONDS));};
  };

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
ALXIMIKS:

 оператор присваивания вообще планируются хоть в каком-то будущем???


Есть перегрузка https://www.mql5.com/ru/docs/basis/function/operationoverload

Для удобства чтения и написания кода разрешается перегрузка некоторых операций. Оператор перегрузки записывается с помощью ключевого слова operator. Разрешена перегрузка следующих операций:

  • бинарные +,-,/,*,%,<<,>>,==,!=,<,>,<=,>=,=,+=,-=,/=,*=,%=,&=,|=,^=,<<=,>>=,&&,||,&,|,^;
  • унарные +,-,++,--,!,~;
  • оператор присваивания =;
  • оператор индексации [].
Документация по MQL5: Основы языка / Функции / Перегрузка операций
Документация по MQL5: Основы языка / Функции / Перегрузка операций
  • www.mql5.com
Основы языка / Функции / Перегрузка операций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5