Моделирование фондовой биржи
Для дальнейшего знакомства с использованием делегатов рассмотрим пример моделирования фондовой биржи, реализованный в папке stockMarket. Модель состоит из двух модулей:
- Модуль Admin (Управляющий модуль) предоставляет пользовательский интерфейс для конфигурирования и запуска модели. Кроме того, в нем реализованы операции, вызываемые моделирующей машиной.
- Модуль Engine (Машинный модуль) – это и есть моделирующая машина. В данном модуле есть внутренние часы; модуль случайным образом, в соответствии с параметрами конфигурации, генерирует информацию о совершаемых сделках.
На рис. 5.2 показана общая архитектура модели.
Модель допускает выполнение следующих операций:
- PrintTick: показывать ход часов (номер текущего шага);
- PrintTrade: показывать все совершаемые сделки.
Модель содержит следующие параметры:
- включить/выключить вывод информации о текущем шаге;
- включить/выключить вывод информации о совершаемых сделках;
- установить количество шагов моделирования.
Рис. 5.2. Архитектура эмулятора фондовой биржи
Запуск моделирования
Скомпонуйте и запустите программу StockMarket. Начните с принятой по умолчанию конфигурации: информация о текущем шаге не выводится, информация о сделках выводится, количество шагов – 100. (Заметим, что в программе используется генератор случайных чисел, так что результаты будут разными при каждом запуске программы.)
Ticks are OFF Trades are ON Run count = 100 Enter command, quit to exit : run 2 ACME 23 600 27 MSFT 63 400 27 IBM 114 600 38 MSFT 69 400 53 MSFT 75 900 62 INTC 27 800 64 MSFT 82 200 68 MSFT 90 300 81 MSFT 81 600 83 INTC 30 800 91 MSFT 73 700 99 IBM 119 400
Список доступных команд выводится по команде help (помощь). Вот что выводится по этой команде:
count set run count ticks toggle ticks trades toggle trades config show configuration run run the simulation quit exit the program
При выполнении программы выводится информация о шаге, акциях, цене и количестве проданных акций.