в сделку, используя определенный тип


Глава 1 Глава 2 Глава 3
else if(CrossesBelow(mal, ma2, k)) { if(stoch[cb] > 75.0) signal = - 1; else if(stoch[cb] < 25.0) signal = 1; ) break; default: nrerror("TRAPSMOD: invalid modeltype"); } limprice = 0.5 * (hi[cb] + lo[cb]); stpprice = cls[cb] + 0.5 * signal * exitatr[cb] ; // входим в сделку, используя определенный тип приказа if (ts.position)) <= 0 && signal == 1) ( switch(ordertype) { // выбираем желаемый тип приказа case 1: ts.buyopen('1', ncontracts) ; break; case 2: ts.buylimit('2', limprice, ncontracts); break; case 3: ts.buystop('3' , stpprice, ncontracts); break; default: nrerror("Invalid buy order selected"); }

} else if (ts.position1) >= 0 &&. signal == - 1) ( switch(ordertype) { // выбираем желаемый тип приказа case 1: ts.sellopen('4', ncontracts); break; case 2: ts.selllimit('5', limprice, ncontracts); break; case 3: ts.sellstop('6' , stpprice, ncontracts); break; default: nrerror("Invalid sell order selected"); } } // симулятор использует стандартную стратегию выхода tmp = exitatr[cb]; ts.stdexitcls('X', ptlim*tmp, mmstp*tmp, maxhold); } // обрабатываем следующий день ) Определив локальные переменные и векторы, первый блок программы копирует различные параметры в соответствующие переменные для более удобного и понятного обращения к ним. Параметры описаны в ссылках, размещенных в коде. Следующий блок проводит все расчеты на полной серии данных. Средний истинный интервал для 50 дней рассчитывается и сохраняется в векторе (exitatr). Впоследствии он будет использоваться для размещения защитных остановок управления капиталом и целевых уровней прибыли в стандартизованной стратегии выхода. Средний истинный интервал в этом векторе (или в ряду данных) также используется для нормализации возникающих в ходе работы программы изменений цен. После вычисления среднего истинного интервала рассчитываются нормализованные и обрезанные изменения цен. Каждая точка в ряду данных pchg отражает изменение цены между ценами закрытия текущего и предшествующего дней. Изменения цены затем нормализуются путем деления их на средний истинный интервал и обрезаются для снижения влияния экстремальных перепадов цены (статистических выбросов). Нормализация необходима, поскольку волатильность рынков меняется со временем иногда очень сильно. Например, сейчас индекс S&P 500 в 5 и более раз дороже, чем 15 лет назад. Очевидно, что и средняя дневная волатильность изменилась соответствующим образом. Если бы изменения цены не подвергались нормализации и не представлялись в единицах текущей волатильности, сравнение сезонных явлений за разные годы было бы искаженным. Годы, когда волатильность была выше, давали бы больший вклад, чем годы с низкой волатильностью. В случае S&P 500 последние годы полностью доминировали бы при проведении усреднения, а при нормализованном представлении каждый год вносит почти одинаковый вклад. Срезание выбросов проводится на уровне — 2 и + 2 средних истинных интервала, чтобы удалять случайные и аномальные значения, не искажая общую оценку.
Содержание раздела