Иллюстрированный самоучитель по Architecture .NET

Моделирование фондовой биржи

Генерация случайных чисел

Основой эмулятора является метод Run (Запуск) класса Engine (Машинный модуль). Основная работа метода Run (Запуск) состоит в присвоении данных, полученных в результате генерации случайных чисел. Для генерации случайных чисел используется класс System::Random (Система::Случайный), рассмотренный нами в главе 3 "Программирование на управляемом C++".

double r = pRangen › NextDouble();
if (r < tradeProbti])
{
int delta = // дельта
(int) (price[i] * volatility[i]); // цена * изменение
if (pRangen › NextDouble() <.5)
{
delta = -delta; // дельта = -дельта
}
price[i] += delta; // цена + = дельта
int volume = pRangen › Next(
minVolume, maxVolume) * 100;
pTradeOp(
tick, stocks[i], price [i], volume); // шаг, акции,
//цена, объем

Использование делегатов

Указатели на экземпляры делегатов объявляются в классе Engine (Машинный модуль):

TickCallback *pTickOp;
TradeCallback *pTradeOp;

Указатели на делегаты инициализируются в конструкторе класса Engine (Машинный модуль):

Engine(TickCallback *pTickOp, TradeCallback *pTradeOp)
{
this › pTickOp = pTickOp; this › pTradeOp = pTradeOp;
}

Метод, связанный с экземпляром делегата, можно вызвать, используя указатель на делегат:

pTickOp(tick);
pTradeOp(
tick, stocks[i], price [i], volume); // шаг, акции, цена, объем
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.