11 июл 2022 · 10:06    
{"document":[{"text":[{"type":"string","attributes":{},"string":"Если вы трейдер и хотите понимать как работают индикаторы в социальной сети "},{"type":"string","attributes":{"bold":true},"string":"TradingView"},{"type":"string","attributes":{},"string":", или более того, хотите сделать свой индикатор, то данная статья поможет вам легче погрузится в язык программирования для трейдеров - "},{"type":"string","attributes":{"bold":true},"string":"Pine Script"},{"type":"string","attributes":{},"string":".\n\nПрежде чем перейдем к практическим примерам работы с сериями расскажу немного теории."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Основной тип данных, используемый в "},{"type":"string","attributes":{"bold":true},"string":"Pine script"},{"type":"string","attributes":{},"string":", называется "},{"type":"string","attributes":{"bold":true},"string":"серией"},{"type":"string","attributes":{},"string":". Это непрерывный список значений, который идёт назад во времени от текущего бара и где для каждого бара существует одно значение."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"attachment","attributes":{"presentation":"gallery"},"attachment":{"caption":"","contentType":"image/png","filename":"серия номер.png","filesize":23134,"height":508,"pic_id":95998,"url":"https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/11/%D1%81%D0%B5%D1%80%D0%B8%D1%8F_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80.jpeg","width":1195}},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Серии хранят последовательность исторических значений. К ним можно получить доступ с помощью "},{"type":"string","attributes":{"bold":true},"string":"[ ] "},{"type":"string","attributes":{},"string":"оператора. Примерами встроенных последовательных переменных являются: "},{"type":"string","attributes":{"bold":true},"string":"open"},{"type":"string","attributes":{},"string":","},{"type":"string","attributes":{"bold":true},"string":" high"},{"type":"string","attributes":{},"string":", "},{"type":"string","attributes":{"bold":true},"string":"low"},{"type":"string","attributes":{},"string":", "},{"type":"string","attributes":{"bold":true},"string":"close"},{"type":"string","attributes":{},"string":", "},{"type":"string","attributes":{"bold":true},"string":"volume"},{"type":"string","attributes":{},"string":" и "},{"type":"string","attributes":{"bold":true},"string":"time"},{"type":"string","attributes":{},"string":". Любое выражение, содержащее переменную серии, будет рассматриваться как сама серия. Например:"},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true},"string":"a = open + close + low + high"},{"type":"string","attributes":{},"string":" // Сложение 4 серий\n"},{"type":"string","attributes":{"bold":true},"string":"b = high * 3"},{"type":"string","attributes":{},"string":" // Умножение переменной серии на константу\n"},{"type":"string","attributes":{"bold":true},"string":"c = low[1]"},{"type":"string","attributes":{},"string":" // Ссылка на предыдущее значение \""},{"type":"string","attributes":{"bold":true},"string":"low"},{"type":"string","attributes":{},"string":"\", текущее"},{"type":"string","attributes":{"bold":true},"string":" low[0]"},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"string","attributes":{},"string":"Записи "},{"type":"string","attributes":{"bold":true},"string":"close"},{"type":"string","attributes":{},"string":" и "},{"type":"string","attributes":{"bold":true},"string":"close[0]"},{"type":"string","attributes":{},"string":" равносильны, для обращения к текущему бару не обязательно указывать оператор "},{"type":"string","attributes":{"bold":true},"string":"[ ]"},{"type":"string","attributes":{},"string":" с нулевым номером."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"?: условный тернарный оператор:"},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true,"italic":true},"string":"условие ? результат 1 : результат 2"},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"string","attributes":{},"string":"Если условие выполняется, то вернется "},{"type":"string","attributes":{"bold":true},"string":"результат 1"},{"type":"string","attributes":{},"string":", если нет, то "},{"type":"string","attributes":{"bold":true},"string":"результат 2"},{"type":"string","attributes":{},"string":"."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true,"italic":true},"string":"условие 1 ? результат 1 : условие 2 ? результат 2 : результат 3"},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"string","attributes":{},"string":"Если "},{"type":"string","attributes":{"bold":true},"string":"условие 1"},{"type":"string","attributes":{},"string":" выполняется, то вернется "},{"type":"string","attributes":{"bold":true},"string":"результат 1"},{"type":"string","attributes":{},"string":", если нет, то если "},{"type":"string","attributes":{"bold":true},"string":"условие 2"},{"type":"string","attributes":{},"string":" выполняется - вернется "},{"type":"string","attributes":{"bold":true},"string":"результат 2"},{"type":"string","attributes":{},"string":". А если не выполняются оба условия - вернется "},{"type":"string","attributes":{"bold":true},"string":"результат 3"},{"type":"string","attributes":{},"string":"."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true,"italic":true},"string":"nz() "},{"type":"string","attributes":{},"string":"- встроенная функция, заменяет на"},{"type":"string","attributes":{"bold":true},"string":" NaN"},{"type":"string","attributes":{},"string":" (ничего) значения с нулями."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true},"string":"\nШаблоны которые я использую при программировании на "},{"type":"string","attributes":{},"string":"Pine script"},{"type":"string","attributes":{"bold":true},"string":":"},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Сумма/Счетчик."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Сумма может вам пригодиться в тех случаях, если вам нужно посчитать суммарное значение какой-то переменной за период. Счетчик для отсчитывания количества свечей от какого-то события."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true},"string":"x = 0 "},{"type":"string","attributes":{},"string":"// задание переменной\n"},{"type":"string","attributes":{"bold":true},"string":"x"},{"type":"string","attributes":{"blockBreak":true,"bold":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"string","attributes":{"bold":true},"string":"n = 1"},{"type":"string","attributes":{},"string":" // задание переменной n, равной 1, если это счетчик\n"},{"type":"string","attributes":{"bold":true},"string":"x := условие ? x[1] + n : nz(x[1]) "},{"type":"string","attributes":{},"string":"// при выполнении условия, мы к предыдущему значению "},{"type":"string","attributes":{"bold":true},"string":"x"},{"type":"string","attributes":{},"string":" прибавляем значение "},{"type":"string","attributes":{"bold":true},"string":"n"},{"type":"string","attributes":{},"string":", если условие не выполняется - "},{"type":"string","attributes":{"bold":true},"string":"x"},{"type":"string","attributes":{},"string":" присваивает своё предыдущее значение."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"attachment","attributes":{"caption":"Графический результат","presentation":"gallery"},"attachment":{"caption":"","contentType":"image/png","filename":"scale_1200.png","filesize":93058,"height":449,"pic_id":96016,"url":"https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/11/scale_1200_5EkPZ5V.jpeg","width":1200}},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Из примера можно увидеть, что каждый раз когда low было ниже 30000 значение х увеличивалось на 1."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Присвоение переменной значения и удержание его постоянным."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true},"string":"x = 0"},{"type":"string","attributes":{},"string":" // задание переменной \n"},{"type":"string","attributes":{"bold":true},"string":"x"},{"type":"string","attributes":{"blockBreak":true,"bold":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"string","attributes":{"bold":true},"string":"n = a"},{"type":"string","attributes":{},"string":" // задание переменной "},{"type":"string","attributes":{"bold":true},"string":"a"},{"type":"string","attributes":{},"string":", или сразу в формуле пишите нужное значение вместо "},{"type":"string","attributes":{"bold":true},"string":"n"},{"type":"string","attributes":{},"string":"\n"},{"type":"string","attributes":{"bold":true},"string":"x := условие and x[1] == 0 ? x[1] + n : nz(x[1])"},{"type":"string","attributes":{},"string":" // присваивается значение "},{"type":"string","attributes":{"bold":true},"string":"n"},{"type":"string","attributes":{},"string":", если выполняется условие "},{"type":"string","attributes":{"bold":true},"string":"x"},{"type":"string","attributes":{},"string":" предыдущее равно "},{"type":"string","attributes":{"bold":true},"string":"0"},{"type":"string","attributes":{},"string":", что говорит о том, что ранее это условие не выполнялось."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"attachment","attributes":{"caption":"Код","presentation":"gallery"},"attachment":{"caption":"","contentType":"image/png","filename":"2 пример).png","filesize":5742,"height":121,"pic_id":96017,"url":"https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/11/2_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.jpeg","width":562}},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"attachment","attributes":{"caption":"Графический результат","presentation":"gallery"},"attachment":{"caption":"","contentType":"image/png","filename":"константа.png","filesize":14268,"height":536,"pic_id":96018,"url":"https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/11/%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B0_aMHn4Uc.jpeg","width":1604}},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Из примера видно, что один раз когда "},{"type":"string","attributes":{"bold":true},"string":"low"},{"type":"string","attributes":{},"string":" было ниже "},{"type":"string","attributes":{"bold":true},"string":"30000 "},{"type":"string","attributes":{},"string":"значение "},{"type":"string","attributes":{"bold":true},"string":"х"},{"type":"string","attributes":{},"string":" увеличивалось на "},{"type":"string","attributes":{"bold":true},"string":"1"},{"type":"string","attributes":{},"string":", и более не реагировало на данное условие."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Присвоение переменной значения и удержание его до отмены условия."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{"bold":true},"string":"x = 0"},{"type":"string","attributes":{},"string":" // задание переменной x\n"},{"type":"string","attributes":{"bold":true},"string":"x := условие 1 ? 1 : условие 2 ? 0 : nz(x[1]) "},{"type":"string","attributes":{},"string":"// Если выполняется "},{"type":"string","attributes":{"bold":true},"string":"условие 1"},{"type":"string","attributes":{},"string":" - присваивается "},{"type":"string","attributes":{"bold":true},"string":"1"},{"type":"string","attributes":{},"string":", если выполняется "},{"type":"string","attributes":{"bold":true},"string":"условие 2 "},{"type":"string","attributes":{},"string":"- присваивается "},{"type":"string","attributes":{"bold":true},"string":"0"},{"type":"string","attributes":{},"string":", если не выполняется ни одно из условий - присваивается предыдущее значение."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":["quote"]},{"text":[{"type":"attachment","attributes":{"caption":"Код","presentation":"gallery"},"attachment":{"caption":"","contentType":"image/png","filename":"код 3.png","filesize":6101,"height":137,"pic_id":96020,"url":"https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/11/%D0%BA%D0%BE%D0%B4_3.jpeg","width":557}},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"attachment","attributes":{"caption":"Графический результат","presentation":"gallery"},"attachment":{"caption":"","contentType":"image/png","filename":"3 прм.png","filesize":17712,"height":525,"pic_id":96021,"url":"https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/11/3_%D0%BF%D1%80%D0%BC.jpeg","width":1527}},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Из примера видно, что каждый раз когда "},{"type":"string","attributes":{"bold":true},"string":"low"},{"type":"string","attributes":{},"string":" было ниже "},{"type":"string","attributes":{"bold":true},"string":"30000"},{"type":"string","attributes":{},"string":" значение "},{"type":"string","attributes":{"bold":true},"string":"х"},{"type":"string","attributes":{},"string":" увеличивалось на "},{"type":"string","attributes":{"bold":true},"string":"1"},{"type":"string","attributes":{},"string":", а когда выполнялось условие обратное первому ("},{"type":"string","attributes":{"bold":true},"string":"low"},{"type":"string","attributes":{},"string":" было больше "},{"type":"string","attributes":{"bold":true},"string":"30000"},{"type":"string","attributes":{},"string":")"},{"type":"string","attributes":{"bold":true},"string":" х"},{"type":"string","attributes":{},"string":" уменьшался до "},{"type":"string","attributes":{"bold":true},"string":"0"},{"type":"string","attributes":{},"string":"."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Также можно отменять другим условием."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Если как у нас в примере условия взаимоисключающие, то можно записать более простым кодом:"},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"attachment","attributes":{"caption":"Код","presentation":"gallery"},"attachment":{"caption":"","contentType":"image/png","filename":"при 4.png","filesize":5368,"height":132,"pic_id":96022,"url":"https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/11/%D0%BF%D1%80%D0%B8_4.jpeg","width":456}},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"Если у вас есть вопросы по сериям и их использовании - пишите в комментариях."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]},{"text":[{"type":"string","attributes":{},"string":"✅ Если не хотите пропустить мои публикации - подписывайтесь на мой канал."},{"type":"string","attributes":{"blockBreak":true},"string":"\n"}],"attributes":[]}],"selectedRange":[0,0]}
Комментарии 1