🚀 TradeCopierBot — Cópia de Negociações Rápida, Limpa e à Prova de Corretoras (Local/VPS) 🔁✨
Copie suas negociações de uma CONTA MESTRA para uma (ou mais) CONTA ESCRAVA com um copiador leve, orientado a eventos, projetado para condições reais de negociação: corretoras diferentes, nomes de símbolos diferentes, regras de lote diferentes.
Perfeito para execução multi-conta, escalonamento de risco e distribuição de estratégias—com logs detalhados de depuração para que você sempre saiba o que está acontecendo. 🧠📈
✅ Otimizado para configurações Local / VPS (mesma máquina).
❌ Não projetado para cTrader Cloud (as instâncias são isoladas, então os sinais não podem ser compartilhados). ☁️🚫
Atenção: se você tiver duas contas cTrader diferentes, precisará comprar dois cBots; caso contrário, não poderá copiá-las. Estamos à sua total disposição para qualquer informação.
🧠 Como funciona (CONTA MESTRA → CONTA ESCRAVA) 🧩
🔁 1) Transporte de sinal (como as negociações “viajam”)
Este copiador usa cTrader LocalStorage (escopo do dispositivo) como um “barramento de mensagens” compartilhado.
✅ CONTA MESTRA
- Escuta eventos de posição: Aberta / Modificada / Fechada
- Cria um
TradeSignal(ABRIR / MODIFICAR / FECHAR) - Anexa-o a uma lista de sinais em LocalStorageScope .Device
- Chama Flush() para que a CONTA ESCRAVA possa ler imediatamente
✅ CONTA ESCRAVA
- Executa um Timer a cada Intervalo de Pesquisa segundos
- Chama Reload()
- Lê a lista de sinais
- Processa apenas novos sinais (usando
_lastSignalIndexProcessed)
🧷 2) Mapeamento de posição (para que FECHAR funcione)
Quando a CONTA ESCRAVA abre uma negociação, ela armazena:
🧩 MasterPositionId → SlavePositionId
Este mapeamento também é salvo no LocalStorage, para que sobreviva a reinicializações:
- ✅ FECHAR ainda funciona após reinicialização
- ✅ MODIFICAR ainda encontra a posição correta
🧭 3) Tradução de símbolo (símbolo da CONTA MESTRA → símbolo da CONTA ESCRAVA)
🗺️ Mapa de Símbolos (CONTA MESTRA=CONTA ESCRAVA;...)
Usado quando os nomes dos símbolos diferem entre corretoras/contas.
Formato:
CONTA MESTRA=CONTA ESCRAVA;CONTA MESTRA2=CONTA ESCRAVA2;...
Exemplo (seu caso):
- CONTA MESTRA abre
USTEC - CONTA ESCRAVA deve negociar
US100
➡️ USTEC=US100
✅ Lado esquerdo = símbolo vindo da CONTA MESTRA
✅ Lado direito = símbolo na corretora da CONTA ESCRAVA
📏 4) Lógica de volume (a parte chave) 🔥
✅ Funciona em lotes/quantidade (decimais suportados)
Para lidar com decimais (0,10, 0,01, etc.), a CONTA ESCRAVA:
- Calcula lotes desejados
- Aplica multiplicador / mínimo / passo
- Converte lotes → volume usando
QuantityToVolumeInUnits(lots) - Envia a ordem usando uma sobrecarga que aceita volume double ✅
Isso é o que o torna robusto mesmo quando as corretoras aplicam regras diferentes de precisão de lote.
⚙️ Parâmetros explicados (com ícones)
🧩 Núcleo
- 🧭 Modo
-
Master= publica sinaisSlave= lê sinais e copia negociações
- 🧷 Id do Grupo de Cópia
-
- Canal de comunicação. CONTA MESTRA e CONTA ESCRAVA devem coincidir (ex.:
DEFAULT)
- Canal de comunicação. CONTA MESTRA e CONTA ESCRAVA devem coincidir (ex.:
- ⏱️ Intervalo de Pesquisa (segundos)
-
- CONTA ESCRAVA verifica novos sinais a cada N segundos
- 🐞 Modo de Depuração
-
- Imprime logs detalhados (recomendado durante a configuração)
🗺️ Tradução de Símbolos
- 🧾 Mapa de Símbolos (CONTA MESTRA=CONTA ESCRAVA;...)
-
- Exemplo:
USTEC=US100;XAUUSD=GOLD;NAS100=USTEC
- Exemplo:
🎚️ Escalonamento de volume (O MAIS IMPORTANTE) ✅
🔢 Multiplicador global
- ➗ Multiplicador de Volume
-
- Escala todos os lotes copiados:
desiredLots = masterLots * VolumeMultiplier
🎛️ Multiplicador por símbolo (sua ferramenta principal)
- 🧷 Mapa de Multiplicador de Volume (SYM=mult;...)
-
- Substitui o multiplicador por símbolo (símbolo do lado da CONTA ESCRAVA)
- Exemplo:
-
US100= 0,10- Formato italiano também é OK:
US100=0,10
✅ É assim que você alcança: 1,00 na CONTA MESTRA → 0,10 na CONTA ESCRAVA
🧱 Restrições de lote da corretora (mínimo e passo)
- 🧱 Quantidade Mínima Padrão (0=desligado)
-
- Lotes mínimos globais se ativado
- 🧱 Mapa de Quantidade Mínima (SYM=val;...)
-
- Lotes mínimos por símbolo
- Exemplo:
US100=0,10
- 🪜 Passo de Quantidade Padrão (0=desligado)
-
- Passo global se ativado
- 🪜 Mapa de Passo de Quantidade (SYM=val;...)
-
- Passo por símbolo
- Exemplo:
US100=0,10→ valores permitidos: 0,10, 0,20, 0,30…
🧯 Comportamentos de segurança
- 🧷 Usar Quantidade Mínima como Lotes Fixos
-
- Se
true: CONTA ESCRAVA ignora o tamanho da conta mestre e sempre usa MinQty (dimensionamento fixo)
- Se
- ⚠️ Comportamento Abaixo do Mínimo
-
UseMin= se abaixo do mínimo → aumenta para o mínimoSkip= se abaixo do mínimo → não abre
- 🔁 Tentativas de Volume Inválido
-
- Se a corretora retornar Volume Inválido, tenta pequenos ajustes até N vezes
🎯 Lógica de cópia SL/TP
- 🛡️ Copiar SL/TP como Distância quando o Símbolo for diferente
-
- Se os símbolos da CONTA MESTRA e da CONTA ESCRAVA forem diferentes:
- SL/TP é copiado como distância da entrada, não preço absoluto
- Isso mantém os controles de risco consistentes entre os instrumentos
✅ Configuração recomendada (USTEC → US100, lote da CONTA ESCRAVA = 0,10)
Na CONTA ESCRAVA:
🗺️ Tradução de símbolo:
Mapa de Símbolos=USTEC=US100
🎛️ Escalonamento de volume:
Mapa de Multiplicador de Volume=US100=0,10
🧱 Restrições da corretora:
Mapa de Quantidade Mínima=US100=0,10Mapa de Passo de Quantidade=US100=0,10
Resultado:
- ✅ CONTA MESTRA 1,00 → CONTA ESCRAVA 0,10 em US100
☁️ Importante: Apenas Local/VPS (não Cloud) ❌
🖥️ Local/VPS ✅
Funciona porque CONTA MESTRA e CONTA ESCRAVA compartilham o mesmo LocalStorageScope .Device (mesma máquina/ambiente).
☁️ cTrader Cloud ❌
Não funciona porque as instâncias Cloud são isoladas, então não compartilham LocalStorage e a CONTA ESCRAVA não pode ver os sinais da CONTA MESTRA.
✅ Conclusão:
- ✔️ Use no mesmo PC ou em um VPS onde ambas as instâncias rodem juntas
- ❌ Para Cloud você precisa de um relé externo (servidor HTTP/WebSocket)
5 | 67 % | |
4 | 0 % | |
3 | 33 % | |
2 | 0 % | |
1 | 0 % |