Um processo de script é um componente criado pelo usuário, que tem como objetivo executar ações de acordo com eventos do mercado, tais como:
•exibir uma mensagem na tela;
•enviar um e-mail;
•emitir um aviso sonoro;
•enviar ordens.
Objetivo: Permitir que o usuário do Tryd (“Usuário”) crie colunas para os Monitores de Cotações, indicadores para os gráficos e alertas e estratégias para envio de ordens ou avaliação do mercado.
Pré-requisitos: Para facilitar o entendimento dos recursos implementados, os usuários devem ter conhecimento avançado:
•de pelo menos uma linguagem de script/programação (ex. JavaScript ou Java); •dos mercados negociados na BVMF; e •de análise técnica.
Responsabilidade: O Usuário declara ter conhecimento de que o uso correto dos recursos disponibilizados é de sua inteira e única responsabilidade, bem como todas as decisões tomadas com base em informações geradas ou ordens enviadas pelos scripts do Usuário, não cabendo qualquer responsabilização da CellBroker pelo uso inadequado ou irregular dos recursos em questão. O Usuário também declara ter total conhecimento de que a criação dos scripts, bem como de seus resultados são de sua inteira responsabilidade, como também são de sua responsabilidade o funcionamento do seu computador e o acesso à internet. A Cellbroker ressalta que o seu mau funcionamento pode interferir de forma negativa no funcionamento dos scripts, não podendo ser atribuída, pelo Usuário à CellBroker, qualquer falha decorrente de eventuais falhas. O Usuário declara ainda ter conhecimento e concorda que: (i) deverá manter os requisitos mínimos necessários para o bom funcionamento do seu computador e que o Sistema Operacional, Excel, Antivirus, Firewall e outros softwares existentes na máquina do Usuário devem estar devidamente licenciados e atualizados; (ii) o acesso à máquina do Usuário deve ser restrito; e (iii) a responsabilidade deste ambiente estar livre de vírus e/ou de qualquer outro malware é inteiramente do Usuário, não podendo ser imputada qualquer obrigação ou responsabilidade à CellBroker neste sentido.
Isenção de responsabilidade: À vista do exposto acima, o Usuário declara estar plenamente ciente de que a CellBroker não é e nem poderá ser responsabilizada por quaisquer problemas decorrentes da infraestrutura de responsabilidade do próprio Usuário, que inclui o hardware, os softwares, as licenças e o acesso à internet, bem como pelas decisões e/ou pelo funcionamento dos seus scripts. O Usuário reconhece que a CellBroker não é responsável pela infraestrutura da Corretora (servidores, links, rede, segurança, etc.) e nem por problemas na BM&FBOVESPA S.A. - Bolsa de Valores, Mercadorias e Futuros ou em outras plataformas de negociação, bem como suas respectivas redes de comunicação, e que, portanto, será isenta da responsabilidade de indenizar qualquer dano ou prejuízo que o Usuário venha a ter ou sofrer em função da criação, utilização e execução dos scripts. A CellBroker não tem qualquer relação ou ingerência sobre o armazenamento do código e dos scripts criados pelo Usuário, cuja guarda e manutenção é de exclusiva obrigação do próprio Usuário e, desta forma, não poderá a CellBroker ser responsabilizada em caso de perda ou mau uso de tais informações e dados. Mesmo não sendo a Cellbroker obrigada ou responsável pela guarda/vigilância de tais informações, o Usuário autoriza expressamente a CellBroker, a qualquer momento e com a finalidade de auxílio na manutenção e suporte das informações, armazenar em suas trilhas de auditoria o código dos scripts criados pelo Usuário. O Usuário concorda expressamente que, caso seja necessário, a CellBroker poderá analisar, depurar, corrigir ou desenvolver scripts à pedido do próprio Usuário, sendo certo que haverá um custo por hora/homem para alocação de mão de obra de programação.
Finalmente, o Usuário declara ter pleno conhecimento de que: •O recurso para negociação só estará disponível em Corretoras que estejam homologadas com a solução de scripts do Tryd; •A Corretora e a CellBroker não garantem a execução das ordens enviadas, devendo o Usuário calibrar o melhor preço para a execução das ordens; •As ordens geradas pelos scripts seguem o mesmo fluxo das ordens normais, podendo ser rejeitadas pela corretora/bolsa em função dos limites de negociação e das regras que regulamentam o mercado de capitais (por exemplo, horários de negociação e estado do papel); e •Toda comunicação através da rede mundial de computadores está sujeita a interrupções ou atrasos, podendo impedir ou prejudicar o envio de ordens ou a recepção de informações atualizadas podendo invalidar ordens ou negociações. |
Processos são scripts escritos em Groovy que são executados pelo Tryd. Através dessa linguagem o usuário deverá implementar uma Classe que será responsável por executar os comandos disponibilizados pela API (Interface de Programação de Aplicativos) de Processos do Tryd. Cada processo funciona de forma independente, sendo assim, a execução de um Processo não interfere na execução de outro. Isso é garantido pelo fato de que cada um é executado em sua prórpia linha de execução (Thread). Após o Processo ser devidamente configurado e iniciado pelo usuário o mesmo será executado Tryd. O status de sua execução poderá ser monitorada através da tela de Processo de Script: Menu: Janela > Mostrar Visões > Outros > Script > Processos de Script
Da mesma forma que esse Processo pode ser iniciado a qualquer momento, ele também poderá ser interrompido pelo usuário, seja pela tela de Processos de Script diretamente, seja pelo próprio código do script. A execução de um Processo somente irá acontecer quando: ▪A tela de Processos de Script estiver aberta e o usuário iniciar o Processo, utilizando o botão Podem ser interrompidos quando: ▪O usuário utilizar o botão ▪O Processo expirar. ▪A sua interrupção for programada pelo usuário. ▪ A tela de Processos de Script for fechada. ▪O Tryd for fechado. |
A API de Processos do Tryd é composta de algumas classes que tem proporcionam ao usuário acesso a diversos recursos, tais como: ▪Indicadores de análise técnica. ▪Roteamento de ordens. ▪Exibição de mensagens. ▪Log de mensagens. ▪Armazenamento de valores. ▪Além dos recursos nativos da própria linguagem. De todas as classes existentes na API (veja a documentação completa na seção Documentação da API) a mais importante é a classe Process. Cada Processo criado pelo usuário deve ser uma subclasse desta classe abstrata. Cada Processo em execução é uma instância da classe criada, que é filha de Process. Ao ser Parado, esta instância é descartada. Para que o usuário possa interceptar os eventos e executar ações, basta que nessa subclasse os métodos corretos sejam sobrescritos. Observe abaixo uma subclasse de Process:
Note que alguns eventos recebem parâmetros contendo dados relativos ao evento, como no caso do método onQuoteEvent(QuoteEvent event), que recebe um objeto do tipo QuoteEvent, contendo os dados do papel que sofreu alterações. |
A criação de um Processo envolve algumas etapas:
1.Criar de uma classe filha de Process. 2.Implementar os métodos necessários para realizar a interceptação dos eventos. 3.Iniciar a execução do Processo Para o primeiro passso, abra a tela de Processos de Script e, em seguida, clique no botão Adicionar na parte superior da tela. Tela com o botão Adicionar destacado Tela de cadastro do Processo, com o modelo da classe a ser implementada
A janela de cadastro contém um molde da classe filha, mostrando os métodos relativos aos eventos que podem ser interceptados. O exemplo a seguir mostra como enviar um e-mail no momento em que o Processo for iniciado. Para executar uma ação no momento em que o Processo for iniciado, adicione o código do envio de e-mail no método onStart, como é mostrado abaixo:
Note que como a intenção é executar uma ação apenas no momento em que o Processo for iniciado, não é preciso manter os demais métodos na classe. Com a classe criada, preencha o campo Nome, que será utilizado para identificar o processo na lista de processos. Após isso, clique no botão OK para confirmar a criação do novo Processo e voltar à tela de Processos de Script. Tela de Processos de Script com o Processo "Envio de email"
Como último passo, clique com o botão direito no Processo que foi cadastrado e selecione a opção Iniciar, como mostrado na imagem acima. O Processo será iniciado e enviará um e-mail, de acordo com o que foi programado na classe. Como o código do envio do e-mail foi adicionado no método onStart, o envio será feito apenas uma vez, no momento em que o Processo for iniciado. Na seção Exemplos podem ser encontrados outros tipos de Processos que envolvem interceptar eventos de cotação de papeis, utilização de Indicadores de Analise Técnica, entre outros. |
Um Processo cadastrado pode estar: •Rodando: Um Processo rodando é aquele que é capaz de responder aos eventos e realizar ações. •Interrompido: Um Processo interrompido não é capaz de responder a nenhum evento. Através do Estado do Processo é possível saber se ele está rodando ou está interrompido: • • • • • • • Estas transições de status poderão ser interceptadas pelo usuário em sua subclasse, bastando sobrescrever os seguintes métodos: •onStart(): Quando um Processo é Iniciado, o método onStart() será chamado, permitindo que o usuário saiba quando o processo iniciou. Apenas a partir desse momento é o que os recursos do Processo poderão ser utilizados. Entende-se como recursos todos os métodos da classe Process. Este método será chamado apenas uma vez. •onStop(): Ao ser interrompido, o método onStop() será chamado, independente se o processo foi interrompido pela solicitação na tela de Processos de Script (Parado), se expirou (Expirado) ou se finalizou (Finalizado). Abaixo poderá ser visualizado como ocorrem as transições de status, quais métodos são chamados e quando os recursos de Process estarão disponíveis. Diagrama do Ciclo de Vida de um Processo
|
Todas as classes disponibilizadas para o desenvolvimento de Processos de Script estão documentadas utilizando o padrão Javadoc. Em Documentação da API de Scripts do Tryd é possível acessar a documentação completa da API de Scripts do Tryd. |
Foram desenvolvidos alguns exemplos de processos para mostrar o que pode ser feito com a API.
Alerta por valor: Este processo irá exibir uma mensagem quando o valor do papel "PETR4" cruzar a casa dos R$ 22,00.
Envio de ordens por Cruzamento de Médias Móveis
Neste exemplo, um processo que monitora os dados do papel "PETR4" analisa o seu histórico em busca de um cruzamento entre duas médias móveis •A primeira média móvel simples é de 3 dias. •A segunda média móvel simples é de 21 dias. Quando o processo detecta esse cruzamento, ele o interpreta para saber se deve enviar uma ordem de compra ou de venda.
|