Обсуждение статьи "Готовые шаблоны для подключения индикаторов в экспертах (Часть 1): Осцилляторы"

 

Опубликована статья Готовые шаблоны для подключения индикаторов в экспертах (Часть 1): Осцилляторы:

В статье рассмотрим стандартные индикаторы из категории осцилляторов. Создадим готовые к применению шаблоны их использования в советниках — объявление и установка параметров, инициализация, деинициализация индикаторов и получение данных и сигналов из индикаторных буферов в советниках.

Подключение индикаторов к советнику и использование данных индикаторного буфера в советнике является достаточно простой задачей, но требующей каждый раз обращаться к справочным материалам. Нужно помнить все параметры, передаваемые в функцию создания индикатора, оформить какие-то из них в виде входных параметров советника, организовать проверку их корректности, и т.д. Для получения данных нужно написать функции, возвращающие нужные данные с нужного бара. Всё это требует каждый раз тратить время на обращение к справке, ввод в советник требуемых переменных, написание функций получения и контроля данных на предмет определения сигналов и т.п.

Целью данной статьи является создание шаблонов для подключения индикаторов к советникам. Рассмотрим индикаторы из категории осцилляторов, их входные переменные, создание хэндла индикатора и получение от него требуемых данных.


Автор: Artyom Trishkin

 
Зачем из уинт в инт и зачем вообще такая конструкция? 
//--- Устанавливаем и корректируем при необходимости период расчёта
   period=int(InpPeriod<1 ? 14 : InpPeriod);

Понятно что инпут константа. Просто не представляю задачу. 

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

 
Valeriy Yastremskiy #:
Зачем из уинт в инт и зачем вообще такая конструкция? 

Понятно что инпут константа. Просто не представляю задачу. 

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

InpPeriod - входная переменная input. Минус там никак не поставить. Ноль можно. Такие проверки (на меньше единицы) - привычка не сравнивать напрямую числа с нулём - если вдруг в другой подобной конструкции будет входная переменная с типом double, то это мне позволит избежать прямого сравнения двух double-чисел. Да, это "защита от дурака". В первую очередь от себя самого - чтобы делать меньше ошибок при переносе кода в другие места.

 
Artyom Trishkin #:

InpPeriod - входная переменная input. Минус там никак не поставить. Ноль можно. Такие проверки (на меньше единицы) - привычка не сравнивать напрямую числа с нулём - если вдруг в другой подобной конструкции будет входная переменная с типом double, то это мне позволит избежать прямого сравнения двух double-чисел. Да, это "защита от дурака". В первую очередь от себя самого - чтобы делать меньше ошибок при переносе кода в другие места.

Ну да, уинт же))) Минус не поставить)))

 
Valeriy Yastremskiy #:

Ну да, уинт же))) Минус не поставить)))

А ноль?

 
Alexey Viktorov #:

А ноль?

А ноль можно. Но для индикатора будет установлено значение по умолчанию в этом случае.

Только вот смысл вопроса твоего был в чём-то ином - ты это и так знаешь про ноль.

Но гадать не буду

 
Artyom Trishkin #:

А ноль можно. Но для индикатора будет установлено значение по умолчанию в этом случае.

Только вот смысл вопроса твоего был в чём-то ином - ты это и так знаешь про ноль.

Но гадать не буду

Правильно. Гадать не нужно. Просто был вопрос Валерию. Минус не поставить, а ноль?

 
Alexey Viktorov #:

А ноль?

Так ноль это текущий))) Как защита от дурака нормальная конструкция)))

А можно маску на клаву наложить, что бы нажимались только цифры, а остальные клавиши не нажимались))) Для солдат в 90х делал))) И при нажатии на другие клавиши, появлялось предупреждение большими буквами)

Причина обращения: