Как я создал простое приложение Forex с ботами Telegram и AWS Lambda

Как я создал простое приложение 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>

Пусть деньги текут! 💸💸💸

Ссылки


Также опубликовано здесь.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE