SkdonSeriesMulti
- Experts
-
Igor Bulyshev
Умный, красивый, в меру упитанный и талантливый трейдер-программист в полном расцвете сил!!)) - Versão: 6.85
Assistente (Robô) de Negociação para Múltiplas Moedas (28 Pares) – Longo Prazo
Este assistente foi projetado para negociação de longo prazo (perpétua) em múltiplas moedas, operando simultaneamente em 28 pares de moedas (lista fixa no código) no timeframe M30. Lista de pares: EURUSD, GBPUSD, AUDUSD, USDCAD, USDJPY, USDCHF, GBPJPY, EURJPY, AUDCAD, AUDJPY, CHFJPY, EURCHF, EURGBP, NZDJPY, NZDUSD, CADJPY, AUDCHF, AUDNZD, CADCHF, EURAUD, EURCAD, EURNZD, GBPAUD, GBPCHF, GBPCAD, GBPNZD, NZDCAD, NZDCHF.
Seu objetivo é capturar movimentos de tendência e gerenciar riscos por meio de mecanismos especiais de média (averaging), ordens de bloqueio (lock) e proteção de emergência.
A estratégia principal é de tendência, utilizando meu indicador Skdon2, que emite um sinal de COMPRA ou VENDA a cada barra fechada.
Quando o sinal muda, o assistente fecha as posições antigas de acordo com uma regra específica e coloca uma série de 4 (quantidade definida nas configurações) ordens pendentes (BUYSTOP ou SELLSTOP) na direção do novo sinal.
1. O que o assistente faz em resumo
Ele analisa cada par de moedas no timeframe de 30 minutos usando seu próprio indicador incorporado ao código.
Quando o indicador emite um sinal de compra ou venda, o assistente abre uma série de ordens: uma ordem de mercado (imediatamente ao preço atual) e várias ordens pendentes (acima do mercado para compra, abaixo para venda) com um passo definido nas configurações. O número de ordens pendentes é definido pelo parâmetro InpPendingCount (padrão 4, mas no testador é reduzido forçosamente para 2 para evitar erros de limite).
Se o sinal mudar para o oposto, o assistente fecha a série antiga (total ou parcialmente) e abre uma nova série na nova direção.
Desta forma, ele segue a tendência, invertendo constantemente a posição quando o sinal muda.
2. Modos de operação
O assistente possui três modos principais:
-
Modo 0 – Normal: O assistente opera em plena capacidade: abre novas séries, gerencia-as e utiliza compensação e trailing stop. Este é o modo principal para a negociação diária.
-
Modo 1 – Exit market (Saída): Novas séries não são abertas. As séries existentes continuam sendo gerenciadas (trailing, média, locks), mas assim que forem fechadas, novas não serão abertas. Usado quando você deseja sair gradualmente do mercado, sem fechar tudo abruptamente.
-
Modo de Liquidação (Automático): É ativado automaticamente se, em qualquer par, a perda exceder uma porcentagem definida do saldo (padrão 5%). Quando ativado:
-
A abertura de novas séries é proibida.
-
Apenas as séries lucrativas começam a ser fechadas para acumular lucro e reduzir a perda geral.
-
O modo é desativado quando a perda geral se torna menor que a porcentagem definida (padrão 4%) ou quando não restam ordens de mercado. Após isso, a operação normal é retomada.
-
3. Como as séries são abertas e fechadas
O sinal do indicador Skdon2 é calculado a cada nova barra M30. Se o sinal mudar (ex: era "comprar" e passou a "vender"), o assistente considera que a tendência reverteu.
Se ainda não houver uma série, ao aparecer um sinal, é aberto:
-
Ordem de mercado (Buy ou Sell) – imediatamente.
-
Várias ordens pendentes (Buy Stop ou Sell Stop) a uma distância StepDistance umas das outras. A quantidade é definida pelo parâmetro PendingCount .
Se uma série já existe e o sinal mudou para o oposto:
-
Todas as ordens pendentes são fechadas (removidas).
-
As ordens de mercado são fechadas de acordo com as regras:
-
Se o lucro total da série for positivo – todas as ordens de mercado da série são fechadas.
-
Se o lucro total for negativo – apenas as ordens que estão com lucro são fechadas, e as perdedoras permanecem (para não realizar a perda).
-
-
Após isso, uma nova série é aberta na nova direção.
4. Modo de Compensação (Média e Locks)
Quando a perda acumulada em um par excede 2,5% do saldo, o assistente ativa o modo de compensação para esse par. Neste modo, operam:
-
Média (Averaging): A ordem mais perdedora no par é identificada. Quando o preço se afasta da última ordem de média pela distância AveragingStepPoints , uma nova ordem é aberta na mesma direção da ordem perdedora. Isso permite reduzir o preço médio de entrada. O lote de cada média subsequente é aumentado por um fator multiplicador AveragingMultiplier , mas de forma fracionada (o lote inicial é calculado como lote_inicial / FractionSize ). Isso proporciona um crescimento suave dos lotes, não abrupto. Assim que o lucro total desta série de compensação (ordem alvo + todas as médias) atingir o valor alvo ( lote_inicial * 250 ), toda a série é fechada com lucro.
-
Ordens de Bloqueio (Locking): São abertas quando a perda excede 3% e há um desequilíbrio entre o volume total de Buy e Sell (diferença maior que 0,01 lote). A ordem de bloqueio é aberta contra a direção predominante (se houver mais Buy, abre-se Sell, e vice-versa). Isso protege parcialmente a posição. O lote do lock = desequilíbrio * LockLotPercent / 100 . Após a abertura do lock, o desequilíbrio diminui, e o próximo lock será de volume menor.
-
Novos locks são abertos apenas na direção que melhora o anterior:
-
Para locks de Sell – quando o preço cai (melhora a posição Sell).
-
Para locks de Buy – quando o preço sobe.
-
A distância entre locks é LockStepPoints . Isso evita a abertura frequente de locks no mesmo nível. Os locks também são gerenciados com trailing stop (o trailing stop está presente em todas as ordens no par onde o modo de compensação está ativo, exceto nas ordens de média).
-
Trailing Stop: Atua apenas nos pares em modo de compensação. Para cada ordem (exceto as de média), o trailing é ativado quando o preço se afasta do preço de abertura em pelo menos TrailingActivation pontos. Em seguida, o stop-loss é movido para a distância TrailingStopDist do preço atual, mas não mais frequentemente do que a cada TrailingStep . Isso permite realizar lucro à medida que o preço se move.
5. Mecanismos de Proteção Adicionais
-
Proteção contra Gaps: Na abertura de uma nova barra M30, é verificado se houve um gap (salto brusco de preço) entre o fechamento da barra anterior e a abertura da atual. Se o tamanho do gap exceder GapThreshold , o assistente remove todas as ordens pendentes neste par e fecha as ordens de mercado (se o lucro total for positivo – fecha todas; se negativo – fecha apenas as lucrativas). Após um "período de resfriamento" de 40 segundos, o sinal é recalculado e, se tiver mudado, uma nova série é aberta.
-
Fechamento de Ordens Perdedoras Antigas: A cada 8 minutos, são verificadas as ordens de mercado abertas há mais de 35 horas e que estão em perda. Para esta ordem perdedora "pior", o assistente busca séries lucrativas em outros pares e as fecha até acumular lucro suficiente para cobrir a perda + uma pequena margem. Em seguida, a própria ordem perdedora antiga é fechada.
-
Fechamento de Ordens Opostas: Se no mesmo par houver ordens de Buy lucrativas e ordens de Sell perdedoras (ou vice-versa), e o lucro de um lado cobrir a perda da ordem mais perdedora da série com margem, as ordens lucrativas são fechadas juntamente com a ordem mais perdedora, para reduzir o risco geral.
6. Painel de Informação
No gráfico, é exibido um painel com dois blocos:
-
Painel Esquerdo: Modo atual, status de liquidação, lucro alvo, lista de pares em modo de compensação.
-
Painel Direito: Lucro dos últimos dias, número de ordens, volumes, perdas antigas, últimas ações do robô.
7. Descrição de Todas as Configurações (Parâmetros de Entrada)
-
Grupo 1: Configurações Básicas
-
Base magic number=100 – Identificador de todas as ordens do assistente. Se você tiver várias cópias em contas diferentes, altere este número para que não interfiram umas nas outras.
-
Work mode=0 – 0: modo normal; 1: modo de saída (novas séries não são abertas). Usado para finalização manual.
-
Risk percent=30 – Influencia o tamanho do lote. Quanto maior o número, maior o lote. Ex: com 30, lote base = saldo * 0,003 / 10000 (fórmula empírica). Recomenda-se ajustar ao seu risco.
-
Minimum gap=35 – Tamanho mínimo do gap em pontos padrão para ativar a proteção. Para pares JPY, ponto = 0,01; para os demais, ponto = 0,0001.
-
Pending orders count=4 – Quantas ordens pendentes adicionar a cada ordem de mercado ao abrir uma série. Quanto maior, mais profunda a grade.
-
Distance between pendings=15 – Passo entre as ordens pendentes em pontos. Influencia a densidade da grade.
-
Show info panel=true – Exibe o painel de informações no gráfico. Pode ser desligado para economizar recursos e durante testes.
-
-
Grupo 2: Modo de Liquidação
-
Loss % to activate=5.0 – Se a perda em qualquer par exceder esta porcentagem do saldo, o modo de liquidação é ativado.
-
Loss % to exit=4.0 – Quando a perda geral em todos os pares for menor que esta porcentagem, o modo de liquidação é desativado.
-
-
Grupo 3: Compensação e Trailing
-
Lock lot percent=15.0 – Percentual do desequilíbrio de volumes usado para calcular o lote da ordem de bloqueio.
-
Lock step points=5 – Passo entre as ordens de bloqueio em pontos. Um novo lock é aberto apenas quando o preço se afasta essa distância na direção de melhora.
-
Averaging step points=20 – Passo entre as ordens de média. Uma nova ordem de média é aberta quando o preço percorre essa distância a partir da última ordem de média.
-
Averaging multiplier=1.7 – Fator de multiplicação do lote de cada média subsequente. Valor >1 aumenta os lotes.
-
Trailing activation=18 – Quantos pontos o preço deve se afastar da abertura para ativar o trailing stop.
-
Trailing stop distance=15 – Distância do preço atual para definir o stop-loss durante o trailing. Deve ser menor que a ativação para que o stop fique no lucro.
-
Trailing step=2 – Mudança mínima no stop-loss ao atualizar. Protege contra modificações frequentes.
-
-
Grupo 4: Fechamento Fracionado
-
Profit factor=250.0 – Usado no mecanismo auxiliar de fechamento de ordens opostas.
-
Fraction size=5.0 – Tamanho da parte fracionária para as médias. O primeiro lote de média = lote_inicial / FractionSize . Quanto menor o número, maior o primeiro lote de média.
-
8. Conselhos Práticos Importantes
-
Comece com uma conta demo para entender o comportamento do assistente com suas configurações.
-
Certifique-se de que TrailingStopDist seja sempre menor que TrailingActivation , caso contrário, o trailing colocará o stop-loss em perda.
-
Em alta volatilidade, aumente GapThreshold e os passos ( StepDistance , LockStepPoints , AveragingStepPoints ) para evitar ativações frequentes.
-
Para negociação agressiva, aumente LockLotPercent e AveragingMultiplier , e diminua os passos.
-
O modo de liquidação é uma proteção extrema. Se for acionado com frequência, significa que o risco está muito alto – diminua RiskPercent ou aumente os limites de ativação.
-
O assistente é totalmente automático, mas requer uma conexão estável com a internet e que todos os 28 pares estejam disponíveis na lista de símbolos.
Vantagens do Assistente:
-
Multi-moedas: 28 pares. Alta diversificação reduz a dependência de uma única moeda.
-
Limpeza automática da carteira: O robô liquida perdas antigas e posições opostas automaticamente, sem necessidade de controle manual.
-
Objetivo global de lucro: Realização regular do resultado geral, suavizando a curva de crescimento de capital.
-
Alta tolerância a falhas: Inclui tentativas repetidas em caso de erros, proteção contra falta de barras, verificação de permissões de negociação.
Riscos e sua Minimização:
-
Risco de Mercado (mudança brusca de tendência, grandes perdas): Fechamento parcial de posições na mudança de sinal + objetivo global + limpeza de ordens perdedoras antigas. Ordens perdedoras não são mantidas por semanas ou meses.
-
Gaps (fins de semana, notícias importantes): Algoritmo de proteção especial: com gap ≥ 35 pontos (limite configurável), as ordens pendentes no par são fechadas; após 40 segundos (período de resfriamento), ocorre a análise do estado do indicador e a continuação da operação.
-
Falha Técnica (queda de energia, reinicialização): Todos os estados são recuperados na reinicialização do sistema: a direção das séries é lida a partir das ordens existentes, o estado do indicador para cada par é constantemente salvo e comparado com o estado após a reinicialização.
-
Drawdown após série de perdas: Graças ao algoritmo de objetivo global e ao mecanismo de ordens opostas, as perdas são compensadas pelo lucro dos lados dominantes.
-
Período de operação: 24 horas por dia, de segunda a sexta-feira.
O assistente é totalmente automático e não requer intervenção manual.
Boa sorte nas negociações!
As capturas de tela fornecidas mostram relatórios de teste do assistente em vários pares de moedas por 3 anos. Nos testes, foram utilizadas as configurações padrão. Observe que este é um robô de negociação multi-moedas e, ao testar no testador de estratégias em um único par selecionado, o algoritmo de fechamento de ordens perdedoras antigas usando o lucro de séries de ordens em outros pares não funciona.
Características de operação no testador
Para um teste bem-sucedido, o assistente limita automaticamente o número de ordens pendentes a 2 e o número total de ordens abertas a 30. Isso é feito para evitar erros 148 (exceder o limite de ordens).
