Вопросы по языку
Добавлено: 12 ноя 2018, 08:50
Привет всем.
Есть вопросы по языку и доступным "системным" функциям/методам.
К сожалению, документация на этот счет достаточно скупа и неполна. Возможно, авторы считают, что программисты .NET и так догадаются, но лично я на .NET в жизни ни строчки не написал, язык и библиотек не знаю. (М.б. стоит открыть специальный раздел форума на эту тему?)
Дальше вопросы (и замечания к документации, которые, надеюсь, как-то помогут разработчикам её улучшить):
1. В описании языка нет многих вещей, например:
- логических операций (|| && == ! и т.д.)
- синтаксиса приведения типов
2. Опытным путем нащупал слово const, нигде не описанное в документации. Вопрос: влияет ли объявление переменной как const на производительность или без разницы?
3. Производительность: лучше ли присваивать значения из рядов промежуточной локальной переменной: (int i=Some[0];) для многократного использования по ходу вычислений или без разницы?
4. Какие у DateTime есть доступные функции? В документации на этот счет ничего нет. (Сам нашел, например, нужный мне DayOfYear.)
5. Нет описания методов List. Из документации:
AddGlobalVariable("DataList", Types.DoubleList);
}
function Evaluate()
{
DataList.Add(Input[0]);
if ( CurrentIndex >= Period )
DataList.RemoveAt(0);
SMATest = DataList.Average(x => x);
Видны Add, RemoveAt, Average. Что есть еще?
Что за странный параметр в Average? (При компиляции (ошибочного) выражения с '>=' (вместо '=>'), компилятор говорит про лямбда-ф-цию, т.е. намёк понят, но в документации об этом ничего нет.
6. Ничего не сказано о форматировании переменных для логов (ведущие нули/пробелы, точность плавающей точки, формат даты/времени и т.п.). Нашел сам в доках по .NET, интернет не подводит, но неплохо было бы упомянуть в документации хотя бы в виде ссылки на внешний информационный ресурс.
7. Не описана разница употребления положительных и отрицательных индексов ( [-1]/[1] ) в разных (каких?) случаях.
Например, в тексте Momentum:
function OnUpdate()
{
var a = MOMENTUM(Input1, Period);
/// ПРАВИЛО 1
if ( a[0] >= 0 && a[1] < 0) // тут индкс [1]; в описаниях же везде -1...
{
EnterLong();
}
Похоже в индикаторах предыдущее значение имеет индекс -1, в стратегиях же 1,,,
8. Нигде не сказано, в каком порядке писать параметры для вызова индикатора в скрипте: вроде по порядку объявления параметров индикатора?..
9. Клавиши редактора не описаны (удалить строку, например). Ctrl+F сам нашел.
10. В редакторе стратегий:
- при сохранении/компиляции курсор перескакивает на начало текста
- компилятор ссылается на неправильные номера строк с ошибками
- двойной клик на ошибке не приводит к перемещению курсора на нужную строку.
В редакторе индикаторов таких проблем нет.
(Замечания относятся к предыдущей версии, на самой последней еще не проверял, но что-то подсказывает, что вряд ли что измениловсь).
11. Желательна "системная" глобальная переменная режимов "тестирование/оптимизация/всё остальное".
Было бы очень полезно, например, для автоматического выбора уровня логгирования в сценариях.
12. Вообще, можно ли создавать глобальные переменные, видимые в разных скриптах?
13. Можно ли создавать параметры индикаторов кроме целых? А логические флаги, которые в настройке индикатора появлялись бы как checkbox?
14. В описании параметров индикаторов кроме имени присутствует комментарий. Казалось бы логичным, что в настройке индикатора должны появляться именно эти комменты, но там выводятся именно внутренние идентификаторы, которые пользователю мало что говорят. Это неудобно.
15. Логи (я использую WriteLine) пишутся невероятно медленно. Можно как-то ускорить?
16. В текстах на сайте (спасибо за них) можно найти всякие недокументированные ф-ции, например, файловые, из какого-то волшебного System и т.п. Пожалуйста, кто в курсе, "огласите весь список", если возможно.
Есть вопросы по языку и доступным "системным" функциям/методам.
К сожалению, документация на этот счет достаточно скупа и неполна. Возможно, авторы считают, что программисты .NET и так догадаются, но лично я на .NET в жизни ни строчки не написал, язык и библиотек не знаю. (М.б. стоит открыть специальный раздел форума на эту тему?)
Дальше вопросы (и замечания к документации, которые, надеюсь, как-то помогут разработчикам её улучшить):
1. В описании языка нет многих вещей, например:
- логических операций (|| && == ! и т.д.)
- синтаксиса приведения типов
2. Опытным путем нащупал слово const, нигде не описанное в документации. Вопрос: влияет ли объявление переменной как const на производительность или без разницы?
3. Производительность: лучше ли присваивать значения из рядов промежуточной локальной переменной: (int i=Some[0];) для многократного использования по ходу вычислений или без разницы?
4. Какие у DateTime есть доступные функции? В документации на этот счет ничего нет. (Сам нашел, например, нужный мне DayOfYear.)
5. Нет описания методов List. Из документации:
AddGlobalVariable("DataList", Types.DoubleList);
}
function Evaluate()
{
DataList.Add(Input[0]);
if ( CurrentIndex >= Period )
DataList.RemoveAt(0);
SMATest = DataList.Average(x => x);
Видны Add, RemoveAt, Average. Что есть еще?
Что за странный параметр в Average? (При компиляции (ошибочного) выражения с '>=' (вместо '=>'), компилятор говорит про лямбда-ф-цию, т.е. намёк понят, но в документации об этом ничего нет.
6. Ничего не сказано о форматировании переменных для логов (ведущие нули/пробелы, точность плавающей точки, формат даты/времени и т.п.). Нашел сам в доках по .NET, интернет не подводит, но неплохо было бы упомянуть в документации хотя бы в виде ссылки на внешний информационный ресурс.
7. Не описана разница употребления положительных и отрицательных индексов ( [-1]/[1] ) в разных (каких?) случаях.
Например, в тексте Momentum:
function OnUpdate()
{
var a = MOMENTUM(Input1, Period);
/// ПРАВИЛО 1
if ( a[0] >= 0 && a[1] < 0) // тут индкс [1]; в описаниях же везде -1...
{
EnterLong();
}
Похоже в индикаторах предыдущее значение имеет индекс -1, в стратегиях же 1,,,
8. Нигде не сказано, в каком порядке писать параметры для вызова индикатора в скрипте: вроде по порядку объявления параметров индикатора?..
9. Клавиши редактора не описаны (удалить строку, например). Ctrl+F сам нашел.
10. В редакторе стратегий:
- при сохранении/компиляции курсор перескакивает на начало текста
- компилятор ссылается на неправильные номера строк с ошибками
- двойной клик на ошибке не приводит к перемещению курсора на нужную строку.
В редакторе индикаторов таких проблем нет.
(Замечания относятся к предыдущей версии, на самой последней еще не проверял, но что-то подсказывает, что вряд ли что измениловсь).
11. Желательна "системная" глобальная переменная режимов "тестирование/оптимизация/всё остальное".
Было бы очень полезно, например, для автоматического выбора уровня логгирования в сценариях.
12. Вообще, можно ли создавать глобальные переменные, видимые в разных скриптах?
13. Можно ли создавать параметры индикаторов кроме целых? А логические флаги, которые в настройке индикатора появлялись бы как checkbox?
14. В описании параметров индикаторов кроме имени присутствует комментарий. Казалось бы логичным, что в настройке индикатора должны появляться именно эти комменты, но там выводятся именно внутренние идентификаторы, которые пользователю мало что говорят. Это неудобно.
15. Логи (я использую WriteLine) пишутся невероятно медленно. Можно как-то ускорить?
16. В текстах на сайте (спасибо за них) можно найти всякие недокументированные ф-ции, например, файловые, из какого-то волшебного System и т.п. Пожалуйста, кто в курсе, "огласите весь список", если возможно.