Произвольный кастинг через запись/чтение бинарника... Тушите свет. Дальше можно не читать...
Там произвольный кастинг через union - любые простые структуры без кастомных конструкторов и операторов копирования. Для всех статей на этом ресурсе этот кастинг будет работать.
template <typename T>
class CASTING
{
public:
template <typename T1>
staticconst T Casting( const T1 &Value )
{
union CAST
{
T1 Value1;
const T Value2;
CAST( const T1 &Value)
{
this.Value1 = Value; // кастомный оператор может все испортить
}
};
const CAST Union(Value);
return(Union.Value2);
}
};
#define _C(A, B) CASTING<A>::Casting(B)
voidOnStart()
{
MqlTick Tick = {0};
Tick = _C(MqlTick, Tick); // Tick = (MqlTick)Tick;
}
Но кому хочется накрыть кастинг на 100% - через файлы. Есть выбор.
При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера; в противном случае возвращает -1 и массив не меняет размеры.
сейчас осталось только для индикаторов - один запрос и отваливаем с теми данными, которые есть. А подкачка работает себе.
У экспертов и скриптов немного по-другому. Там производится несколько попыток ожидания необходимых данных. Пока данные поступают, делаются попытки. Как только возникли проблемы со связью, сразу отваливаем
Возвращает общее количество сигналов, доступных в терминале
Кстати, рекомендую перед эти перебором (особенно при переключении с другого сервера или сразу после старта) кликнуть хоть раз на вкладку "Сигналы" терминала - это должно активировать подкачку актуальной базы данных.
О полной замене кастинга union'ом не говорилось.
Произвольный кастинг через запись/чтение бинарника... Тушите свет. Дальше можно не читать...
p.s. Глянул Ваш код:
Произвольный кастинг через запись/чтение бинарника... Тушите свет. Дальше можно не читать...
Там произвольный кастинг через union - любые простые структуры без кастомных конструкторов и операторов копирования. Для всех статей на этом ресурсе этот кастинг будет работать.
Но кому хочется накрыть кастинг на 100% - через файлы. Есть выбор.
Есть предложение лучше?
Очевидно не использовать кастомные конструкторы в структурах и операторы присваивания. Пишите простой код.
Популярна такая проверка
так вот это совсем не то же самое, что
Вообще-то ArrayResize() возвращает
Возвращаемое значение
При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера; в противном случае возвращает -1 и массив не меняет размеры.
Вообще-то ArrayResize() возвращает
сейчас осталось только для индикаторов - один запрос и отваливаем с теми данными, которые есть. А подкачка работает себе.
У экспертов и скриптов немного по-другому. Там производится несколько попыток ожидания необходимых данных. Пока данные поступают, делаются попытки. Как только возникли проблемы со связью, сразу отваливаем
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Регистрация участников на чемпионат MetaQuotes-Demо в мае
Vladimir Karputov, 2017.05.05 11:54
Добавлено. Да, нужно в цикле пробежаться по всей базе сигналов в терминале:
SignalBaseTotal
Возвращает общее количество сигналов, доступных в терминале
Кстати, рекомендую перед эти перебором (особенно при переключении с другого сервера или сразу после старта) кликнуть хоть раз на вкладку "Сигналы" терминала - это должно активировать подкачку актуальной базы данных.