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

 
kaus_bonus:

а еще вопрос - мы запустили индикатор на 5 знаке, а затем переключили на брокера с  4 знаком. что будет с индикатором? разве он не должен при этом пересчитаться? ведь значения используемыъ цен абсолютно другие будут.

по-моему,косяк.

В МТ5 нет 4х значных котировок. А если в МТ4 то лучше в таких случаях использовать не предопределённые переменные, а SymbolInfoDouble, например.
SymbolInfoDouble - Получение рыночной информации - Справочник MQL4
SymbolInfoDouble - Получение рыночной информации - Справочник MQL4
  • docs.mql4.com
SymbolInfoDouble - Получение рыночной информации - Справочник MQL4
 
Alexey Viktorov:
В МТ5 нет 4х значных котировок. 


замените 5 и 4 значные на 3 и 2 значные. пример - XAUUSD  у альпари (3 знака)  и fxopen (2 знака). сменили брокера - причин для пересчета индикатора никаких.

да и вообще вы живете в какой-то другой вселенной,судя по всему. у инсты до сих пор 4 знака на мт5
 
kaus_bonus:


замените 5 и 4 значные на 3 и 2 значные. пример - XAUUSD  у альпари (3 знака)  и fxopen (2 знака). сменили брокера - причин для пересчета индикатора никаких.

да и вообще вы живете в какой-то другой вселенной,судя по всему. у инсты до сих пор 4 знака на мт5

Это точно... В нашей вселенной она не считается не только брокером, а даже приличной конторой.

Про золото не интересовался и потому не знал, спасибо за информацию. Выходит что и в МТ5 лучше пользоваться функциями, а не предопределёнными переменными.

 
Vitaly Muzichenko:
Вот за что не люблю библиотеки, что их нужно таскать хвостиком за каждой программой, а если с кем нужно поделиться файлом, то и библу нужно давать, что крайне не удобно и криво.
Выкладываете в кодобазу библу, а рядом с #include ссылку на нее.
 
Slava:

Копирование простых структур было сделано вынужденно из-за отсутствия юнионов.

Очень скоро будут нормальные union

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

Новая версия платформы MetaTrader 5 build 1595: доступ к ценовой истории

fxsaber, 2017.04.21 14:26

Вот это невозможно написать с помощью union
template <typename T1, typename T2>
void Copy( T1 &ObjectDst, const T2 &ObjectSrc )
{
   ObjectDst = (T1)ObjectSrc;
}
 
fxsaber:
И не должно быть возможно
 
Slava:
И не должно быть возможно
Но раньше такая возможность была!
 
Попробовал выкрутиться
template <typename T>
class CLASS_COPY
{
public:
  T Data;

  CLASS_COPY( const T &Value )
  {
    Data = Value;
  }
};

template <typename T1, typename T2>
void Copy( T1 &ObjectDst, const T2 &ObjectSrc )
{
   const CLASS_COPY<T2> Object(ObjectSrc);
   const CLASS_COPY<T1>* ObjectCopy = dynamic_cast<const CLASS_COPY<T1>*>(&Object);
   
   ObjectDst = ObjectCopy.Data; // invalid pointer access
}

Компилируется без проблем, но при выполнении вылетает с ошибкой. Как теперь Copy-функцию написать?

 

Перстали работать DLL-ки которые раньше работали. DLL-ки 64-х битные. Те же самые DLL-ки x32 на MT4 - работают.

Windows 10 Home (x64 based PC), 1703,   MT5 bild 1589
 
fxsaber:
Попробовал выкрутиться

Компилируется без проблем, но при выполнении вылетает с ошибкой. Как теперь Copy-функцию написать?

Если длл некритично, то memcpy. Или ждать union

Вообще конечно весело. Каст структур был самими разрабами назван штатной альтернативой union, теперь кастовать нельзя а объединений еще нет, так получается?