Реализуйте финансовую стратегию при помощи Stateflow

В этом примере показано, как использовать автономный график Stateflow ® для моделирования стратегии финансовой торговли, известной как Bollinger Bands. Автономные диаграммы реализуют классическую семантику графика с MATLAB ® в качестве языка действий. Можно запрограммировать график, используя полную функциональность MATLAB, включая те функции, которые ограничены для генерации кода в Simulink ®. Для получения дополнительной информации смотрите Создание диаграмм Stateflow для выполнения в качестве объектов MATLAB.

Вычислительные полосы Боллингера

Торговая стратегия Bollinger Bands заключается в поддержании скользящего среднего значения N цены акций на некоторые товары и выпуск инструкций по торговле в зависимости от значения акций:

  • «Купить», когда значение запаса падает K стандартные отклонения ниже скользящего среднего значения.

  • «Продать» при повышении стоимости акций K стандартные отклонения выше скользящего среднего значения.

  • «Hold», когда значение запаса внутри K стандартные отклонения скользящего среднего значения.

Типичные реализации для этой стратегии используют значения N = 20 и K = 2.

Файл sf_stock_watch.sfx определяет автономную диаграмму Stateflow, которая реализует эту финансовую стратегию. График состоит из двух внешних состояний с параллельным разложением.

  • The StockTicker субдиаграмма регистрирует текущую цену запаса. В субдиаграмму скрыты подробные данные для расчета цен на акции. Для доступа к рыночным данным в реальном времени от поставщиков финансовых данных одна из возможных реализаций включает использование Datafeed Toolbox™. Для получения дополнительной информации см. Datafeed Toolbox.

  • The FinancialAdvisor состояние использует последнюю N фондовые цены для вычисления высоких и низких полос. В зависимости от текущей цены относительно этих диапазонов, состояния генерирует инструкции «купить», «продать» или «держать». Область действия on every(1,sec) создает таймер MATLAB ® для выполнения графика каждую секунду. Смотрите Управление выполнением диаграммы при помощи Временной Логики.

Параллельное разложение является шаблоном проектирования, которая позволяет вашему алгоритму предварительно обработать входные данные. Для получения дополнительной информации смотрите Разложение состояний.

Выполнение автономной диаграммы

Чтобы выполнить автономную диаграмму, создайте объект диаграммы Stateflow w:

w = sf_stock_watch();

График генерирует поток цен на акции и выдает инструкции «купить», «продать» или «удержать».

Note: Chart execution continues until you delete the chart object.
Loading data... Ready in 5 4 3 2 1 0:
HOLD at 14.1942
SELL at 14.2802
SELL at 14.2471
HOLD at 14.2025
BUY at 14.1444

Чтобы остановить выполнение графика, удалите объект графика w:

delete(w);

Похожие темы