Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Для информации:
Для начала нужно понять, ЗАЧЕМ? И какая от этого польза?
Ну вы не хотите делать ссылки -- мы сделаем их сами.
Да, это ржака ) . Но на самом деле я даже не предполагал, что это может быть опубликовано в справке.
Может тогда уже расскажете о всех флагах?
Для информации:
Я не боюсь, я прекрасно понимаю, что это недорого. Просто неудобно.
Про этот момент поподробнее пожалуйста -- разве во время OnCalculate может быть перераспределение памяти?? Этож пипец.
Про между вызовами это понятно конечно.
Не в моих интересах иметь фичу, которая крешит индюки или вообще терминал, так что выкладывать буду максимально безопасный вариант.
Про этот момент поподробнее пожалуйста -- разве во время OnCalculate может быть перераспределение памяти?? Этож пипец.
Про этот момент поподробнее пожалуйста -- разве во время OnCalculate может быть перераспределение памяти?? Этож пипец.
Про между вызовами это понятно конечно.
Конечно речь об возможном перераспределении между вызовами.
Проблема в том, что кто-нибудь обязательно по ошибке или явно будет сохранять ссылку между вызовами, в 99% случаев все будет работать до момента креша. После чего будут вполне ожидаемые мысли "Метаквотс виноват".
Например, у нас такие мысли один товарищ транслировал и продолжает транслировать уже несколько лет, не в силах смириться с тем, что история между вызовами может подкачаться/измениться.
Конечно речь об возможном перераспределении между вызовами.
Проблема в том, что кто-нибудь обязательно по ошибке или явно будет сохранять ссылку между вызовами, в 99% случаев все будет работать до момента креша. После чего будут вполне ожидаемые мысли "Метаквотс виноват".
"Вины бояться - вперёд не ходить" (с)
И ещё: Лучше сожалеть о сделанном, чем о не сделанном.
Ренат, допустим я соглашусь, что ссылочные переменные - потенциальный источник проблем. Но ведь это практицки про любой инструмент можно сказать. Люди вона отвёртками в других людей иногда тыкают. Не запрещать же теперь отвёртки? И уж тем более бессмысленно просто снимать их с производства, поскольку и дома можно изготовить без особых проблем.
"Ссылки" как сущность mql крайне желательны, даже не в виде переменных, а в виде возможности вернуть ссылку ( lvalue ) из функции. Это позволит делать хотя бы реально быстрые левые индексаторы для контейнеров и даст множество всяких других дополнительных возможностей. Типа:
И ведь я понимаю, что обязательно найдутся желающие вернуть из функции ссылку на локальную переменную !
И что теперь? Забыть про ссылки, ибо дураки себе ими жизнь могут затруднить? :)
--
Вот такие вот ограничения mql5 (подобные отсутствию ссылок) иногда сильно мотивируют "сбежать в DLL", превратив MT5 просто в "рыночный драйвер" обеспечивающий связь с брокером. А ведь первоначальная идея была как раз противоположной - исключить необходимость использования внешних средств программирования, ибо "всё есть прямо здесь".
Обратного пути нет, так как мы нацелены на максимальную безопасность языка.
Работа с сырыми ссылками - это твердый и уверенный шаг к крешу. А падать программам с выносом всей системы виртуализации не позволено.
Наше решение полностью осознанное. MQL5 используется для написания программ, которые будут работать на огромном количестве компьютеров, причем без участия человека.
Вобщем кому надо, надеюсь принцип понятен. Реализацию я придержу пока, корысти для. Но она будет, и будет открытой.
Думаю не нужно объяснять, что ссылки на базовые типы, вроде int делаются гораздо легче и без особых проблем.
Единственный вопрос который вызывает сложности и вопросы в реализации -- область видимости базовой переменной. Здесь на самом деле очень широкое поле для реализаций и задумок.
________
Ну и для мотивации стоит заметить, что ссылки открывают целый пласт дополнительных возможностей, как то обертки например.
lvalue ссылки планируются...
Всех приветствую.
Интересно, что-то за восемь лет изменилось ?
Или по-прежнему адрес массива из OnCalculate() можно получить только путем использования msvcrt.dll и функции memcpy ?
Или все по-прежнему "тащат" через всю структуру классов ссылки на массивы (вариант - организуют свои массивы, и каждый раз копируют содержимое) ?