Como consegui criar um primeiro robot em NTSL - Nelogica Trend System Language
No vídeo publicado em 23 de agosto de 2023 no canal do YouTube mostrei como consegui chegar a um primeiro robot operacional (o que não significa necessariamente lucrativo) para uso na plataforma de análise e operação gráfica
Profitchart da Nelogica.
Seguindo a vídeo Aula
Apresento novo vídeo mostrando como consegui criar um robot operacional em NTSL para Profitchart, seguindo as dicas apresentadas em Aula Prática realizada pela equipe da Nelogica e um especialista em robots ou automatizações de estratégias de execução. A linguagem NTSL, segundo informações da equipe de desenvolvedores, tem muitas particularidades que a tornam diferenciada, porém ainda não é muito conhecida tanto quanto outras (Python, MQL5).
Uma vez preparado e tendo passado pela compilação, o que só ocorre quando o robot já não apresenta mais erros, será necessário efetuar os testes.
Durante o processo de criação do robot, para reduzir o número de erros de digitação e outros tantos por dificuldade de notar claramente sinais de pontuação que fazem parte da linguagem, procurei fazer capturas de tela com os trechos do código que precisaria replicar para chegar ao meu robot operacional e, portanto, livre de erros e compilável.
Não fosse este procedimento, tomaria muito mais tempo e seria muito mais difícil perceber e corrigir os erros.
Para validar a estratégia de execução do robot, sempre é conveniente fazer a otimização dos parâmetros operacionais, como sinais de entrada e saída, indicadores, período de amostragem (dias, semanas, meses, anos, etc), gestão de risco, saída com Trailing Stop e/ou Break Even, etc.
A única versão do Profitchart que atualmente permite a execução de testes e otimizações de alcance mais amplo e recentemente lançada ao público em geral, é o Profit Ultra que está disponível gratuitamente para testes durante período relativamente curto (um mês grátis ou algo entre R$399 e R$500 conforme as corretoras ou diretamente com a Nelogica).
As demais versões são bastante limitadas em termos de alcance ou faixa/intervalo de variação dos parâmetros de testes, ficando restritas basicamente aos testes manuais que obviamente dão muito trabalho, tomam muito tempo e requerem muita atenção.
Ao efetuar mesmo apenas alguns testes variando pouco alguns dos parâmetros operacionais, já pode ficar claro se o robot tem algum valor ou não. Em algumas situações, apenas alterando o nível de escorregamento de ordem já faz com que o resultado seja invertido de um valor razoável positivo para outro valor negativo. O escorregamento de ordens, no aplicativo aparecendo com o título/nome Slipage, é o atraso que ocorre entre a emissão da ordem (seja de compra ou venda), a transmissão ou sua circulação entre o Pc do usuário até a corretora e desta até à bolsa de valores, onde é executada finalmente.
Quanto maior o escorregamento provocado pela latência do sinal maiores os riscos de perdas ou até mesmo de não execução de uma ordem. Isto ocorre em frações de segundo, tanto mais rápido quanto melhor for a conexão. Qualquer perda de tempo neste processo pode significar a diferença entre ganhar ou perder. Se o operador não tomar o cuidado de ativar suas proteções (como o freio de perda "Stop Loss") o mais rápido possível e mesmo de preferência com a sua ordem, os resultados negativos / perdas podem ser grandes. Em muitos casos, particularmente no mercado internacional de pares de moedas também conhecido como Forex, a única forma encontrada para conseguir operar será com o uso de um VPS (Virtual Private Server), ou seja, um Servidor Privado Virtual operando links de alta velocidade. Sem boa velocidade de conexão fica inviável a operação.
Com referência ao uso de robots, algumas vezes, pode até ocorrer a descoberta de parâmetros de operação razoáveis direto na primeira tentativa. Quando isto ocorre é ótimo e já fica possível melhorar o desempenho experimentando alterar cada um dos parâmetros até conseguir um resultado melhor. No teste seguinte, quando feito manualmente, podemos alterar outro valor e verificar se a alteração do resultado no intervalo de tempo de amostra foi melhor ou pior. É um processo exaustivo e geralmente lento.
Por esta razão o próximo plano será usar a mesma lógica operacional de alguns dos exemplos de robots experimentados, seus indicadores e parâmetros usando ajuda de IA (Inteligência Artificial) e os inúmeros aplicativos baseados nela para criar um novo robot, porém na linguagem MQL5 e assim poder realizar testes amplos e automatizados baseados na combinação de vários dos parâmetros ao mesmo tempo, e usando intervalos de variação mais amplos.
Apenas para dar uma ideia do tempo que chega a ser necessário para concluir apenas testes de otimização em robot de mediana complexidade, dependendo do número de parâmetros para análise além da amplitude do intervalo de variação de teste e do tempo de amostragem escolhido (uma semana, um mês, um ano, etc), já cheguei a manter um notebook da família CORE com 16GB de Ram rodando por mais de 23 horas ininterruptas, utilizando 7 dos 8 núcleos em sua capacidade máxima.
Foram necessárias mais de 40.000 combinações em simulação e praticamente não conseguia usar o Pc para outras tarefas.
Imaginem fazer uma análise destas na mão. Sabe lá quanto tempo iria tomar.
Outro ponto importante a considerar é a possibilidade de uso dos dados históricos reais, tick a tick (tick é a unidade de medida unitária para cada variação de valor de um ativo). Isto faz toda a diferença já que normalmente são usados por facilidade e maior rapidez nos testes, apenas 4 pontos com os valores OHLC ( cujo significado é Open, High, Low e Close) de Abertura, Máxima, Mínima e Fechamento para cada vela (candle). Os valores (preços) entretanto não seguem apenas estes 4 pontos e podem ocorrer aberturas e fechamentos de operações entre todos eles, o que pode ter imensas variações dependendo do tamanho de cada vela (candle). Desta forma, o critério de uso de medidas nos candles com base em OHLC vale para chegar a uma análise e otimização apenas grosseira, que permita limitar os intervalos de teste e o número de parâmetros testados.
Após o teste inicial em base a valores OHLC o ideal é submeter o robot a novos testes com base em valores reais, históricos, tick a tick. O comportamento e desempenho de um robot com base nos valores históricos, tick a tick, pode ser totalmente distinto daquele que se consegue com base em OHLC. Novas rodadas de testes serão então obrigatórias, mesmo antes de levar os robots ao teste em modo Replay ou em modo simulador. As diferenças são impressionantes.
Com referência ao uso da ajuda de IA para desenvolver robots com base pelo menos nas linguagens de programação mais conhecidas e populares, é um campo promissor.
Abaixo seguem o link deste último vídeo postado e o link do canal no Youtube:
Como consegui criar um primeiro Robot para Profitchart - VídeoNr38- Bovespa B3 com Linux
Canal:
Bovespa B3 com Linux
E o uso de aplicativos baseados em IA, como fazer?
Seguindo a hype do momento, já estou pesquisando várias alternativas de aplicativos para preparar robots de análise e operação gráfica que sejam aplicáveis pelo menos em algumas das linguagens de programação mais conhecidas como Python e MQL5.
Já tenho testes em andamento com alguns como chatgpt, You.com, Bard e por ultimo com o Bing, por serem algumas das sugestões recebidas ou referências lidas em diversos artigos sobre este tema.
Com base em dados verificados referentes ao mercado financeiro nacional, embora claramente crescente o uso de negociação automatizada ou por algoritmo é muito pequena percentualmente em relação ao número total de operadores. Enquanto, no mercado Norte Americano o percentual de operações feitas com robots supere os 90%, a percepção dos conhecedores deste mercado acreditam que no Brasil ainda não tenhamos alcançado os 5%.
Aliás, vale lembrar o crescimento absurdo ocorrido no número de CPF's únicos registrados na Bovespa a partir do final de 2019 quando haviam 1.6 milhões tendo ultrapassado os 5.2 milhões de CPF's únicos em Março de 2023. Apenas em 2022, o crescimento foi maior que 35%. Os anos de pandemia possivelmente têm sido os maiores responsáveis por este nível de crescimento. Parece, portanto muito lógica a indicação de que precisamos nos preparar para estes novos tempos onde os aplicativos "motorizados" a IA com certeza poderão ser de grande ajuda.
Outras dicas deste autor
Playlist contendo todos os vídeos do canal no YouTube
Como identificar seu hardware no Linux
Após atualização completa (D-U) sidux 2009-03 Momos já está rodando com kernel 2.6.32
Liberado primeiro preview do sidux 2009-02 Aethir
Epidemic tem instalação facílima em pendrive e permite salvar informações, configurações e aplicativos sem burocracia
Leitura recomendada
Conectividade Social e Squid
Tenha 4 terminais em uma única tela
Verificando a versão do Slackware
Criando sub-domínios no Bind
Atualização do Arch Linux sem acesso à internet
Comentários
Nenhum comentário foi encontrado.