minerar criptomoedas
Para minerar criptomoedas, você precisa escolher entre dois caminhos principais, que se resumem a uma decisão sobre o tipo de **hardware**. A escolha determinará quais moedas você pode minerar, o custo do investimento inicial e o consumo de energia.
Aqui estão os sistemas e as etapas essenciais para começar.
### ⚙️ 1. Hardware: A Escolha do Motor
A escolha do equipamento é o passo mais importante e define sua rentabilidade.
* **ASICs (Circuitos Integrados de Aplicação Específica):** São máquinas projetadas exclusivamente para minerar uma única criptomoeda (como Bitcoin ou Litecoin) usando um algoritmo específico. São a única opção viável para minerar Bitcoin profissionalmente, pois oferecem a maior taxa de hash (poder de processamento) e a melhor eficiência energética. O investimento inicial, no entanto, é alto.
* **Exemplo:** O Bitmain Antminer S19 Pro tem uma taxa de hash de 110 TH/s, mas consome 3.250W de energia.
* **Custo:** Um setup doméstico pode custar de US$ 2.630 a US$ 23.850.
* **GPUs (Placas de Vídeo):** São mais versáteis, pois podem minerar diversas criptomoedas baseadas em memória (como Ethereum Classic, Ravencoin, Ergo). O custo inicial de uma rig (plataforma) com múltiplas GPUs pode ser menor que um ASIC, mas elas consomem mais energia por unidade de hash e se tornam obsoletas mais rápido em redes com dificuldade crescente.
* **Exemplo:** Uma GPU Nvidia CMP 90HX consome 221W e pode ter lucros bem menores que um ASIC moderno.
* **Mineradores Domésticos (Home Miners):** Uma nova categoria de dispositivos compactos e silenciosos, como o Bitaxe Gamma e o Avalon Nano 3. Eles são ideais para quem quer participar da rede por hobby ou para aquecer um ambiente, com consumo de energia muito baixo (15 a 300 watts), mas com poder de mineração limitado.
### 💻 2. Software: O Cérebro da Operação
Com o hardware em mãos, você precisa do software para conectar sua máquina à rede:
* **Sistema Operacional de Mineração:** Alternativas como o **Hive OS** ou **Rave OS** são populares por serem leves e otimizadas para mineração, permitindo gerenciar várias rigs remotamente.
* **Programas de Mineração:** São os softwares que de fato executam os cálculos. Para ASICs, o software já vem embutido. Para GPUs, você usará programas como **CGMiner**, **BFGMiner** ou **NiceHash** (este último é um mercado que compra seu poder de hash).
### 🌐 3. Pools de Mineração: Unindo Forças
Minerar sozinho (solo mining) é extremamente difícil e improvável para um indivíduo. A solução é se juntar a uma **pool de mineração**, que combina o poder de processamento de milhares de mineradores para aumentar as chances de encontrar um bloco. As recompensas são então divididas proporcionalmente entre os participantes.
* **Principais Pools de Bitcoin (2025):** As maiores pools, que controlam a maior parte do poder de hash do mundo, incluem **Foundry USA**, **AntPool**, **ViaBTC** e **F2Pool**.
* **Modelos de Pagamento:**
* **PPLNS (Pay Per Last N Shares):** Sua renda varia com a "sorte" da pool. Em dias bons, você ganha mais; em dias ruins, menos. É menos previsível.
* **FPPS (Full Pay Per Share):** A pool paga uma taxa fixa por cada "share" (fração de trabalho) que você contribui, independentemente de encontrar um bloco ou não. Oferece uma renda mais estável e previsível.
### 🇧🇷 4. O Cenário Brasileiro: O Grande Desafio
Aqui está o ponto mais crítico para quem está no Brasil: o **custo da energia elétrica**.
* **Inviabilidade Econômica:** Um estudo de 2025 mostrou que minerar um único Bitcoin no Brasil custa em média **US$ 99.310 (cerca de R$ 535 mil) apenas em energia elétrica**. Como o valor de 1 BTC gira em torno de US$ 111 mil, a margem de lucro é praticamente nula.
* **Consumo de um Setup Pequeno:** Mesmo uma operação pequena com 30 máquinas pode consumir cerca de 8.640 kWh por mês, gerando uma conta de luz que varia de **R$ 7,7 mil a R$ 9,5 mil** dependendo da tarifa.
* **Cuidado com a Legalidade:** A mineração é uma atividade legal. No entanto, o alto custo da energia tem levado ao aumento da **mineração clandestina**, com "gatos" (furtos de energia), que é crime e tem sido alvo de operações policiais. A pena para o furto de energia pode incluir reclusão.
### 💎 5. Alternativas e Considerações Finais
Dada a inviabilidade econômica da mineração tradicional no Brasil, outras opções podem ser mais interessantes:
* **Mineração em Nuvem (Cloud Mining):** Você aluga poder de processamento de data centers localizados em regiões com energia barata. É mais simples, mas exige pesquisa para evitar golpes e as taxas podem corroer os lucros.
* **Staking:** Em vez de minerar, você pode "travar" suas criptomoedas em uma rede Proof-of-Stake (como Ethereum, Cardano, Solana) para ajudar a validar transações e receber recompensas. É uma forma de renda passiva que não exige hardware caro nem consome energia elétrica.
* **Mineração por Hobby:** Se o seu objetivo não é lucrar, mas sim aprender e apoiar a rede, os pequenos "home miners" (como o Bitaxe) são uma excelente porta de entrada, com baixo consumo de energia e ruído.
Em resumo, para obter lucro com mineração no Brasil, o caminho é extremamente desafiador devido ao custo da energia. As alternativas como o staking ou a mineração em nuvem (com muita pesquisa) podem ser mais realistas para quem busca renda no setor de criptomoedas.
1. Principais Tipos de Sistemas de Negociação
A. Corretoras (Exchanges)
- CEX (Exchanges Centralizadas): Gerenciadas por empresas (ex: Binance, Mercado Bitcoin, Coinbase). Oferecem alta liquidez, facilidade de uso, custódia e suporte ao cliente.
- DEX (Exchanges Descentralizadas): Funcionam diretamente na blockchain via contratos inteligentes (ex: Uniswap, PancakeSwap). Não exigem intermediários, permitindo negociação direta da sua própria carteira digital (peer-to-peer / P2P).
B. Sistemas de Algoritmo e Bots (Algorithmic / Auto Trading)
- Bots de Grade (Grid Trading): Compram e vendem automaticamente em intervalos de preço definidos para lucrar na oscilação lateral do mercado.
- Sistemas de Arbitragem: Identificam diferenças de preço de uma mesma criptomoeda em corretoras distintas para lucrar na compra em uma e venda imediata na outra.
- Copy Trading / Social Trading: Plataformas que permitem copiar automaticamente as operações realizadas por traders experientes.
C. Plataformas de Contratos e Derivativos
- Permitem alavancagem (operar com capital multiplicado).
- Possibilitam operar tanto na alta (long) quanto na queda (short) do preço.
2. Componentes Fundamentais de um Sistema de Negociação
- Livro de Ofertas (Order Book): Onde ficam registradas todas as intenções de compra e venda ativas do mercado.
- Tipos de Ordens:
- A Mercado (Market Order): Executa a compra/venda imediatamente ao preço atual.
- A Limite (Limit Order): Configura a execução para disparar apenas quando o preço atingir um valor específico.
- Stop-Loss / Take-Profit: Ordens automáticas de proteção de risco e realização de lucro.
- Mecanismo de Match (Matching Engine): O motor de software que cruza as ordens dos compradores e vendedores em tempo real.
- Conexões API: Interfaces para conectar softwares externos, gráficos (como TradingView) ou robôs à corretora.
3. Principais Estratégias Utilizadas
- Day Trading: Operações de compra e venda abertas e fechadas no mesmo dia.
- Swing Trading: Operações mantidas por dias ou semanas aproveitando ciclos de tendência.
- Scalping: Múltiplas negociações rápidas buscando pequenos lucros acumulados em minutos ou segundos.
- DCA (Dollar-Cost Averaging): Aportes recorrentes e fracionados ao longo do tempo para diluir a volatilidade.
4. Cuidados e Gerenciamento de Risco
⚠️ Atenção: O mercado cripto opera 24 horas por dia, 7 dias por semana e possui volatilidade extrema.
- Gestão de Risco: Defina sempre stop-loss para limitar perdas operacionais.
- Segurança de Conta: Utilize autenticação em dois fatores (2FA) e proteja suas chaves privadas.
- Cuidado com Promessas do Mercado: Evite sistemas fechados ou promessas de "lucro garantido", pois costumam indicar fraudes ou esquemas de pirâmide.
1. Arquitetura Básica de um Bot de Criptomoedas
- Conexão com a Exchange (API): Permite ler dados de mercado (preços, livro de ofertas) e enviar ordens (comprar/vender).
- Lógica de Decisão (Estratégia): O código que analisa os dados e decide quando comprar ou vender (ex: cruzamento de médias móveis, RSI, ou estratégia de grade).
- Gerenciamento de Risco: Regras rígidas para evitar perdas catastróficas (como stop-loss automático).
2. Ferramentas e Bibliotecas Recomendadas
- Linguagem: Python (a mais utilizada pelo ecossistema de dados e cripto).
- Biblioteca de Conexão: CCXT (
pip install ccxt). É uma biblioteca excelente em Python que unifica a conexão com centenas de corretoras (Binance, Mercado Bitcoin, Coinbase, etc.), facilitando a troca de plataforma caso necessário. - Análise de Dados (Opcional):
pandasenumpypara cálculos de indicadores técnicos.
3. Passo a Passo para Criar um Bot Simples em Python
Passo 1: Instalar a biblioteca CCXT
pip install ccxt
Passo 2: Estrutura Básica do Código (Exemplo com Binance)
import ccxt
import time
# Inicializa a corretora (exemplo usando a Binance em modo de teste/sandbox ou produção)
exchange = ccxt.binance({
'apiKey': 'SUA_API_KEY_AQUI',
'secret': 'SEU_SECRET_KEY_AQUI',
'enableRateLimit': True,
})
# Se for testar apenas a leitura de dados públicos, nem precisa de API Key:
# exchange = ccxt.binance()
simbolo = 'BTC/USDT'
def verificar_preco():
try:
# Busca o preço atual do mercado
ticker = exchange.fetch_ticker(simbolo)
print(f"Preço atual do {simbolo}: ${ticker['last']}")
except Exception as e:
print(f"Erro ao buscar preço: {e}")
# Executa a verificação a cada 10 segundos
while True:
verificar_preco()
time.sleep(10)
4. Próximos Passos para Desenvolver a Estratégia
- Bot de DCA (Dollar-Cost Averaging):
- O bot compra automaticamente uma fração fixa de criptomoeda em intervalos regulares de tempo (ex: todo dia à meia-noite), independentemente do preço, para diluir a volatilidade.
- Bot de Indicador Técnico (Ex: RSI ou Médias Móveis):
- O bot calcula a média móvel dos últimos preços. Se a média curta cruzar para cima da média longa, o bot envia uma ordem de compra via API. Se cruzar para baixo, envia uma ordem de venda.
5. Cuidados Essenciais Antes de Colocar Dinheiro Real
- Use a Conta de Testes (Sandbox): A maioria das grandes corretoras oferece um ambiente de simulação (Testnet) onde você testa o código com dinheiro fictício. Sempre teste seu bot lá primeiro.
- Proteção de Chaves API: Nunca compartilhe sua
API KeyeSecret Key. Evite hardcoded (deixar escritas diretamente no código se for subir para o GitHub); utilize variáveis de ambiente (os.environ). - Tratamento de Erros: O mercado oscila rápido e conexões caem. O código precisa ter blocos
try/exceptrobustos para evitar que o bot quebre por instabilidade de internet ou da exchange.
1. Escolha da Estratégia: Cruzamento de Médias Móveis (SMA)
- Média Rápida (Ex: 9 períodos): Acompanha o preço de curto prazo.
- Média Lenta (Ex: 21 períodos): Acompanha a tendência de médio prazo.
- Sinal de COMPRA: Quando a média rápida cruza de baixo para cima a média lenta.
- Sinal de VENDA: Quando a média rápida cruza de cima para baixo a média lenta.
2. Código Completo do Bot em Python
ccxt e pandas.pip install ccxt pandas
import ccxt
import pandas as pd
import time
# 1. Configuração da Exchange (Exemplo Binance em Testnet/Leitura)
exchange = ccxt.binance({
'apiKey': 'SUA_API_KEY',
'secret': 'SUA_SECRET_KEY',
'enableRateLimit': True,
# Para usar o ambiente de testes da Binance, descomente a linha abaixo:
# 'options': {'defaultType': 'future'} # Ou spot na Testnet
})
SIMBOLO = 'BTC/USDT'
TIMEFRAME = '15m' # Velas de 15 minutos
SMA_RAPIDA = 9
SMA_LENTA = 21
def buscar_dados(simbolo, timeframe, limite=100):
"""Busca histórico de velas (OHLCV) e converte para um DataFrame Pandas."""
ohlcv = exchange.fetch_ohlcv(simbolo, timeframe=timeframe, limit=limite)
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
return df
def calcular_indicadores(df):
"""Calcula as Médias Móveis Simples (SMA)."""
df['sma_rapida'] = df['close'].rolling(window=SMA_RAPIDA).mean()
df['sma_lenta'] = df['close'].rolling(window=SMA_LENTA).mean()
return df
def checar_sinal_e_operar():
"""Analisa os dados e decide a compra ou venda."""
df = buscar_dados(SIMBOLO, TIMEFRAME)
df = calcular_indicadores(df)
# Pegamos as duas últimas velas completas para comparar o cruzamento
penultima = df.iloc[-3]
ultima = df.iloc[-2]
preco_atual = df['close'].iloc[-1]
print(f"[{pd.Timestamp.now()}] Preço atual: ${preco_atual:.2f} | "
f"SMA {SMA_RAPIDA}: {ultima['sma_rapida']:.2f} | SMA {SMA_LENTA}: {ultima['sma_lenta']:.2f}")
# Condição de COMPRA: Média rápida cruzou acima da lenta
if (penultima['sma_rapida'] <= penultima['sma_lenta']) and (ultima['sma_rapida'] > ultima['sma_lenta']):
print("🚀 SINAL DE COMPRA DETECTADO!")
# Exemplo de execução real (Descomente quando estiver pronto):
# ordem = exchange.create_market_buy_order(SIMBOLO, quantidade)
# Condição de VENDA: Média rápida cruzou abaixo da lenta
elif (penultima['sma_rapida'] >= penultima['sma_lenta']) and (ultima['sma_rapida'] < ultima['sma_lenta']):
print("🔻 SINAL DE VENDA DETECTADO!")
# Exemplo de execução real:
# ordem = exchange.create_market_sell_order(SIMBOLO, quantidade)
else:
print("⏳ Sem sinal de negociação no momento. Aguardando...")
# Loop principal de execução do Bot
print("Iniciando o bot de negociação...")
while True:
try:
checar_sinal_e_operar()
except Exception as e:
print(f"Ocorreu um erro no loop: {e}")
# Aguarda 60 segundos até a próxima verificação
time.sleep(60)
3. Adicionando Gerenciamento de Risco (Stop-Loss e Take-Profit)
- Stop-Loss Fixo: Se comprou Bitcoin a $60.000, configure o bot para vender se cair para $58.800 (perda máxima de 2%).
- Take-Profit Fixo: Configure a venda automática de lucro quando o valor atingir $62.400 (lucro de 4%, mantendo risco/retorno em 1:2).
4. Estrutura Recomendada do Projeto
meu_bot_cripto/
│
├── .env # Armazena API_KEY e SECRET_KEY com segurança
├── config.py # Parâmetros (símbolo, timeframe, limites)
├── exchange.py # Conexão com a API do CCXT
├── estrategias.py # Lógica dos indicadores (Média Móvel, RSI, MACD)
└── main.py # Loop principal de execução do robô
Dica de Segurança: Utilize a bibliotecapython-dotenvpara ler o arquivo.enve nunca suba suas chaves de API diretamente no GitHub ou em repositórios públicos.
- A adição do Indicador RSI (Índice de Força Relativa): Para evitar comprar no topo ou vender no fundo, combinando o cruzamento de médias com uma zona de sobrecompra/sobrevenda.
- Implementação de Gerenciamento de Risco (Stop-Loss e Take-Profit): Garantindo que cada operação tenha limites claros de proteção de capital.
1. Atualizando a Estrutura com RSI e Gestão de Risco
- RSI abaixo de 30: O ativo pode estar sobrevendido (bom momento para comprar).
- RSI acima de 70: O ativo pode estar sobrecomprado (bom momento para vender/realizar lucro).
Código Atualizado (estrategias.py ou integrado ao seu script principal)
pandas-ta ou calcular diretamente. Abaixo está o código completo integrado utilizando a biblioteca pandas_ta (instale com pip install pandas-ta).import ccxt
import pandas as pd
import pandas_ta as ta
import time
# Inicialização da Exchange (Exemplo Binance Testnet)
exchange = ccxt.binance({
'apiKey': 'SUA_API_KEY',
'secret': 'SUA_SECRET_KEY',
'enableRateLimit': True,
'options': {'defaultType': 'spot'}
})
SIMBOLO = 'BTC/USDT'
TIMEFRAME = '15m'
QUANTIDADE = 0.001 # Quantidade de BTC a ser negociada por ordem
# Variável de controle para saber se estamos posicionado em compra
posicao_comprada = False
preco_entrada = 0.0
def buscar_dados(simbolo, timeframe, limite=100):
ohlcv = exchange.fetch_ohlcv(simbolo, timeframe=timeframe, limit=limite)
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
return df
def calcular_indicadores(df):
# Médias Móveis Simples
df['sma_rapida'] = ta.sma(df['close'], length=9)
df['sma_lenta'] = ta.sma(df['close'], length=21)
# RSI (Índice de Força Relativa) de 14 períodos
df['rsi'] = ta.rsi(df['close'], length=14)
return df
def executar_robo():
global posicao_comprada, preco_entrada
df = buscar_dados(SIMBOLO, TIMEFRAME)
df = calcular_indicadores(df)
penultima = df.iloc[-3]
ultima = df.iloc[-2]
preco_atual = df['close'].iloc[-1]
rsi_atual = ultima['rsi']
print(f"Preço: ${preco_atual:.2f} | RSI: {rsi_atual:.2f}")
# ==========================================
# LÓGICA DE ENTRADA (COMPRA)
# ==========================================
if not posicao_comprada:
# Condição: Cruzamento de médias + RSI não estando sobrecomprado (< 70)
cruzamento_alta = (penultima['sma_rapida'] <= penultima['sma_lenta']) and (ultima['sma_rapida'] > ultima['sma_lenta'])
if cruzamento_alta and rsi_atual < 70:
print("🚀 SINAL DE COMPRA! Executando ordem a mercado...")
try:
# Enviar ordem de compra real
# ordem = exchange.create_market_buy_order(SIMBOLO, QUANTIDADE)
posicao_comprada = True
preco_entrada = preco_atual
print(f"Posição aberta em: ${preco_entrada:.2f}")
except Exception as e:
print(f"Erro ao executar compra: {e}")
# ==========================================
# LÓGICA DE SAÍDA (GESTÃO DE RISCO)
# ==========================================
elif posicao_comprada:
# Definindo Alvos de Risco (Exemplo: Stop-Loss de 1.5% e Take-Profit de 3%)
perda_maxima = preco_entrada * (1 - 0.015)
lucro_alvo = preco_entrada * (1 + 0.03)
# Cruzamento de baixa para saída técnica opcional
cruzamento_baixa = (penultima['sma_rapida'] >= penultima['sma_lenta']) and (ultima['sma_rapida'] < ultima['sma_lenta'])
if preco_atual <= perda_maxima:
print(f"🛑 STOP-LOSS ATINGIDO! Preço caiu para ${preco_atual:.2f}. Vendendo com prejuízo controlado.")
fechar_posicao()
elif preco_atual >= lucro_alvo:
print(f"🎯 TAKE-PROFIT ATINGIDO! Preço subiu para ${preco_atual:.2f}. Realizando lucro!")
fechar_posicao()
elif cruzamento_baixa:
print("🔻 SINAL TÉCNICO DE SAÍDA (Cruzamento de Baixa). Fechando posição.")
fechar_posicao()
def fechar_posicao():
global posicao_comprada, preco_entrada
try:
# Enviar ordem de venda real para zerar
# exchange.create_market_sell_order(SIMBOLO, QUANTIDADE)
posicao_comprada = False
preco_entrada = 0.0
print("Posição encerrada com sucesso.")
except Exception as e:
print(f"Erro ao fechar posição: {e}")
# Loop Principal
print("Iniciando Bot Avançado com RSI e Gestão de Risco...")
while True:
try:
executar_robo()
except Exception as e:
print(f"Erro no loop principal: {e}")
# Aguarda 60 segundos antes de checar novamente
time.sleep(60)
2. Próximos Passos Recomendados para Evoluir o Sistema
- Configurar o Ambiente de Testes (Testnet):
- Antes de colocar fundos reais, crie uma conta na Testnet da Binance ou da exchange de sua preferência. Insira as credenciais de teste geradas no painel deles para validar se o bot abre e fecha ordens corretamente sem gastar dinheiro.
- Persistência de Dados (Banco de Dados / Logs):
- Adicione uma biblioteca de log em Python (
import logging) para salvar o histórico de todas as operações e erros em um arquivo de texto (bot.log). Isso ajuda a auditar o comportamento do robô enquanto você estiver offline.
- Notificações Automáticas:
- Integre o bot com a API do Telegram (
python-telegram-bot) para que o robô envie uma mensagem no seu celular sempre que abrir uma compra, atingir um stop-loss ou realizar um lucro.
1. Como Criar o seu Bot no Telegram
- Abra o Telegram e procure pelo usuário
@BotFather. - Envie o comando
/newbote siga as instruções para escolher um nome e um username para o seu bot. - O BotFather fornecerá um Token de Acesso (ex:
123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ). Guarde esse token. - Para descobrir o seu Chat ID (o identificador único da sua conversa com o bot), procure por
@userinfobotno Telegram e envie qualquer mensagem; ele responderá com o seu ID numérico.
2. Instalando a Biblioteca de Requisições
requests do Python (ou o urllib). Se não tiver instalado, rode no seu terminal:pip install requests
3. Código Integrado com Telegram, RSI e Gestão de Risco
import ccxt
import pandas as pd
import pandas_ta as ta
import time
import requests
# ==========================================
# CONFIGURAÇÕES DO TELEGRAM
# ==========================================
TELEGRAM_TOKEN = 'SEU_TOKEN_DO_BOT_AQUI'
CHAT_ID = 'SEU_CHAT_ID_AQUI'
def enviar_mensagem_telegram(mensagem):
"""Envia uma notificação formatada para o seu Telegram."""
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
payload = {
'chat_id': CHAT_ID,
'text': mensagem,
'parse_mode': 'Markdown'
}
try:
response = requests.post(url, json=payload, timeout=10)
if not response.ok:
print(f"Erro ao enviar mensagem no Telegram: {response.text}")
except Exception as e:
print(f"Falha na conexão com o Telegram: {e}")
# ==========================================
# CONFIGURAÇÕES DA EXCHANGE E DO ROBÔ
# ==========================================
exchange = ccxt.binance({
'apiKey': 'SUA_API_KEY',
'secret': 'SUA_SECRET_KEY',
'enableRateLimit': True,
'options': {'defaultType': 'spot'}
})
SIMBOLO = 'BTC/USDT'
TIMEFRAME = '15m'
QUANTIDADE = 0.001
posicao_comprada = False
preco_entrada = 0.0
def buscar_dados(simbolo, timeframe, limite=100):
ohlcv = exchange.fetch_ohlcv(simbolo, timeframe=timeframe, limit=limite)
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
return df
def calcular_indicadores(df):
df['sma_rapida'] = ta.sma(df['close'], length=9)
df['sma_lenta'] = ta.sma(df['close'], length=21)
df['rsi'] = ta.rsi(df['close'], length=14)
return df
def executar_robo():
global posicao_comprada, preco_entrada
df = buscar_dados(SIMBOLO, TIMEFRAME)
df = calcular_indicadores(df)
penultima = df.iloc[-3]
ultima = df.iloc[-2]
preco_atual = df['close'].iloc[-1]
rsi_atual = ultima['rsi']
print(f"Preço: ${preco_atual:.2f} | RSI: {rsi_atual:.2f}")
# ==========================================
# LÓGICA DE ENTRADA (COMPRA)
# ==========================================
if not posicao_comprada:
cruzamento_alta = (penultima['sma_rapida'] <= penultima['sma_lenta']) and (ultima['sma_rapida'] > ultima['sma_lenta'])
if cruzamento_alta and rsi_atual < 70:
msg = f"🚀 *SINAL DE COMPRA!*\nAtivo: {SIMBOLO}\nPreço: ${preco_atual:.2f}\nRSI: {rsi_atual:.2f}"
print(msg)
enviar_mensagem_telegram(msg)
try:
# ordem = exchange.create_market_buy_order(SIMBOLO, QUANTIDADE)
posicao_comprada = True
preco_entrada = preco_atual
except Exception as e:
enviar_mensagem_telegram(f"❌ Erro ao executar ordem de compra: {e}")
# ==========================================
# LÓGICA DE SAÍDA (GESTÃO DE RISCO)
# ==========================================
elif posicao_comprada:
perda_maxima = preco_entrada * (1 - 0.015) # Stop-Loss de 1.5%
lucro_alvo = preco_entrada * (1 + 0.03) # Take-Profit de 3%
cruzamento_baixa = (penultima['sma_rapida'] >= penultima['sma_lenta']) and (ultima['sma_rapida'] < ultima['sma_lenta'])
if preco_atual <= perda_maxima:
msg = f"🛑 *STOP-LOSS ATINGIDO!*\nPreço caiu para: ${preco_atual:.2f}\nPrejuízo controlado."
print(msg)
enviar_mensagem_telegram(msg)
fechar_posicao()
elif preco_atual >= lucro_alvo:
msg = f"🎯 *TAKE-PROFIT ATINGIDO!*\nPreço alvo alcançado: ${preco_atual:.2f}\nLucro realizado!"
print(msg)
enviar_mensagem_telegram(msg)
fechar_posicao()
elif cruzamento_baixa:
msg = f"🔻 *SAÍDA TÉCNICA*\nCruzamento de baixa detectado a ${preco_atual:.2f}."
print(msg)
enviar_mensagem_telegram(msg)
fechar_posicao()
def fechar_posicao():
global posicao_comprada, preco_entrada
try:
# exchange.create_market_sell_order(SIMBOLO, QUANTIDADE)
posicao_comprada = False
preco_entrada = 0.0
print("Posição encerrada.")
except Exception as e:
enviar_mensagem_telegram(f"❌ Erro ao fechar posição: {e}")
# Loop Principal
print("Iniciando Bot Integrado com Telegram...")
enviar_mensagem_telegram("🤖 *O bot de criptomoedas foi iniciado com sucesso!*")
while True:
try:
executar_robo()
except Exception as e:
erro_msg = f"⚠️ Erro crítico no loop do bot: {e}"
print(erro_msg)
enviar_mensagem_telegram(erro_msg)
time.sleep(60)

