ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Stateflow を使用した金融戦略の実装

スタンドアロンの Stateflow® チャートは、有限ステート マシンの動作を定義する MATLAB® クラスです。スタンドアロンのチャートは、MATLAB をアクション言語として Classic チャートのセマンティクスを実装します。Simulink® でのコード生成が制限されている関数を含めて、MATLAB のすべての機能を使用してチャートをプログラミングできます。詳細については、MATLAB オブジェクトとして実行する Stateflow チャートの作成を参照してください。

ボリンジャー バンドの計算

この例では、スタンドアロンの Stateflow チャートを使用して、ボリンジャー バンドとして知られる金融取引戦略をモデル化する方法を説明します。この戦略では、ある商品の N 個の株価の移動平均を保持し、株式価値に応じて取引指示を出します。

  • 株式の価値が移動平均の下側の K 標準偏差を下回ったときは「買い」

  • 株式の価値が移動平均の上側の K 標準偏差を上回ったときは「売り」

  • 株式の価値が移動平均の K 標準偏差以内のときは「保有」

この戦略の一般的な実装では、N = 20 および K = 2 の値を使用します。

ファイル sf_stock_watch.sfx は、この金融戦略を実装するスタンドアロンの Stateflow チャートを定義します。チャートは、パラレル構造の 2 つの外側のステートで構成されます。

  • StockTicker サブチャートは株式の現在の価格を記録します。このサブチャートでは、株価計算の詳細は表示されません。金融データ プロバイダーのリアルタイムの市場データにアクセスするために考えられる 1 つの実装方法では Datafeed Toolbox™ を使用します。詳細については、Datafeed Toolboxを参照してください。

  • FinancialAdvisor ステートは、最後の N 個の株式価格を使用して上下のバンドを計算します。ステートは、現在の価格をこれらのバンドと比較して、「買い」、「売り」、「保有」のいずれかの指示を生成します。アクション on every(1,sec) は、1 秒おきにチャートを実行する MATLAB® タイマーを作成します。時相論理を使用したチャート実行の制御を参照してください。

パラレル構造は、アルゴリズムによる入力データの前処理を可能にする一般的な設計パターンです。詳細については、ステート構造を参照してください。

スタンドアロンのチャートの実行

スタンドアロンのチャートを実行するには、構成オプション '-warningOnUninitializedData'false に設定して Stateflow チャート オブジェクト w を作成します。

w = sf_stock_watch('-warningOnUninitializedData',false);
Loading data... Ready in 5 4 3 2 1 0: 
HOLD at 14.1942
SELL at 14.2802
SELL at 14.247
HOLD at 14.2025
BUY at 14.1444
このチャートは、チャート オブジェクト w を MATLAB ワークスペースから削除するまで引き続き実行されます。
delete(w);

関連するトピック