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

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

Вычислите полосы Боллинджера

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

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

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

  • "Содержите", когда значение запаса будет в K стандартные отклонения скользящего среднего значения.

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

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

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

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

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

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

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

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);

Похожие темы