MetaTrader 4 Client Terminal build 610 - страница 22

 
TarasBY:

Вы, как взрослый дяденька, умеете "набалтывать логику" себе на пользу. :)))

Старую справку я вам уже не приведу (у меня её нет). Будем отталкиваться от новых правил. В iBarShift() первым параметром нужно передать строку - с этим согласны? Если мы строковой переменной присваиваем значение NULL - это пустая строка (НИЧЕГО).

В том то и дело, что нет. NULL, согласно новой справке, является типом void. В старой он был хрен пойми что, вроде как интовый ноль. Тем не менее, преобразование типов не изменяет внутреннего содержания переменной. Поэтому, если я преобразовал к int и получил ноль, то внутренне представление - либо бинарный ноль, либо что-то, что обрезается и в итоге остается ноль (но этого, естественно, в справке нет).

Поэтому я призываю разработчиков разобраться с неопределенностью относительно константы NULL, а именно, пояснить в справочных файлах следующие моменты:

1) каким образом конкретно происходит преоббразование типов относительно в данном конкретном случае

2) если внутреннее представление NULL - действительно 0, то почему передача 0 и NULL в одну и ту же функцию приводит к разным результатам.

Либо объяснть мне, в чем конкретно я неправ.

--

Игорь, на самом деле, это не такой простой вопрос. Некоторые вещи в MQL обрабатываются достаточно произвольно, и это наглядно демонстрирует мой пример с изменением поведения NULL от билда к билду. Я не стремлюсь к тому, чтобы любыми средствами уличить MQ в ошибке, упаси б-же. Мне просто хочется, чтобы в такой сфере как язык программирования была установлена определенность. В данном частном случае: если некая константа изменила свое значение или поведение, это следует отразить в документации, а желательно - еще и оратить на это внимание пользователей.

Вспомним заповеди питона:

... Встретив двусмысленность, отбрось искушение угадать. Должен существовать один — и, желательно, только один — очевидный способ сделать это...


Мне кажется, иных подходов существовать не должно.

 
In_sider:

Прайс экшн, несколько самописанных скриптов и опять же несколько самописанных простых до нельзя вспомогательных советников.

Скрипты еще работают в новом бильде, а вот советники - нет.

Хотя компиллируются без ошибок.

Экзешники от старого 509 бильда тоже подвисают.

Вот и дергаешся тут от ваших корявых изделий. Вся стратегия коту под хвост.

Впрочем, от них на всех форумах дергаются, не только здесь.

Ну да ... примерно 95%
 

Вопрос, как в панели "терминал" отключить вкладки "маркет", "сигналы" и "библиотека" ?

Если такой возможности нет, большая просьба к разработчикам сделать соотвествующие опции.

 
In_sider:

Вопрос, как в панели "терминал" отключить вкладки "маркет", "сигналы" и "библиотека" ?

Если такой возможности нет, большая просьба к разработчикам сделать соотвествующие опции.

Всё это затеялось как раз для Маркета с Сигналами. Вывод - очевиден.
 
artmedia70:
Всё это затеялось как раз для Маркета с Сигналами. Вывод - очевиден.

А все эти навороты с Си подобными структурами типа ООП и привязкой к папкам виндоуз только ради этого ?

Их достаточно посмотреть на досуге после дождичка в четверг.

К тому же они, я сильно подозреваю, садят мобильный интернет и общее быстродействие.

 
In_sider:

А все эти навороты с Си подобными структурами типа ООП и привязкой к папкам виндоуз только ради этого ?

Их достаточно посмотреть на досуге после дождичка в четверг.

К тому же они, я сильно подозреваю, садят мобильный интернет и общее быстродействие.


Как минимум забивают логами и файлами истории системный диск ...
 
artmedia70:
Ну да ... примерно 95%


Ну да. Примерно 95%)
 
alsu:

В том то и дело, что нет. NULL, согласно новой справке, является типом void. В старой он был хрен пойми что, вроде как интовый ноль. Тем не менее, преобразование типов не изменяет внутреннего содержания переменной. Поэтому, если я преобразовал к int и получил ноль, то внутренне представление - либо бинарный ноль, либо что-то, что обрезается и в итоге остается ноль (но этого, естественно, в справке нет).

Вспомним заповеди питона:

... Встретив двусмысленность, отбрось искушение угадать. Должен существовать один — и, желательно, только один — очевидный способ сделать это...


Мне кажется, иных подходов существовать не должно.


Что-то мне подсказывает, что простая комбинация из двух операторов поможет:

1. color C=NULL;

2. рисуем что-нибудь с цветом заливки С.

 
tara:

Что-то мне подсказывает, что простая комбинация из двух операторов поможет:

1. color C=NULL;

2. рисуем что-нибудь с цветом заливки С.


Это тольк если NULL 32-битное, как color, и действительно не изменяет внутреннее значение при преобразовании типа... Фишка в том, что этот самый процесс преобразования мог быть написан разработчиками как угодно, причем нам неизвестно, как именно.
 
alsu:

Это тольк если NULL 32-битное, как color, и действительно не изменяет внутреннее значение при преобразовании типа... Фишка в том, что этот самый процесс преобразования мог быть написан разработчиками как угодно, причем нам неизвестно, как именно.

Согласен, но - чем мог :)

Я сейчас за Великой китайской стеной, доступа к 600-м версиям нет.