Общие вопросы по разработке > Вопросы по языку

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
BugsDigger
Сообщения: 535
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 92 раза

Вопросы по языку

Непрочитанное сообщение BugsDigger » 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 и т.п. Пожалуйста, кто в курсе, "огласите весь список", если возможно.

Аватара пользователя
evge
Администратор
Сообщения: 1812
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

Re: Вопросы по языку

Непрочитанное сообщение evge » 12 ноя 2018, 09:47

Приветствую, что могу отвечу (я не разработчик АД)

BugsDigger писал(а):1. В описании языка нет многих вещей, например:
- логических операций (|| && == ! и т.д.)
- синтаксиса приведения типов


Операторы

Конкретнее: Операторы равенства

BugsDigger писал(а):5. Нет описания методов List. Из документации


List Class

List Class. Методы

BugsDigger писал(а):7. Не описана разница употребления положительных и отрицательных индексов ( [-1]/[1] ) в разных (каких?) случаях


Нет разницы, можно использовать оба варианта, как нравится.

Человекочитаемо [-1] [-2], т.е. на бар назад, на два бара назад.
Но привычнее [0] [1] [2] [3], ближе к программированию :), неотрицательный индекс.

BugsDigger писал(а):8. Нигде не сказано, в каком порядке писать параметры для вызова индикатора в скрипте: вроде по порядку объявления параметров индикатора?..


Там логично, что всё по порядку их описания. В том же порядке и задаем в коде.

BugsDigger писал(а):12. Вообще, можно ли создавать глобальные переменные, видимые в разных скриптах?


Глоб. переменные видны только в рамках созданного индикатора, стратегии. Есть конечно варианты с промежуточным хранением в файлах (например).

BugsDigger писал(а):13. Можно ли создавать параметры индикаторов кроме целых? А логические флаги, которые в настройке индикатора появлялись бы как checkbox?


Нет. Задавал я как то вопрос про задание параметром строки, но мне ответили сейчас нет (может подумают), а вообще т.к. нет необходимости в рамках использования АД4 таких типов для параметров.

С логическими проще, 0 - false, не 0 - true.

Но задавать такое пользователем конечно некрасиво, чекбокс был бы лучше конечно.

BugsDigger писал(а):14. В описании параметров индикаторов кроме имени присутствует комментарий. Казалось бы логичным, что в настройке индикатора должны появляться именно эти комменты, но там выводятся именно внутренние идентификаторы, которые пользователю мало что говорят. Это неудобно.


Как помню, они используются в стратегиях. Т.е. для стратегий они актуальны. В тестировании и оптимизации будет видно описание параметра.
никогда такого не было и вот опять

BugsDigger
Сообщения: 535
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 92 раза

Re: Вопросы по языку

Непрочитанное сообщение BugsDigger » 12 ноя 2018, 11:35

Привет, evge.
Спасибо за информацию.

> (я не разработчик АД)

Это мы понимаем. Разработчики постоянно прячутся почему-то... Даже официальный форум фактически закрыт как бы за ненадобностью...

>> Не описана разница употребления положительных и отрицательных индексов
> Нет разницы, можно использовать оба варианта.

Вот это да, никогда бы не подумал, честно говоря.

High Profit Trader
Сообщения: 80
Зарегистрирован: 23 мар 2018, 10:54
Поблагодарили: 2 раза

Re: Вопросы по языку

Непрочитанное сообщение High Profit Trader » 28 ноя 2018, 17:34

Да! Неожиданно обнаружил, что офиц. форума на сайте А-Д уже нет!!

Вот так сюрприз!!

Да и в целом АБ себя ведет странно. В банк-клиенте коры какие-то. Небанковские совсем коры.
Хотя конечно у Сбера кор еще больше и они еще более корочные и небанковские.
И вон сегодня ВТБ новость отмочил - в отчетности перепутали кредиты.
Видимо, это тренд - снижение уровня банковой грамотности в банках.

Аватара пользователя
Indigo-On
Сообщения: 61
Зарегистрирован: 28 ноя 2018, 18:44
Откуда: Russia
Благодарил (а): 25 раз
Поблагодарили: 9 раз

Re: Вопросы по языку

Непрочитанное сообщение Indigo-On » 29 ноя 2018, 13:53

BugsDigger писал(а):2. Опытным путем нащупал слово const, нигде не описанное в документации. Вопрос: влияет ли объявление переменной как const на производительность или без разницы?

На производительность не влияет, т.к. после компиляции код для
const double a = 1.3331;
и
double a = 1.3331;
будет идентичным. Компилятор только проверяет, чтобы переменной с const в программе не присваивалось значение повторно.

BugsDigger писал(а):13. Можно ли создавать параметры индикаторов кроме целых? А логические флаги, которые в настройке индикатора появлялись бы как checkbox?

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

BugsDigger
Сообщения: 535
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 92 раза

Re: Вопросы по языку

Непрочитанное сообщение BugsDigger » 03 дек 2018, 08:07

Привет, Indigo-On.
Спасибо за отклик.

>> const
> На производительность не влияет

ОК, понятно.

>> Можно ли создавать параметры индикаторов кроме целых?
> В скриптах я передаю параметры в AddParameter типа double, т.е. не целые.

Вот с этим-то у меня проблема: Проблема с вводом нецелых параметров индикаторов

В тестировании нецелые параметры работают (судя по выходным "картам" оптимизации), но когда я пытаюсь ввести нецелое значение просто в индикатор для вывода его поведения на графике, введенное нецелое значение параметра игнорируется, а вместо него используется дефолтное значение; если ввожу целое - да, принимает его нормально.

Аватара пользователя
Indigo-On
Сообщения: 61
Зарегистрирован: 28 ноя 2018, 18:44
Откуда: Russia
Благодарил (а): 25 раз
Поблагодарили: 9 раз

Re: Вопросы по языку

Непрочитанное сообщение Indigo-On » 03 дек 2018, 10:43

BugsDigger писал(а):Привет, Indigo-On.

Вот с этим-то у меня проблема: Проблема с вводом нецелых параметров индикаторов


Ответил в теме http://alfadirect4.ru/viewtopic.php?f=5&t=561


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя