Первая программа книги отображает цены закрытия свечей. Для этого вы установите PyneIDE, создадите папку проекта и выполните программу на учебных данных.

Построчный разбор будет в следующей главе. Здесь вы сначала познакомитесь с редактором и запуском.

Что понадобится?

Компьютер, на котором работает Visual Studio Code, и интернет для первоначальной установки PyneIDE и среды исполнения. PyneIDE работает с Visual Studio Code 1.90 или новее.

Весь процесс обучения бесплатен. Редактор Visual Studio Code, расширение PyneIDE и среду PyneCore можно бесплатно устанавливать и использовать. За написание и запуск примеров книги тоже платить не нужно.

Не нужны учётная запись PyneSys, ключ API или платная подписка. Pyne code выполняется локально на компьютере, а практикуемся мы на учебных данных книги.

Установка PyneIDE

  1. Если Visual Studio Code ещё не установлен, загрузите его с официального сайта.
  2. Запустите Visual Studio Code и откройте View → Extensions. Здесь можно искать расширения в официальном Visual Studio Code Marketplace.
  3. Введите PyneIDE в поиск и выберите расширение PyneIDE от PyneSys.
  4. Нажмите Install и дождитесь завершения установки.
  5. Если редактор предлагает перезагрузку, выберите Reload.

Создайте проект

Проект представляет собой папку, в которой хранятся программы, данные и результаты. Создайте пустую папку pyne-book и откройте её через File → Open Folder….

Создать проект можно из собственного меню PyneIDE:

  1. Нажмите PyneIDE в строке состояния справа внизу. Откроется меню действий расширения.
  2. Введите Initialize в поиске сверху, чтобы найти создание проекта.
  3. Нажмите Initialize Pyne Project. Начнётся создание папок и примерных файлов.
В меню PyneIDE видна команда Initialize Pyne Project, а справа внизу строки состояния находится надпись PyneIDE.
Надпись PyneIDE справа внизу открывает меню расширения. Найдите Initialize и выберите Initialize Pyne Project для создания проекта.

При первом использовании PyneIDE предлагает настроить среду исполнения. Нажмите Setup Now в уведомлении и дождитесь завершения. Нужные Python и PyneCore установятся в отдельную среду расширения. Если вы закрыли уведомление, снова нажмите PyneIDE справа внизу и выберите Setup Environment.

Если PyneIDE спрашивает, где разместить структуру папок, выберите Use this folder. Проект будет создан прямо в открытой папке.

На панели значков слева появится представление Pyne. Откройте его: здесь находятся программы и данные проекта.

В представлении Pyne видны группы Scripts, Data, Output и первая программа проекта.
Созданный проект в Pyne. Scripts содержит программы, Data содержит данные, Output содержит результаты.

Что находится в папке?

  • В scripts находятся программы. Файлы Pyne code имеют расширение .py.
  • В data находятся обрабатываемые данные. Созданный demo.ohlcv содержит учебные данные.
  • В output сохраняются результаты запусков.
  • В config хранится конфигурация среды проекта. В этой главе менять её не нужно.

Расширение .ohlcv обозначает файл свечных данных. OHLCV объединяет пять значений: открытие, максимум, минимум, закрытие и объём. Подробнее о них рассказывает глава о данных свечей.

Напишите первую программу

Создать её можно прямо в представлении Pyne:

  1. Наведите указатель на строку Scripts. Справа появится кнопка +.
  2. Нажмите +, чтобы выбрать тип программы.
  3. Выберите Pyne Indicator. Мы создаём индикатор на Pyne code.
  4. Введите first_chart и нажмите Enter. PyneIDE добавит .py, создаст scripts/first_chart.py и откроет его в редакторе.
Группа Scripts в Pyne с кнопкой плюса справа и примером demo.py ниже.
При наведении на Scripts справа появляется кнопка плюса для создания программы.

Файл содержит шаблон индикатора. Выделите всё содержимое и замените кодом ниже. Подчёркивание соединяет два слова в имени; .py обозначает файл с синтаксисом Python.

Вставьте полный код и сохраните:

"""
@pyne edge
"""
from pynecore.lib import close, color, plot, script

@script.indicator("My First Chart", overlay=True)
def main():
    plot(close, "Close", color=color.blue, linewidth=2)

Строка под def main(): начинается на четыре пробела правее. Отступ входит в код. Сохраняйте его при копировании.

Запустите программу

Над кодом появляется Run Pyne code. Нажмите. Если нужны данные, выберите demo с подписью DEMOBTC @ 1D. Это файл demo.ohlcv.

В выборе данных видна строка demo с описанием DEMOBTC @ 1D.
Строка demo выбирает учебные данные. DEMOBTC обозначает имя демонстрационного рынка, 1D означает дневные свечи.

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

Рядом с кодом first_chart.py показан график свечей DEMO с синей линией Close.
После запуска first_chart.py синяя линия соединяет цены закрытия свечей.

Время на графике идёт слева направо. Синяя линия соединяет закрытия последовательных свечей.

На снимке те же данные, которые PyneIDE создаёт вместе с проектом. Отдельно скачивать или копировать их не нужно. Проверьте, проходит ли синяя линия через закрытие каждой свечи.

Если график не появился

Сначала прочитайте ошибки редактора. Проверьте расположение и расширение файла, первые три строки и отступ строки plot. Если вводили вручную, попробуйте скопировать полный пример ещё раз.

Если Run Pyne code не появляется, убедитесь, что PyneIDE установлен и включён, а начало файла точно совпадает с примером.

Если среда ещё не подготовлена, откройте PyneIDE: Setup Environment. При запуске завершите выбор данных: открытое окно выбора ждёт вашего ответа.

Попробуйте самостоятельно

Найдите "My First Chart" и замените на:

"My Price Line"

Подумайте перед запуском: изменится форма линии или имя программы?

Сохраните файл и запустите на тех же данных.

Решение

Изменённая строка:

@script.indicator("My Price Line", overlay=True)

Изменится заголовок программы. Расчёт и данные прежние, поэтому форма линии не меняется.

Прежде чем продолжить

Сможете ли вы после открытия проекта найти first_chart.py и запустить его на учебных данных? Попробуйте без перечитывания шагов. Если застрянете, найдите нужный раздел главы.

Далее разберём строки программы и добавим к цене закрытия цену открытия.