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

 

Всем привет.

Подскажите можно ли как нибудь убрать с графика окно индикатора появляющееся при включении визуализации в тестере стратегий?

Cгенерирован при помощи wizarda в MT5.

В документации MQL5 вычитал, что IndicatoRelease не работает в тестере. (Все равно пробовал вставить эту функцию в OnDeinit начинает ругаться, что хэндл не объявлен. Объявляю его, выдает другие ошибки.)

Есть ли другой вариант?

 
Ahmet Garyagdyyev:

Всем привет.

Подскажите можно ли как нибудь убрать с графика окно индикатора появляющееся при включении визуализации в тестере стратегий?

Cгенерирован при помощи wizarda в MT5.

В документации MQL5 вычитал, что IndicatoRelease не работает в тестере. (Все равно пробовал вставить эту функцию в OnDeinit начинает ругаться, что хэндл не объявлен. Объявляю его, выдает другие ошибки.)

Есть ли другой вариант?


Можно сменить шаблон со всеми индикаторами, на любой из предварительно сохраненных Вами.

 
A100:

В итоге получается следующая таблица

VS и gcc давно считаются эталонными* (или по крайней мере в значительной степени менее подверженными косякам), чем Borland. Я сам пользовался Borland-ом много лет, но исходя из других его преимуществ.

PS. * - это не мое личное мнение; обсуждать его не буду.

 

Коллеги, кто-нибудь встречал попытки реализовать STL с++ библиотеку (делая поправку на языковые возможности)? Предпочтительно с размещением в кодобазе, поиск говорит, что нет, но врдуг ... . Конечно же не всю, но какие-то базовые вещи: несколько нормальных контейнеров через шаблоны, да тот же auto_ptr (я конечно свой написал, но самонаписание таких примитивов - глупость).
Нафига стд мкл нешаблонная и зачем было выдумывать новые имена для методов/классов аналогов в STL не пойму.

 

Нашёл ошибку, я не буду вставлять компилируемый текст полностью, выдерну кусками из скрипта:

class Source : public CObject
{
public:
   upindex_t start, top, lstart, ltop;
};

CArrayObj sourcear;

do
{
   Source *new_src = new Source;
   new_src.start = last.start;
   new_src.top = last.top;
   new_src.lstart = prev_prev.start;
   new_src.ltop = prev_prev.top;
   if( ! sourcear.Add(new_src) )
      return;
}
while(...);

for(int i = 0;  i < sourcear.Total();  ++ i)
{
   Source cursrc = (Source*)sourcear.At(i);  //!!!!! Это не вызывает ошибки во время компиляции
}

Т.е. катстуем: CObject*  --> Source*  -->  Source

Или это какой-то хитрый  MQL Specific?


ЗЫ: и такую строку съедает:

Source new_src = new Source;

Ерунда какая-то. Копирующих конс-ов/операторов в языке нет, я не разыменовывал. Что здесь происходит?

 
pavlick_:

Или это какой-то хитрый  MQL Specific?

class A {};

void OnStart()
{
  A a = new A;
}

Срабатывает оператор копирования по-умолчанию.

 
fxsaber:

Срабатывает оператор копирования по-умолчанию.

Если не сложно, где почитать?

 

Подскажите как можно считывать информацию с емайла или смс с помощью MQL4/5. Напр. получаю информацию-сигнал на емайл, советник считывает и открывает/закрывает позицию.

 
fxsaber:

Срабатывает оператор копирования по-умолчанию.

В доках даже такое нашёл (внимание на 3ю строку снизу):

https://www.mql5.com/ru/docs/basis/types/casting

class CBar { };
class CFoo : public CBar { };
 
void OnStart()
  {
   CBar bar;    
//--- динамическое приведение типа указателя *bar к указателю *foo разрешено 
   CFoo *foo = dynamic_cast<CFoo *>(&bar); // критической ошибки выполнения не возникнет   
   Print(foo);                             // foo=NULL      
//--- попытка явного приведения ссылки объекта типа Bar к объекту типа Foo запрещено
   foo=(CFoo *)&bar;                       // возникнет критическая ошибка выполнения
   Print(foo);                             // эта строка не будет выполнена
  }

Помню, что можно было копировать (тупо в стиле memcpy) в простые структуры, но у меня ведь не простая структура.

 
pavlick_:

Помню, что можно было копировать (тупо в стиле memcpy) в простые структуры, но у меня ведь не простая структура.

MQL5 поменялся.