Ошибки, баги, вопросы - страница 1541 1...153415351536153715381539154015411542154315441545154615471548...3775 Новый комментарий Uladzimir Izerski 2016.03.30 15:26 #15401 Karputov Vladimir: Вам нужен аналог правого клика по графику и "Обновить" для индикатора?Да именно так. Чтобы мог рассчитаться индикатор, но не обращаться к иниту. ChartRedraw() это не выполняет.Вызов в OnChartEvent Artyom Trishkin 2016.03.30 17:33 #15402 Владимир: Да именно так. Чтобы мог рассчитаться индикатор, но не обращаться к иниту. ChartRedraw() это не выполняет.Вызов в OnChartEvent Сделайте весь цикл функцией, и вызывайте с нужными параметрами откуда хотите. [Удален] 2016.03.30 19:18 #15403 Владимир: Да именно так. Чтобы мог рассчитаться индикатор, но не обращаться к иниту. ChartRedraw() это не выполняет.Вызов в OnChartEvent Для четверки static int FullOnCalculate( void ) { long volume[]; int spread[]; ArraySetAsSeries(volume, TRUE); ArraySetAsSeries(spread, TRUE); const int Size = MathMin(CopyTickVolume(Symbol(), Period(), 0, Bars, volume), CopySpread(Symbol(), Period(), 0, Bars, spread)); return(OnCalculate(Size, 0, Time, Open, High, Low, Close, Volume, volume, spread)); }Для пятерки аналогично. [Удален] 2016.03.30 22:42 #15404 Почему этот класс компилируется под MT4, но не компилируется под MT5?class CHARTOBJECT { public: template <typename T> #ifdef __MQL4__ void SetProperty( const int id, const T Value, const int Modifier = 0 ) const #else #endif #ifdef __MQL5__ void SetProperty( const ENUM_OBJECT_PROPERTY_STRING id, const T Value, const int Modifier = 0 ) const #endif { const string sType = typename(T); if (sType == "double") ::ObjectSetDouble(0, "", id, Modifier, (double)Value); else if (sType == "string") ::ObjectSetString(0, "", id, Modifier, (string)Value); else ::ObjectSetInteger(0, "", id, Modifier, (long)Value); return; } virtual void operator =( const string Value ) const { this.SetProperty(OBJPROP_TEXT, Value); return; } }; TheXpert 2016.03.30 22:49 #15405 А там #else или #endif не лишние случаем? [Удален] 2016.03.30 22:56 #15406 Комбинатор: А там #else или #endif не лишние случаем?В строке #else #endif если убираю #endif, то не компилируется. Почему - тоже не знаю.Но даже если убрать всю условную компиляцию, под MT5 не будет компилироваться, а под MT4 - будет. [Удален] 2016.03.30 23:41 #15407 Alexey Kozitsyn: Что такое мультитерминал?)Это версия терминала МТ4, один экземпляр которого якобы может одновременно работать с несколькими счетами. Установочный файл fcmt4multisetup_ru.exe я скачал на сайте FXCluba. Мб, это вообше их разработка, и я обращаюсь не по адресу? Где скачать чистый МТ4? Новая версия платформы MetaTrader Невозможно скачать мт4 [Удален] 2016.03.31 06:35 #15408 comp: Почему этот класс компилируется под MT4, но не компилируется под MT5?Если в этом классе удалить определение оператора, то под MT5 начинает компилироваться. Похоже, это баг компилятора пятерки. coderex 2016.03.31 06:50 #15409 comp: Если в этом классе удалить определение оператора, то под MT5 начинает компилироваться. Похоже, это баг компилятора пятерки.Попробуйте заменить__MQL5__на__MQL5BUILD__ [Удален] 2016.03.31 07:10 #15410 coderex: Попробуйте заменить__MQL5__на__MQL5BUILD__Чтобы не смущала условная компиляция, убрал ееclass CHARTOBJECT { public: template <typename T> // для MT4 надо заменить ENUM_OBJECT_PROPERTY_STRING на int void SetProperty( const ENUM_OBJECT_PROPERTY_STRING id, const T Value, const int Modifier = 0 ) const { const string sType = typename(T); if (sType == "double") ::ObjectSetDouble(0, "", id, Modifier, (double)Value); else if (sType == "string") ::ObjectSetString(0, "", id, Modifier, (string)Value); else ::ObjectSetInteger(0, "", id, Modifier, (long)Value); return; } virtual void operator =( const string Value ) const { this.SetProperty(OBJPROP_TEXT, Value); return; } };Пятерка не может скомпилировать, четверка - OK. 1...153415351536153715381539154015411542154315441545154615471548...3775 Новый комментарий
Вам нужен аналог правого клика по графику и "Обновить" для индикатора?
Да именно так. Чтобы мог рассчитаться индикатор, но не обращаться к иниту. ChartRedraw() это не выполняет.
Вызов в OnChartEvent
Да именно так. Чтобы мог рассчитаться индикатор, но не обращаться к иниту. ChartRedraw() это не выполняет.
Вызов в OnChartEvent
Да именно так. Чтобы мог рассчитаться индикатор, но не обращаться к иниту. ChartRedraw() это не выполняет.
Вызов в OnChartEvent
Для четверки
Для пятерки аналогично.
Почему этот класс компилируется под MT4, но не компилируется под MT5?
А там #else или #endif не лишние случаем?
В строке #else #endif если убираю #endif, то не компилируется. Почему - тоже не знаю.
Но даже если убрать всю условную компиляцию, под MT5 не будет компилироваться, а под MT4 - будет.
Что такое мультитерминал?)
Почему этот класс компилируется под MT4, но не компилируется под MT5?
Если в этом классе удалить определение оператора, то под MT5 начинает компилироваться. Похоже, это баг компилятора пятерки.
Попробуйте заменить
__MQL5__
на
__MQL5BUILD__
Попробуйте заменить
__MQL5__
на
__MQL5BUILD__
Чтобы не смущала условная компиляция, убрал ее
Пятерка не может скомпилировать, четверка - OK.