• Nenhum resultado encontrado

Implementação e Experimentos

6.2 Mecanismo de Simulação

mensagem de retorno terá conteúdo OrderResult, total ou a não execução por alguma razão, por exemplo, falta de negócios na bolsa, durante a validade da ordem.

2. Consulta sobre cotações de ativo: O operador solicita a cotação de um ativo em um determinado instante ou período, através de uma mensagem Query. O AgEx Manager responde a mensagem com as cotações solicitadas ou aviso de que não foi possível obtê-las no período determinado, com uma mensagem de resposta QueryResult.

3. Mensagens não conhecidas ou com erro de formatação: Caso o operador envie uma mensagem não prevista pelo AgEx Manager ou uma mensagem co- nhecida com formatação inválida receberá uma mensagem de erro Error, para que tome conhecimento, que sua mensagem não foi compreendida pelo AgEx Manager.

4. Envio de aviso do final do período de simulação: Como será detalhado na seção 6.2, o tempo de simulação é controlado pelo AgEx e ao chegar ao final da simulação, o AgEx Manager para de processar quaisquer mensagens envia- das pelos operadores e avisa cada um dos operadores registrados, isto é, aqueles que enviaram-lhe mensagens, do término da simulação através de uma mensa- gem Terminate.

6.2 Mecanismo de Simulação

A simulação no AgEx é controlada pelo agente AgEx Manager e os operadores pre- cisam apenas cumprir os requisitos de tempo para submissão de ordens. A simulação é feita em ciclos que correspondem ao menor intervalo de tempo possível entre duas ordens de um mesmo operador. O tempo é divido em pequenos intervalos iguais (ci- clos), que são avançados um intervalo por vez. Esta técnica é conhecida como time slicing(PIDD, 2004) e é indicada quando há muitos eventos espalhados no tempo, com

é o caso em simulação de mercados financeiros. O sistema AgEx controla os tempos computacionais efetivos gastos em cada ciclo de simulação, permitindo assim con- trolar se os agentes operadores cumprem a contento os requisitos de tempo máximo determinados pelo projetista. Tal característica facilita os testes de sistemas que pode- rão vir a atuar em mercados reais, pois nestes atrasos na definição de ordens podem levar a prejuízos significativos. Na figura 24, detalha-se o ciclo de vida do agente AgEx Managere as mensagens trocadas com o agente operador.

6.2 Mecanismo de Simulação 110

6.2 Mecanismo de Simulação 111

Uma simulação AgEx é composta por um número finito de ciclos de simulação. Cada operador realiza suas atividades paralelamente aos demais, porém as mudanças de ciclo e entre as fases de cada ciclo são definidas pelo AgEx Manager. São três as fases de um ciclo de simulação: captação de informações, deliberação e submissão de ordem. Como parte do sistema AgEx, são fornecidas classes Java que implementam completamente as fases de captação de informação e submissão de ordem. Portanto, ao projetar um novo operador é suficiente desenvolver um mecanismo de deliberação que seja executado dentro do intervalo de tempo definido como tempo de deliberação (deliberation time) o qual é expresso em termos de milissegundos em tempo de má- quina. O termo tempo de máquina se justifica porque durante a simulação haverá dois tempos correndo simultaneamente, que são os seguintes:

• Ciclo em tempo de simulação: Corresponde ao período que está sendo simu- lado em um ciclo e pode representar alguns milissegundos ou várias horas. Por exemplo, ao utilizar como ciclo o intervalo de um dia de operação, para simular agentes que não realizam mais de uma transação diária e visam resultados em longo prazo„ a duração de um ciclo de simulação seria de 24 h em tempo de simulação. Ao se transpor um operador AgEx para operar em modo real, basta fazer o tempo de simulação igual ao tempo real.

• Ciclo em tempo de máquina: Corresponde ao tempo gasto pela máquina para executar um ciclo completo. A duração do ciclo em tempo de máquina é di- retamente dependente da configuração do computador (ou conjunto de compu- tadores, cluster) que é utilizado para executar a simulação, da configuração da rede, do número de processos em execução (operadores, AgEx Manager, pla- taforma multiagentes, servidor de banco de dados, etc.) e da complexidade do processo de deliberação dos operadores. Quanto maior for tal complexidade em termos de esforço computacional, maior será o ciclo em tempo de máquina. É interessante observar que a relação entre a duração do ciclo em tempo de simu- lação e em tempo de máquina é totalmente arbitrária. Geralmente, o ciclo em tempo de simulação será maior que o correspondente em tempo de máquina, mas pode ocorrer o contrário, por exemplo, ao projetar agentes para operação em intervalos de tempo muito curto e que têm processos de deliberação muito complexos. Naturalmente, caso se pretenda utilizar esses agentes em operação real será necessária uma readequação da infra-estrutura computacional para ga- rantir a duração do ciclo em tempo de máquina pelo menos igual à duração em tempo real.

6.2 Mecanismo de Simulação 112

Figura 25: Ciclo de vida de um agente operador no AgEx.

mensagens com o AgEx Manager. Na atividade 1, os operadores solicitam informa- ções sobre os ativos de seu interesse, que são enviadas pelo AgEx Manager e recebidas na atividade 2 do operador. Na fase 3, há a deliberação por parte dos operadores para a definição das ordens. Estas são então enviadas para o AgEx Manager que as executa e retorna o resultado de tal operação. Os resultados são então computados automa- ticamente na atividade 4 pela classe base em Java,AgExTraderAgent, dos operadores AgEx.

O sistema AgEx permite ainda a execução de simulações em três modos distintos em relação ao mecanismo de determinação dos preços dos ativos:

• Simulação com preços históricos: Neste modo os preços dos ativos não mudam de acordo com as ordens dos operadores, mas obedecem as cotações definidas em uma base de dados pré-existente, por exemplo dados históricos obtidos de