Объявление пользовательских переменных в ThinkScript

Пользовательские переменные ничем не отличаются от обычных переменных, но вот объявить их нужно немного иначе.

Что вообще такое пользовательские переменные? – это переменные значение которых можно изменить без изменения самого кода. Это как раз то, что вы видите в параметрах индикатора. Возьмем к примеру индикатор простого скользящего среднего. Такой индикатор можно написать без параметров, указать 1 раз период и не давать пользователю его поменять, а можно вынести период в параметры индикатора и тогда пользователь сам сможет выбрать нужный ему период.

В этом примере мы объявили переменную length. Как видите зарезервированное слово теперь у нас не def, а input. Вот и все отличия в объявлении, после того как вы напишите эту строку в индикаторе, в параметрах появится переменная length и значение 10. Которое можно изменить.

В дальнейшем эту переменную используем, как и другую переменную, отличий нет.

Выше представлен код индикатора простой скользящей средней. С первой строкой разобрались. Вторая строка кода и тут мы встречаем не знакомое слово plot. Это тоже объявление переменной, но используя слово plot мы говорим что хотим что бы это значение не просто хранилось в памяти компьютера, а еще и отображалось на графике. Как вы помните из части, Вычисление кода в индикаторах, наш код выполняется для каждой свечки на графике, а значит значение в переменной SMA будет иметь какую-то конкретную цифру и эта цифра будет отображена на графике в виде точки именно на той свечке, для которой происходил расчет. Когда будут рассчитаны все точки, для всех свечек, эти точки будут соединены в единую линию, и мы увидим на графике просто линию.

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

А теперь к вам задание. Как сделать так, чтобы пользователь мог менять не только период, но еще и цены, которые решит усреднить? Например, мне нужно построить скользящую среднюю не по ценам закрытия, а по ценам открытия. Напишите код, что бы в параметрах можно было менять цены и период.

Конечно ниже я напишу ответ, но если вы сами решили эту задачу, значит материал вы усвоили, продолжайте изучение.

А теперь что касается текста, помните я говорил что переменные не могут принимать текстовые значения? – да это так, но вот объявить пользовательскую переменную и “присвоить” ей текст возможно. Это будет не совсем текстовая переменная, но текст там будет. Не обращайте внимание если не понятно, просто используйте его как будет описано ниже и все.

В коде выше переменная name принимает перечисления, которые и могут содержать текст. Как правильно объявить такую переменную, для начала пишем input, потом имя переменной, далее знак присваивания, а вот дальше подробнее, открываем фигурную скобку и начинаем перечислять все что хотим, чтобы содержала наша переменная. Важно перед любым значением написать слово default именно это значение будет принято по умолчанию. Когда вы добавите индикатор на график, именно это значение будет установлено, когда все перечислили, закрываете фигурную скобку.

Бывают случаи, когда мы хотим использовать 2 слова, а не одно, просто написать через пробел их не получится. Их нужно написать в кавычках.

В этом случае ни каких ошибок не возникнет.

Обращение к такой переменной так же отличается, нежели использование обычной переменной.

Напишу пример, но объяснять подробно пока не стану.

В примере выше использовано 2 варианта использования таких переменных, первый в переключателе switch, а второй в условии if. В дальнейшем рассмотрим все эти операторы более подробно, а пока обратите внимание лишь на переменную name, как к ней обратились, в переключателе просто написали текст в кавычках, так как переключатель принимает текст. А вот в условии написали имя переменной, а потом вызвали переменную, поставили точку и написали значение в кавычках.

На этом все что касается пользовательских переменных.

Постоянная ссылка на это сообщение: https://k-pavel.ru/objavlenie-polzovatelskih-peremennyh-v-thinkscript/

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Subscribe  
Подписаться на