Обращение к историческим данным в ThinkScript

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

Данная часть, в процессе изучения языка thinkScript, может показаться самой сложной и запутанной. Действительно, навигация по свечкам в ThinkOrSwim немного не обычна и не понятна, но как уже говорится выше, это только на первый взгляд. Постараюсь объяснить все простыми словами, и вы все поймете.

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

Вот и все обращение. Обратите внимание на функцию close в квадратных скобках мы указали количество свечек назад к которой хотим обратиться. Это не конкретный номер свечи на графике, это номер относительно той свечки, для которой сейчас идет расчет.

Давайте еще один пример, на графике всего 5 свечек, и мы пройдемся по всем по очереди и посмотрим, как будет работать наш код. Для того что бы не путаться, назовем эти свечки буквами A B C D E F Когда расчет будет проходить на свечке A, нам необходимо обратиться к свечке которая стоит перед ней, но там же нет свечки, не обращайте внимание, thinkScript попытается к ней обратиться, не обнаружит ее и пойдет дальше. Значение переменной name будет равняться N\A (что я называю просто НЕТ ДАННЫХ). Переходим к расчету на свечке B, теперь переменная name будет равно цене закрытия свечки A, при расчете на свечке C, переменная name будет равняться цене закрытия свечки B и т. д.

Для еще более наглядного примера представим таблицу с ячейками.

history ThinkScript ThinkOrSwim

history ThinkScript ThinkOrSwim

Вот наш график из 5 свечек. Функции Open High Low Close имеются уже к ним мы будем обращаться что бы заполнить нашу переменную name. Код выше говорит, возьми цену закрытия предыдущей свечки, значит мы можем заполнить табличку так.

history ThinkScript ThinkOrSwim

history ThinkScript ThinkOrSwim

А что если мы напишем код так

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

history ThinkScript ThinkOrSwim

history ThinkScript ThinkOrSwim

Думаю, разобрались с тем как обращаться в прошлое. А как на счет того что бы обратиться в будущее??? Все же хотят узнать, как закроется следующая свечка, когда еще не настало время. ThinkOrSwim позволяет обращаться в «будущее»… Заманчиво? К сожалению на самом деле будущего мы не узнаем, можем лишь только обратиться к следующей свечке относительно той на которой в данный момент идет расчет.

Этот код позволяет двигаться вправо. Заполним таблицу.

history ThinkScript ThinkOrSwim

history ThinkScript ThinkOrSwim

Как видите переменная name заполняется только лишь до того момента, пока есть свечки, когда свечки нет, переменная принимает значение N\A.

Таким образом мы можем обращаться к любым данным, а не только к O H L C. Пишите любую функцию, в круглых скобках передавайте входные параметры, а после пишите квадратные скобки и номер.

Эта функция SMA – простая скользящая средняя. Принимает цены закрытия и период 5, усредняет эти значение и выводит результат в переменную name. Вот тут-то и все путается, так как представить это уже сложнее, постараюсь все же нарисовать.

history ThinkScript ThinkOrSwim

history ThinkScript ThinkOrSwim

В таблице длинными линиями, разных цветов, указано какие последние 5 свечей берутся (период SMA), эти 5 цен складываются и делятся на 5, результат – среднее значение сохраняется в функцию Average. Указав в квадратных скобках единичку, мы хотим обратиться к предыдущему значению, смотрите на рисунке выше, короткие зеленые линии, эти значения записываются в переменную name.

Теперь я думаю вы представляете, как хранятся данные и как к ним обращаться.

Так же мы можем обращаться не только к функциям, которые прописаны в thinkScript, но и к своим собственным переменным, пишите после переменной квадратные скобки и число. Дополним еще код.

Переменная name2 примет предыдущее значение переменной name.

history ThinkScript ThinkOrSwim

history ThinkScript ThinkOrSwim

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

Почитайте этот пример и разберитесь как он работает, как идет обращение к историческим свечкам и ведется расчет.

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

avatar

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

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