Оливер купит и продаст ценные бумаги на вашем брокерском счёте в Тинькофф Инвестиции, расскажет о ваших активах.
Инструкция https://cloud.yandex.ru/docs/cli/operations/install-cli
git clone https://github.com/denismosolov/oliver.git
cd oliver
make
В процессе интерактивного создания профиля CLI будет поэтапно предлагать задать базовые параметры профиля. Cправка https://cloud.yandex.ru/docs/cli/operations/profile/profile-create#interactive-create
В качестве имени профиля укажите oliver
, а в качестве каталога по умолчанию создайте новый каталог oliver
. Можете указать другие названия, это ни на что не повлияет.
Если всё сделаете правильно, то появится функция с именем oliver
в Яндекс.Облаке.
Выпустите токен OpenAPI для биржи, запишите значение токена в TINKOFF_OPEN_API_EXCHANGE
в файле .env
.
А вот и команда для деплоя кода в Яндекс.Облако.
make create_version
Если всё сделаете правильно, то у функции oliver
появится версия и вы увидите исходный код в Яндекс.Облаке, а так же переменую окружения TINKOFF_OPEN_API_EXCHANGE
.
Справка https://yandex.ru/dev/dialogs/alice/doc/smart-home/start-docpage/
В поле «Тип доступа» выберите «Приватный».
В настройках навыка выберите подраздел Интенты, найдите Сущности и нажмите Редактировать, появится всплывающее окно с полем ввода. Вставьте содержимое файла intents/entities
в поле ввода, нажмите Сохранить и закройте окно.
В настройках навыка выберите подраздел Интенты, нажмите Создать. В появившемся окне впишите Название: Заявка на покупку или продажу по рыночной цене
, ID: market.order
, в поле Грамматика вставьте содержимое файла intents/market_order/intent
, в поле Положительные тесты вставьте содержимое файла tests/intents/market_order/positive
, а в поле Отрицательные тесты вставьте содержимое файла tests/intents/market_order/negative
. Нажмите Сохранить. Первый интент готов.
По аналогии создайте второй интент.
Название: Мои заявки
ID: my.orders
Грамматика: intents/my_orders/intent
Положительные тесты: tests/intents/my_orders/positive
Отрицательные тесты: tests/intents/my_orders/negative
Название: Мои акции
ID: my.stocks
Грамматика: intents/my_stocks/intent
Положительные тесты: tests/intents/my_stocks/positive
Отрицательные тесты: tests/intents/my_stocks/negative
Чтобы отправить заявку на покупку акций по рыночной цене скажите: «купи 10 лотов Яндекс».
После этого Оливер попросит подтвердить заявку: «заявка на покупку 10 лотов Яндекс по рыночной цене, тикер YNDX, для подтверждения скажите подтверждаю, для отмены скажите нет».
Если вы подтвердите намерение, то услышите: «заявка на покупку 10 лотов Яндекс по рыночной цене создана» либо «заявка исполнена».
Чтобы отправить заявку на продажу акций по рыночной цене скажите: «продай 10 лотов Яндекс».
После этого Оливер попросит подтвердить заявку: «заявка на продажу 10 лотов Яндекс по рыночной цене, тикер YNDX, для подтверждения скажите подтверждаю, для отмены скажите нет».
Если вы подтвердите намерение, то услышите: «заявка на продажу создана» либо «заявка исполнена».
Чтобы узнать информацию об активных заявках, скажите: «мои заявки».
Чтобы узнать информацию об акциях на вашем брокерском счёте, скажите: «мои акции».
Если биржа закрыта, в сообщение будет только тикер и количество акций на счёте. Если биржа открыта, то к тикеру и количеству акций добавляется минимальная и максимальная цена за день.
Если вы что-то не расслышали, то скажите «повтори», и Оливер повторит последнюю фразу. Это работает только внутри сессии.
Алиса, спроси у Оливера мои акции
— вернёт список акций и завершит сессию.
Для тестирования нужна версия PHP 7.4 и PHPUnit. См. файл конфигурации phpunit.xml
.
Если в системе по умолчанию используется PHP 7.4, то можно запустить тесты из корня проекта командой:
./vendor/bin/phpunit
Если в системе нет PHP либо версия отличается от 7.4, то можно запустить набор тестов через Docker. Убедитесь, что в системе установлен Docker, затем выполните:
make develop # установка phpunit, достаточно запустить один раз
make phpunit
- Хочу в каталог навыков Алисы https://dialogs.yandex.ru/store (ждём TinkoffCreditSystems/invest-openapi#217)
- Хочу выставлять и отменять лимитные заявки на покупку и продажу акций через навык