通过使用Stateflow实施财务战略
这个例子展示了如何使用一个独立的Stateflow®图表模型金融交易策略称为波林格区间。独立的图表实现经典图表与MATLAB®作为行动语言语义。可以计划图通过使用MATLAB的全部功能,包括那些功能限制的代码生成模型®。金宝app有关更多信息,请参见为执行为MATLAB对象创建Stateflow图表。
计算波林格区间
波林格区间交易策略是维持的移动平均线N
股票价格对一些商品并发出交易指令根据股票的价值:
“买”股票的价值下降
K
标准差在移动平均线以下。“卖出”当股票的价值上升
K
标准差在移动平均线之上。"持有"当股票的价值
K
移动平均值的标准偏差。
典型的实现这种策略的使用价值N
= 20,K
= 2。
该文件sf_stock_watch.sfx
定义了一个独立的Stateflow图表,实现这个金融策略。图表包括两个并行分解外州。
的
StockTicker
子图表记录当前的股票价格。子图表隐藏了细节计算股票价格。从财务数据访问实时市场数据供应商,一个可能的实现涉及到使用的数据处理工具箱™。有关详细信息,请参见数据处理工具箱。
的
FinancialAdvisor
状态使用最后一个N
股票价格来计算高和低的乐队。根据当前的价格相对于这些乐队,国家产生“买”,“出售”或“持有”指令。这个动作在每一个(1秒)
创建一个MATLAB®定时器执行表每一秒。看到利用时序逻辑控制图执行。
并行分解是一种常见的设计模式,使你的算法对输入数据进行预处理。有关更多信息,请参见定义独家使用状态分解和并行模式。
执行独立的图
执行独立的图,创建一个Stateflow图对象w
:
w = sf_stock_watch ();
图表生成一系列的股票价格和问题“买”,“出售”或“持有”指令。
注:图表执行继续直到你删除对象的图表。加载数据…在5 4 3 2 1 0:持有14.2802 14.1942卖出卖出买14.1444 14.2025 14.2471举行
停止图表执行删除表对象w:
删除(w);