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
Linux Mint 7 não precisou de "cheatcodes" para rodar em NoBo Acer Aspire
Playlist contendo todos os vídeos do canal no YouTube
Com descongelamento do Testing no Debian - aptosid lança versão 2011-01 codinome Gueras
Lxde no sidux Momos 2009-03 - leveza, riqueza de recursos e performance
KDE 4.3.0 no sidux Aethir (2009-02) após distr-upgrade - desempenho excelente
Leitura recomendada
Use o Android para ajudar a encontrar curas e procurar vida extraterrestre
Como configurar o Apache para rodar uma aplicação WSGI básica
Google Chrome OS - Uma oportunidade de divulgar e expandir o Linux
Acessar arquivos no Android pelo PC em rede wifi
Instalando e configurando softmodem no Slackware 12
Comentários
Nenhum comentário foi encontrado.