|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Пример построения биржевой стратегииПостроение своей стратегии в текущей версии осуществляется в модуле регрессионного анализа. Для демонстрации используется лист GBP книги vsDEMO. Прежде всего, необходимо: 1) установить параметры регрессионного анализа: вид регрессии – нелинейная критерий-отклонения 2) сделать искусственную переменную (выполнить макрос MakeTemp, находящийся в книге vsDEMO). Данные приобретут вид как на рис. ниже. Данные после модификации 3) сформировать выражение. Это самый тонкий момент всей задачи. Прежде, чем объяснить, как это делается, построим типовую стретегию средствами Excel. Назовем ее ПС – простая стратегия. Фактически она построена в правой части листа GBP, необходимо дать ряд комментариев. Пример простой стратегии Столбец H содержит копию ряда котировок закрытия, столбец I содержит скользящее среднее третьего порядка для ряда H. Гипотеза, на основании которой строится стратегия, заключается в следующем. Если ряд I идет вверх, то мы считаем, что тенденция идет вверх, если ряд идет вниз, то мы считаем, что тенденция идет вниз. Все это отражается в ряде J, который содержит сигнал 1 – вверх или –1 – вниз. Также мы предполагаем, что закрытие текущей позиции производится по значению ряда Close (H). Одновременно можно подсчитать результат текущей команды (покупать/продавать), который является произведением текущего значения сигнала на разницу между будущим (который, очевидно, неизвестен в момент принятия решения) и текущим значением Close. Текущий результат приведен в столбце K; в столбце L находится накопленный результат всей стратегии (как можно увидеть, очень плохой), равный -0,0705. Это значение далее будет использовано для сравнения стратегий. Попробуем сформировать выражение, соответствующее этой стратегии. Для расчета результата, например, на 14 шаге, требуются точки H15, H14, I14, I13,J14. Поскольку клетке H15 соответствует максимальное значение времени, то все остальные будут определяться с помощью функции LAG. Переменные имеют идентификаторы: [1] - временная (искусственная) переменная, состоящая из 0 [2] - ряд Close (соответствует столбцу H) Столбцу I соответствует выражение SMOOTH([2], 0, 0, 3). Итоговое выражение имеет вид: IF((SMOOTH(LAG([2], 1), 0, 0, 3) - SMOOTH(LAG([2], 2), 0, 0, 3)) > 0, 1, IF((SMOOTH(LAG([2], 1), 0, 0, 3) - SMOOTH(LAG([2], 2), 0, 0, 3)) > 0, 1, 0))*([2]-LAG([2], 1)) Это выражение не содержит ни одного параметра, подлежащего оптимизации, то есть нет предмета поиска. Если необходимо определить оптимальное количество точек сглаживания при сохранении прочих предположений о стратегии, то выражение приобретет вид: IF((SMOOTH(LAG([2], 1), 0, 0, X1) - SMOOTH(LAG([2], 2), 0, 0, X1)) > 0, 1, IF((SMOOTH(LAG([2], 1), 0, 0, X1) - SMOOTH(LAG([2], 2), 0, 0, X1)) < 0, -1, 0))*([2]-LAG([2], 1)) Если Вы осуществляете тестовые расчеты, то целесообразно скопировать это выражение в буфер обмена (из файла expression.txt или из этого файла помощи). После установки флага «критерий=отклонения» будет осуществлен поиск минимума выражения вида (поскольку все значения искусственной переменной равны 0) что автоматически означает поиск максимума Таким образом, функция цели фактически представляет собой результат работы стратегии, если - результат стратегии на i-м шаге (что обеспечивается соответствующим видом выражения). Если ее значение в финальной точке меньше 0, то это успешный результат (поскольку первоначально ищется минимум). Чем меньше значение функции, тем лучше результат работы стратегии. Итак, если Вы выполнили все действия, описанные выше, то установите курсор на клетку B2 и выполните VSTAT/Regression. Появится следующая диалоговая форма, в поле «Выражение» которой необходимо ввести выражение из буфера обмена и нажать OK. Диалог ввода выражения Далее появится диалог управления оптимизацией. Очень важно правильно определить параметры поиска. Функция цели содержит в себе условный оператор. Кроме того, параметрами поиска являются номер метода сглаживания, количество точек сглаживания, возможно, ряд других. Все это приводит к тому, что значения функции цели могут меняться скачкообразно, т.е. функция не является дифференцируемой, отдельные параметры принимают значения, определенные в области целых чисел. Как следствие, единственным допустимым методом поиска функции такого типа является метод решетки (прямого перебора). Должны быть заданы параметры: Выполняемый метод = Решетка; Управление параметрами = ДА; Количество шагов в решетке = 10 (рекомендуется для начальных расчетов); Начальный шаг поиска = 1 (рекомендуется для начальных расчетов); Диалог управления параметрами Для проверки того, что выражение сформировано правильно, найдем значение выражения в точке X1 = 3 (фактически это стратегия, построенная вручную и описанная выше). Для этого необходимо нажать кнопку «Изменить текущую точку», после чего отредактировать текущее значение в диалоге ниже. Ввод значения порядка скользящего среднего Здесь необходимо сделать очередное замечание. Переменные в процессе разбора выражения помещаются в стек, поэтому во всех функциях редактирования, как то редактирование значений (как в этом диалоге) или диалог задания размера/количества шагов поиска, порядок их следования обратный порядку появления в выражении. «Правильный» порядок соответствует порядку идентификаторов координат точек в диалоге управления оптимизацией (нажать «стрелку вниз» в соответствующем окне списка). Поскольку ищется одна переменная, в нашем примере такой проблемы не возникает. Итак, после того, как значение «3» введено и нажата клавиша OK, появляется результат расчета функции (рис. ниже). Результат сравнения стратегий Обратите внимание, что значение функции +0.0705 с точностью до знака совпадает с результатом, полученным при ручном построении стратегии. Это подтверждает, с одной стороны, что выражение сформировано правильно, а с другой стороны, логику приведенных выше рассуждений. Далее переходим собственно к поиску, для чего необходимо нажать кнопку «Начать поиск». Размер шага оставим без изменения, количество шагов поиска установим = 20. Программа установит, что оптимальное значение X1 = 12, при этом значение функции = -0.0081. Поскольку функция меньше 0, то в целом найденная стратегия положительная, хотя итоговый результат достаточно невелик. Если начать поиск снова, то он возобновится с текущей точки. После выхода (кнопка «Exit») результаты расчетов будут зафиксированы в протоколе Нелинейной регрессии.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |