Как я создал простое приложение Forex с ботами Telegram и AWS Lambda
8 декабря 2022 г.Если вы работаете фрилансером в цифровой экономике, вполне вероятно, что у вас есть глобальная перспектива, когда речь идет о новых перспективах и сотрудниках. Вам доступен огромный глобальный пул потенциальных клиентов и возможностей. По этой причине дизайнеры, специалисты по маркетингу, веб-разработчики или торговые представители нередко работают с деловыми партнерами, которые находятся в разных странах.
Иногда клиент может быть готов заплатить вам только в своей местной валюте. Конечно, это небольшое неудобство, но, в конце концов, создание мультивалютного счета, как правило, несложно и недорого, поэтому лучше согласиться с договоренностью и запланировать конвертацию денег позже.
Проблема
Это была именно та ситуация, в которой я находился всего несколько месяцев назад: я выполнял работу, ежемесячно выставлял счета и мне платили. Ничего особенного. Однако после нескольких итераций я начал замечать некоторые проблемы с этим подходом. Очевидно, время от времени мне нужно было конвертировать небольшие суммы денег в местную валюту, чтобы покупать вещи, и сделать это по выгодному курсу было непросто:
* было бы неразумно просто выполнять конвертацию всякий раз, когда мне нужны наличные, и не глядя на текущие курсы: валютные пары, такие как USD/EUR
или USD/GBP
, колеблются в лот, а разница всего в несколько пунктов цена-процент (иначе пипсов) может привести к совершенно разным результатам для вашего банковского счета. Зачем оставлять деньги на столе?
* Конвертация валют всегда сопряжена с затратами: переменные сборы, спреды и подписки на платформу. Неважно как, брокер всегда найдет способ получить свою долю.
* для фискальных целей имел значение только тот курс, который использовался при создании счета-фактуры. Однако после того, как я получил оплату и через несколько дней захотел перевести деньги, рынок уже работал совсем по другому курсу. К сожалению, налогового инспектора не волновало, что за последние 2 года экономика была сумасшедшей, как американские горки, а исторически сильные валюты резко упали - он просто хотел получить свои деньги.
Как видите, здесь действовало множество разных переменных, в основном против меня. Мне это не понравилось. "Проклятие!" Я подумал: «Я инженер, я найду решение, если есть возможность заработать на пиво!»
Решение
Ну как повернуться лицом в мою пользу? Начнем с пары предположений. Суровая реальность такова, что торговля на рынке Форекс сложна и рискованна. Я мог бы потратить сотни часов на самообразование, пытаясь придумать яркие стратегии, чтобы получить преимущество на рынке. Однако такой подход требует много времени и денег, его невероятно сложно реализовать в качестве розничного инвестора, и он просто не соответствует моим сильным сторонам. Я пришел к выводу, что просто буду придерживаться наивной стратегии, основанной на цене: покупай дешево, продавай дорого.
Во-вторых, мне нужен был способ постоянно следить за текущим курсом и действовать по нему всякий раз, когда мне становилось удобно конвертировать свои деньги. Сначала я посещал такие сайты, как TradingView, чтобы просматривать курсы валютных пар. Однако, как скромный человек, я быстро устал от такой повторяющейся и скучной задачи: на самом деле, я понял, что бот был бы намного счастливее выполнять такую работу!
Бот
Стратегия была проста: каждые 2 часа отправлять уведомление с текущим курсом и потенциальной прибылью или убытком, которые я могу получить в этот момент времени. Самым важным моментом было получение правильных и своевременных данных об биржах: существует множество API, которые могут помочь в этом, я просто выбрал путь наименьшего сопротивления и реализовал APILayer Exchange Rates Data API, потому что он бесплатный и простой, но, честно говоря, любой API будет работать нормально. Моя функция fetchRate
будет выглядеть примерно так: эта.
Где, очевидно, аргументы from
и to
представляют любую интересующую меня валютную пару. Как только я получу текущий курс, вычисление разницы в пипсах от моей средней цены тривиально.
Наконец, мне просто нужен был способ отправить сообщение самому себе с этой пикантной информацией. Опять же, не нужно ничего усложнять: Telegram API отлично подходит для этой цели и очень прост в настройке. После обращения к @BotFather с просьбой о персональном друге-боте я был готов вырваться с сообщения.
Развертывание в Lambda
Личный бот Forex очень полезен, только если он всегда работает. AWS Lambda — это практически бесплатное решение для размещения простой программы, такой как моя (или даже небольшой микросервисной архитектуры), поэтому я реорганизовал свой код, чтобы он работал как бессерверная функция. Однако есть несколько неприятных моментов, таких как тот факт, что некоторые функции не поддерживаются для Golang, и необходимо создать zip-архив для загрузки файлов (фу).
Однако функции Lambda обеспечивают большую гибкость и могут запускаться задачами cronjob, сообщениями SQS или даже вызовами API. Для моего варианта использования я решил настроить двухчасовое задание cron и добавил простую полезную нагрузку JSON для указания некоторых входных переменных.< /p>
Пусть деньги текут! 💸💸💸
Ссылки
- репозиторий forex-bot на github.com
- Что такое пипсы в торговле на рынке Форекс и какова их стоимость?
- документация AWS Lambda для Go
- Как настроить бота Telegram
- API данных обменных курсов
Также опубликовано здесь.
Оригинал