Criar um robô em JavaScritp par rodar no meu computador local com Windows 10 usando
Node.js
O robô será usado para extrair informações de duas corretoras que operam com Bitcoin e também realizar trades(operações de compra e venda de cryptomoedas). As corretoras são Bitfinix e Binance.
O Robô precisa ter as seguintes funcionalidades:
1) Conseguir se conectar com a API das corretoras usando os parâmetros de autenticação “ApiKey” e “ApiSecret”.
(Pensar em como passar o parâmetro de uma maneira segura sem que eu tenha que deixar o usuário e senha gravada no código)
2) Escolher o par de moedas que serão negociadas. Por exemplo, Bitcoin e Dólar (BTCUSD). Isso precisa ser parametrizado.
Ou seja, eu quero poder alterar o par de moedas todas às vezes que eu iniciar o robô.
3) Ler as informações que a corretora disponibiliza para cada trade (Timestamp, TradeId Price, Amount, Type). Se além desses houver mais alguma informações disponível colocar também.
4) Baixar as informações de cada trade para o computador local e gravá-lo em um arquivo TXT
5) Fazer isso no menor intervalo de tempo possível. Ou seja, não funciona fazer um looping para baixar os dados a cada 1 minuto. O ideal a baixar cada trade assim que ele acontecer e já salvar no TXT.
6) O processamento das duas corretoras precisa acontecer em paralelo. Apesar do
Node.js não ser multi-thread é possível trabalhar com processamento paralelo usando o módulo cluster (
https://imasters.com.br/desenvolvimento/node-js-processando-em-paralelo/?trace=1519021197&source=single)
7) Além de receber informações o robô também deve enviar informações para a corretora através da mesma API. As informações que serão enviadas são ordens de venda e de compra.
8) Após passar 5 minutos do momento de inicio do robô ele deve emitir uma ordem de COMPRA para cada uma das corretoras (são duas ordens de compra) com o valor do Amount=0.1 e perço de mercado (type=MARKET).
9) Após 10 minutos do início do robô ele deve emitir uma ordem agora de VENDA para cada uma das corretoras (são duas ordens de venda) pelo mesmo valor do Amount=0.1 e perço de mercado (type=MARKET)
10) Após 12 minutos de funcionamento o robô deve parar de operar e encerrar.
Abaixo estão os link com a documentação das APIs das duas corretoras. Os códigos de conexão com as APIs e realização de compras e vendas já são fornecidos pelas corretoras, então a parte que precisa de mais desenvolvimento é para salvar os dados no TXT e criar a lógica para contar o tempo antes de realizar as ordens de venda e compra.
Documentação API Bitfinix:
https://docs.bitfinex.com/docs
https://www.bitfinex.com/
Documentação API Binance:
API documentation:
https://github.com/binance-exchange/binance-official-api-docs
API sample code:
https://github.com/binance-exchange
API Group:
https://t.me/binance_api_english
Prazo de Entrega: Não estabelecido