Тесты торговых стратегий на C#. Урок 11. Оптимизация торговой стратегии |
Автор megabax | ||
26.10.2013 г. | ||
Тесты торговых стратегий на C#. Урок 11. Оптимизация торговой стратегииЧто бы смотреть урок полностью, а так же скачать исходники к уроку, подпишитесь на платный раздел. В платном разделе статья находиться здесь. Исходники у уроку можно скачать в платном разделе. Сначала мы попробуем оптимизировать параметры стратегии "в лоб" - тоесть, тупым переборам всех возможных значений в заданном диапазоне с заданным шагом. Затем, если нас не удовлетворит скорость работы алгоритма, будем придумывать что то другое, например, применим генетический алгоритм. И так, для начала мы создадим класс TradeSystemOptimizer... ... ... Объясняю, как это класс работает. Для запуска процесса оптимизации мы вызываем метод Optimize, указав ему в качестве параметра начальное значение денежных средств...
...
...теперь делаем кнопочку, что бы проверить нашу программу*:
И пишем обработчик нажатия на эту кнопочку:
Обратите внимание, что параметры оптимизации мы передаем в классе OptimizingParameter, где имя параметра задается в виде текстовой строки, а диапазон и шаг в виде чисел. Такой способ задания параметров позволяет метод SetParametr нашего класса оптимизации ...
....
И так, проведем оптимизации. Программа выдаст нам наибольшее значение стоимости портфеля и параметры, при которых имеет место это значение:
Как узнать, что программа оптимизирует правильно? Очень просто, произвести эмуляцию по оптимизируемым параметрам, результат должен быть одинаков. Кроме того, мы можем заглянуть в лог оптимизации**:
Насчет скорости работы. Брал дневные интервалы за пять лет. Считает довольно быстро, несколько секунд. Но количество данных у нас пока не большое, да и вариантов не сильно много. Так что в будущем, наверняка нам придется оптимизировать сам процесс оптимизации. Но решение на счет будем принимать, когда займемся форвардным тестированием торговой стратегии. А на сегодня все, до новых встреч.
Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. Скриншоты, помеченные знаком **, являются цитатами и иллюстрациями программного продукта "Блокнот", авторское право на который принадлежит корпорации Microsoft..
|
||
Последнее обновление ( 26.10.2013 г. ) |
« След. | Пред. » |
---|