#arrays #thinkscript
#массивы #thinkscript
Вопрос:
Я пытаюсь создать сканер нерегулярного объема в Thinkorswim с помощью Thinkscript. Я хочу создать массив томов за прошлые периоды, чтобы я мог сравнить их с объемом текущего периода (используя fold или рекурсию). Однако, хотя в документации Thinkorswim подробно описывается то, что называется типом данных IDataHolder, который представляет собой массив данных, я не могу найти, как его можно создать, в отличие от простой ссылки на исторические данные, хранящиеся в Thinkorswim. Вот документация: https://tlc.thinkorswim.com/center/reference/thinkScript/Data-Types/IDataHolder
Я попытался закодировать что-то столь же простое, как это, для инициализации массива:
def array = [];
Это выдает ошибку. Я пробовал разные типы скобок, менял любые возможные проблемы с синтаксисом и т. Д.
Возможно ли это на языке Thinkscript? Если нет, есть ли какие-либо обходные пути? Если даже этого нет, есть ли сторонний программный интерфейс, который я мог бы использовать для извлечения данных из Thinkorswim и получения сканера таким образом? Спасибо за любую помощь.
Ответ №1:
IDataHolder
представляет такие данные, как close
, open
, volume
, и т.д., которые хранятся на нескольких столбцах или тиках. Вы можете ссылаться на один из этих предопределенных рядов данных, или вы можете создать свой собственный, используя переменные: def openPlus5cents = open 0.05
, скажем, будет IDataHolder
значением типа.
Как вы обнаружили, нет способа создать массив в обычном смысле программирования, поэтому вам придется проявить немного творчества. Возможно, скажем, вы могли бы выполнить сравнение внутри fold
? volume[1] > volume
или тому подобное? Может быть, опубликовать другой вопрос с примером сравнения, которое вы пытаетесь сделать?