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

 

Прошу помощи, так и не смог разобраться в причинах.


Вот такой код по непонятной мне причине компилируется

class A {};

class B : public A
{
public:
  void f()
  {
    Print(__FUNCTION__);
  }
};

void OnStart()
{
  A a;
  
  ((B*)(&a)).f(); // OK
}

но падает при выполнении. Подумал, ну баг при компиляции - не беда.


Но потом пишу вот так

#property script_show_inputs

input string FileName = "Alpari_GBPAUD.ZIP";

#include <Zip\Zip.mqh> // https://www.mql5.com/ru/articles/1971

void OnStart()
{
  CZip Zip;

  Zip.LoadZipFromFile(FileName, 0);

  uchar Bytes[];

  ((CZipFile*)Zip.ElementAt(0)).GetUnpackFile(Bytes);
  Print("UnZip - unpack size " + (string)ArraySize(Bytes) + " bytes.");  
}


Мало того, что это компилируется, так это еще и успешно выполняется! Скорее всего, где-то туплю сильно, но так и не смог понять, почему это пашет без проблем.

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

 

Вылетает терминал (1881) при дебаге, если переменная представлена в двоичном формате

Проиграйте гифку, чтобы увидеть

Возможно, это относится только к union переменным

 
Nikolai Semko:

Вылетает терминал (1881) при дебаге, если переменная представлена в двоичном формате

Проиграйте гифку, чтобы увидеть

Возможно, это относится только к union переменным

Спасибо за сообщение.

Исправил.
Исправление войдёт в следующий билд.

 
fxsaber:

Прошу помощи, так и не смог разобраться в причинах.


Вот такой код по непонятной мне причине компилируется

но падает при выполнении. Подумал, ну баг при компиляции - не беда.

...

Вы пытаетесь указатель на объект типа А привести к указателю на объект типа B, что является явной ошибкой, т.к. A не наследуется от B
 
Ilyas:
Вы пытаетесь указатель на объект типа А привести к указателю на объект типа B, что является явной ошибкой, т.к. A не наследуется от B

Это я понимаю. Но совсем не ясно, почему это же действие в примере с ZIP-библой работает. Там точно такое же привидение.

ЗЫ Разобрался.

 

Подсветка пропадает... потом появляется сновa


Файлы:
Error1.mqh  1 kb
 

Столкнулся с такой проблемой, как разница результатов тестирования (и при работе на реале тоже) при тестировании на четырех и пяти знаке (особенно на малых ТМ), в МТ4. Результаты существенно отличаются (распознавание пяти и четырех знаков в советнике заложено), по крайней мере существенно увеличивается количество сделок. Кто знает или аргументировано предполагает причину? Может зависит не от знака, а от типа исполнения ордеров- обычное и рыночное? 

P.S. Котировки, в обоих случаях загружались через Tisckstory.


Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Добрый день. Не подскажите, можно ли изменить настройки отображения индикатора из кода эксперта? Например, цвет или толщину линий. Заранее спасибо.
 
SuhanovDM94:
Добрый день. Не подскажите, можно ли изменить настройки отображения индикатора из кода эксперта? Например, цвет или толщину линий. Заранее спасибо.

Можно, но

  1. Только в момент создания индикатра
  2. Только если в индикаторе настройки цвета и линии вынесены во входные параметры (пример такого индикатора Custom Moving Average Inputs)

 
SuhanovDM94:
Добрый день. Не подскажите, можно ли изменить настройки отображения индикатора из кода эксперта? Например, цвет или толщину линий. Заранее спасибо.

А зачем вам менять цвет и толщину в эксперте? На работу онного это ни как не влияет. Для картинки? Так меняйте в шаблоне, в настройках индикатора.

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