// Выполняем разнообразные торговые модели на лунных циклах.
// file = xl3modOl.c
// parms — набор [1..MAXPRM] параметров
// dt — набор [l..nb] дат в формате ГГММДД
// орn — набор [1..nb] цен открытия
// hi - набор [l..nb] максимальных цен
// 1о — набор [1..nb] минимальных цен
// cls — набор [l..nb] цен закрытия
// vol - набор [l..nb] значений объема
// oi — набор [1..nb] значений открытого интереса
// dlrv — набор [1..nb] средних долларовых волатильностей
/ / nb — количество дней в наборе данных
// ts — ссылка на класс торгового симулятора
// eqcls — набор [1..nb] уровней капитала по ценам закрытия
// объявляем локальные переменные
static int rc, cb, ncontracts, maxhold, ordertype, signal;
static int avglen, disp, k, modeltype, matype, mktindx;
static float mmstp, ptlim, stpprice, limprice, tmp, thresh;
static float exitatr[MAXBAR+1] , savg[MAXBAR+1] ;
static float mal[MAXBAR+1], ma2[MAXBAR+1], stoch[MAXBAR+1];
static float *exitatrtab[MAXMKT+1], *savgtab[MAXMKT+1] ;
//копируем параметры в локальные переменные
avglen = parms[1]; // период скользящей средней
disp = parms[2]; // множитель смещения
thresh = parms[3]; // порог для импульсных моделей
matype = parms[7]; // тип средней:
// 1=простое скользящее среднее
// 2=экспоненциальное
// 3=треугольное с переднем взвешиванием
// 4=треугольное
// 5=простое центрованное
// 6=экспоненциальное центрованное
// 7=треугольное центрованное
modeltype = parms[8]; // тип модели:
// 1=импульс
// 2=пересечение
// 3- пересечение с подтверждением
// 4=пересечение с подтверждением и инверсией
ordertype = parms[9]; // вход: 1=на открытии, 2=по лимитному приказу,
// 3 =по стоп- приказу
maxhold = 10; // период максимального удержания позиции
ptlim = 4; // целевая прибыль в единицах волатильности
mmstp = 1; // защитная остановка в единицах волатильности