стратегии форекс книги форекс литература форекс

Методология тестирования

Во всех тестах циклических моделей входа используется стандартный портфель из 36 рынков. Количество контрактов для покупки или прода­жи на каждом рынке подбиралось для соответствия долларовой стратегии форекс волатиль-ности двух контрактов S&P 500 на конец 1998 г. Использован стандарт­ный выход: защитная остановка закрывает любую позицию, убытки ко­торой превышают одну единицу волатильности стратегии форекс. Кроме того, лимитный приказ закрывает позиции, прибыль которых превышает четыре едини­цы волатильности, а рыночный приказ по цене закрытия закрывает пози­ции, не закрытые предыдущими выходами в течение 10 дней. Правила входов рассмотрены в обсуждении модели и индивидуальных тестов. Все тесты проведены при помощи стандартного C-Trader toolkit. Ниже при­веден код модели, основанный на волновом фильтре со стандартной стра­тегией выходов:Во всех тестах циклических моделей входа используется стандартный портфель из 36 рынков. Количество контрактов для покупки или прода­жи на каждом рынке подбиралось для соответствия долларовой волатиль-ности двух контрактов S&P 500 на конец 1998 г. Использован стандарт­ный выход: защитная остановка закрывает любую позицию, убытки ко­торой превышают одну единицу волатильности.

Кроме того, лимитный приказ закрывает позиции, прибыль которых превышает четыре едини­цы волатильности, а рыночный приказ по цене закрытия закрывает пози­ции, не закрытые предыдущими выходами в течение 10 дней. Правила входов рассмотрены в обсуждении модели и индивидуальных тестов. Все тесты проведены при помощи стандартного C-Trader toolkit. Ниже при­веден код модели, основанный на волновом фильтре со стандартной стра­тегией выходов:

Макс Мин Закрытие Объем ОткрИнтер
38.063 35.875 37.500 4248000 О
36.500* 36.250 37.125 2836100 О

Макс Мин Закрытие Объем ОткрИнтер
38.063 35.875 37.500 4248000 О
36.500* 36.250 37.125 2836100 О
// модель: 1=торговать развороты циклов // вход: 1=на открытии, 2=по лимитному приказу, // 3=по стоп-приказу // период максимального удержания позиции // целевая прибыль в единицах волатильности // защитная остановка в единицах волатильности// инициализируем группу стратегии форекс равноотстоящих волновых фильтров // заново инициализируем, если параметр ширины полосы изменился if(width != oldwidth) {// рассчитываем выходы фильтров и откорректированный спектр мощности // если матрицы (таблицы) пустые, то присваиваем им значения if(inphase == NULL) inphase = matrix(l,fcount,1,MAXBAR); if(inquad == NULL) inquad = matrix(1,fcount,l.MAXBAR); if(power == NULL) power = matrix(1,fcount,1.MAXBAR); for(k = 1 ; k <= fcount; k++) {Вышеприведенный код описывает тестируемую модель. Первый важ­ный блок кода, принципиальный для циклической модели, инициализи­рует индивидуальные фильтры, составляющие группу фильтров. Этот код работает только при первом проходе или при изменении параметра, вли­яющего на инициализацию группы фильтров, например параметра width.

Если важные параметры остаются без изменений, не имеет смысла пере­запускать фильтры при каждом вызове функции Model.Следующий блок применяет к входящему сигналу каждый из фильт­ров в составе группы. В этом блоке отведены два массива для хранения выходного сигнала группы фильтров. Первый массив хранит выход с со­впадающей фазой inphase, а второй — ортогональный выход inquad. Вход­ной сигнал представляет исходные цены закрытия. Поскольку фильтры математически оптимальны и рассчитаны на удаление трендов, предва-рительная обработка данных становится излишней в отличие от менее продвинутых методик анализа. Каждая строка в массиве представляет собой выход отдельного фильтра с данной частотой или периодом, каж­дая колонка представляет собой торговый день. Центральные частоты или периоды фильтров расположены на равных расстояниях на логарифми­ческой шкале, стратегии форекс т.е. соотношение между центральной частотой данного и следующего фильтра постоянно. Селективность полосы пропускания (width) — единственный настраиваемый параметр в расчете группы филь­тров, и это значение может подбираться путем оптимизации.Затем запускается обычный цикл перебора точек данных, и генери­руются собственно торговые сигналы. Сначала проверяется наличие чи­стого, пригодного для торговли цикла. Для этого определяется мощность при периоде, имеющем максимальный резонанс с текущей активностью рынка (peakpower). Также оценивается период, на котором наблюдается максимальная мощность. Если период не попадает на одно из крайних зна­чений рассматриваемого диапазона (диапазон составляет от 3 до 30 дней), то потенциально цикл может быть пригоден для торговли. Затем проверя­ется максимальная мощность на расстоянии не менее 2 полос пропуска­ния фильтра от периода пика (peaknoise). Если отношение peakpower/ peaknoise составляет 1,5 или более, то выполняется второе условие при­годности цикла. На основе пары выходов определяется фазовый угол цик­ла. Затем код проверяет фазовый угол на соответствие максимуму или минимуму цены. Кроме того, в эту оценку вводится небольшое значение смещения (disp). Оно работает подобно смещению в предыдущих моде­лях, хотя здесь относится к фазовому углу, а не к количеству точек дан­ных. Между фазовым углом и количеством точек данных существует пря­мая зависимость: период цикла, умноженный на фазовый угол в стратегии форекс градусах и разделенный затем на 360, дает количество точек данных, соответству­ющее фазовому углу. Если фаза после смещения такова, что через неко­торое количество градусов до или после текущего дня можно ожидать минимума, отдается приказ на покупку. Если фаза такова, что можно ожи­дать максимума, отдается приказ на продажу. Затем, как обычно, рассчи­тываются цены для лимитного и стоп-приказов. При поступлении сигна­лов система исполняет требуемые приказы.Другие блоки вышеприведенного кода здесь не обсуждаются, посколь­ку связаны с отладкой и тестированием программы. Их предназначение описано в комментариях к коду.

Комментариев нет:

Отправить комментарий