ta-lib não instala: falta a biblioteca C, não o pacote Python
O ta-lib do Python é só uma casca. Por baixo dele existe uma biblioteca escrita em C que precisa estar instalada antes — e é a ausência dela que faz a instalação explodir.
Windows
Compilar C no Windows é trabalho para quem gosta. O caminho prático é
instalar um pacote já compilado (arquivo .whl), escolhido para
a sua versão de Python e a arquitetura da máquina. Descubra as duas assim:
python -c "import sys; print(sys.version)"
python -c "import struct; print(struct.calcsize('P') * 8, 'bits')"
Com o arquivo certo em mãos, instale apontando para ele:
pip install caminho\para\TA_Lib-arquivo-baixado.whl
Um .whl de versão errada instala e depois falha no import —
se isso acontecer, quase sempre é incompatibilidade de versão ou de bits.
Linux
Aqui dá para instalar a biblioteca C de verdade, e aí o pacote Python compila sozinho:
sudo apt-get install build-essential wget
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar -xzf ta-lib-0.4.0-src.tar.gz
cd ta-lib/
./configure --prefix=/usr
make
sudo make install
cd ..
pip install ta-lib
A alternativa que quase ninguém considera
Vale perguntar se você precisa mesmo dele. Se o seu robô usa quatro ou cinco indicadores — média móvel, RSI, bandas, MACD — existem bibliotecas em Python puro que instalam com um comando e nunca mais dão trabalho:
pip install pandas-ta
O ta-lib compensa por desempenho, em volume grande de cálculo. Para um
robô que avalia uma vela por minuto, essa vantagem não aparece — e o custo de
instalação é real.
Implementações diferentes do mesmo indicador dão números ligeiramente diferentes (o RSI tem mais de uma forma de suavização, por exemplo). Se você testou a estratégia com uma biblioteca e opera com outra, o robô não está executando exatamente o que você mediu.
Antes de deixar o robó operar
Consertar o erro faz o robô rodar — não faz ele ganhar. O Binaryzando testa a sua estratégia no histórico real de velas antes de você arriscar dinheiro nela, e sela o resultado numa carta com código verificável — para o número não poder ser editado depois.
Testar minha estratégia