2020-08-17 – Trading – Gráficos de Cotações em modo de texto para terminais Linux em C++

1º passo no projecto dos sistemas de trading dado. Além de criar ferramentas de conversão de históricos de cotações (inclusivé time-frames), criei uma libraria de gráficos em modo de texto, para poder exibir vários tipos de gráficos nos terminais que tanto gosto, em C++, claro.

Vou começar pelos gráficos, funcionam até com gráficos numa única linha, pois cada caractere permite 8 níveis de tamanho de gráfico, no caso de gráficos a 2 cores (preto e branco), e umas 5 tonalidades de cinza se quisermos gráficos em tons de tonalidades. Existem gráficos na horizontal, e na vertical, sendo que também numa única coluna podemos ter 8 níveis diferentes de valor, e assim podemos ter gráficos de 1 linha ou 1 coluna, relativamente perceptíveis.

Existe ainda a opção com caracteres à escolha, como o gráfico com cifrões, que ficou, lindo por acaso. 🙂

Quanto aos gráficos de tonalidades, criei de várias formas: uma distribui a tonalidade de acordo com certos thresholds pré-definidos, e no outro decidi criar de forma a que só se for um valor incompleto no topo, é que tem tonalidades.

Quanto aos outros, há gráficos de 2 valores (black or white), ou 8/9 tonalidades, mas de várias formas, ocupando o quadrado todo, partes dele, etc.

Nos de duas cores (b&w) podem ver que um deles têm vários níveis nos topos e não é tão quadrado, ou seja, têm 8 tonalidades nas pontas, o que torna os topos mais suaves.

Agora podemos definir gráficos com 1001 tamanhos, eu depois vou adaptá-los aos meus ecrãs de exibição de dados.

Podemos defini-los com o tamanho que quisermos, até com um único caractere (o qual terá só 8/9 níveis possíveis).

Criarei mais tarde gráficos de queijo em modo de texto, barra, etc. Talvez OHLC se um dia precisar, mas ficam bonitos, por acaso.

Quanto às funções de tratamento de cotações, servem para outros tipos de dados também, se alguém quiser eu torno em comandos independentes, tal como o dos gráficos que poderá ser um comando que gera gráficos em texto com base em csvs, por exemplo.

Sobre o tratamento de históricos, podem ver no canto inferior esquerdo 3 funções distintas, primeiro eu faço um cat/head ao ficheiro original, depois podem ver que eu o altero com base em padrões definidos a nível de caractere.

Depois simplesmente uso outro tipo de alteração, um split com reordenação de campos.

No 3º, faço uma conversão horária, onde converto “velas” de períodos de 1 minuto, em “velas” horárias, time-frames de 1 hora.

Três funções distintas, que podem ser tornadas em comandos isolados, bem como criação de gráficos.

Tudo isto ser-me-á muito útil no futuro projecto MMAT, para investigação e back-testing dos meus sistemas de trading.

2020-08-17.

Leave a Reply

Your email address will not be published. Required fields are marked *

RSS
Follow by Email
LinkedIn
LinkedIn
Share