金融标的关联分析:从量价数据挖掘关系及投资策略
"金融标的关联分析:从量价数据挖掘关系及投资策略"\n\n许多金融标的都有其内在的关联,如何从量价数据找到这种关联是一个有趣的问题。例如在万得的"煤焦钢矿"板块中,有螺纹钢、铁矿石、不锈钢、热轧卷板、硅铁、焦煤、焦炭、锰硅、线材 9 个品种。这些品种有些是上下游关系,例如一定数量的焦煤焦炭和铁矿石可以生产出螺纹钢等。如何从价格挖掘出不同产品之间的关系一直是投资者感兴趣的问题。请从这些产品的日线价格中找出产品之间潜在的关系。\n\n问题 1. 构建算法从日线建立这些品种的线性关系,并对这些线性关系进行建模。\n\n问题 2. 能否找出这些品种的非线性关系?\n\n问题 3. 这些关系通常有一定的时效性。能否找出一个判据来确定这些关系存在的窗口期?\n\n问题 4. 通过这些关系构建一个投资组合策略。\n\n数据来源:\n• 螺纹钢、热轧卷板、不锈钢、线材(上海期货交易所) https://www.shfe.com.cn/statements/dataview.html?paramid=delaymarket_rb\n• 铁矿石、焦煤、焦炭(大连期货交易所) http://www.dce.com.cn/dalianshangpin/xqsj/lssj/index.html\n• 锰硅、硅铁(郑州商品交易所) http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm,\n\n用matlab代码解决上面题目,内容:以下是解决上述问题的一种可能的方法,使用MATLAB编写。\n\n问题1:构建线性关系模型\n\nmatlab\n% 加载数据\ndata_rb = readtable('螺纹钢.csv');\ndata_hc = readtable('热轧卷板.csv');\ndata_ss = readtable('不锈钢.csv');\ndata_xl = readtable('线材.csv');\n\n% 提取收盘价\nclose_rb = data_rb.Close;\nclose_hc = data_hc.Close;\nclose_ss = data_ss.Close;\nclose_xl = data_xl.Close;\n\n% 构建线性关系模型\nX = [close_hc, close_ss, close_xl];\nY = close_rb;\nmdl = fitlm(X, Y);\n\n% 打印模型系数和统计信息\ndisp(mdl.Coefficients);\ndisp(mdl.Rsquared);\n\n\n问题2:寻找非线性关系\n\nmatlab\n% 使用相关系数矩阵寻找非线性关系\ncorr_matrix = corr([close_rb, close_hc, close_ss, close_xl]);\ndisp(corr_matrix);\n\n\n问题3:寻找关系的时效性\n\nmatlab\n% 计算滚动相关系数\nwindow_size = 20;\nrolling_corr = zeros(length(close_rb)-window_size+1, 4);\nfor i = 1:length(close_rb)-window_size+1\n data_window = [close_rb(i:i+window_size-1), close_hc(i:i+window_size-1), ...\n close_ss(i:i+window_size-1), close_xl(i:i+window_size-1)];\n corr_window = corr(data_window);\n rolling_corr(i, :) = corr_window(1, 2:end);\nend\n\n% 找出相关系数超过阈值的时间窗口\nthreshold = 0.5;\nrelevant_windows = find(rolling_corr > threshold);\ndisp(relevant_windows);\n\n\n问题4:构建投资组合策略\n\nmatlab\n% 以螺纹钢为基准,根据相关系数构建投资组合\nweights = corr_matrix(1, 2:end) / sum(corr_matrix(1, 2:end));\nportfolio_returns = sum([close_hc, close_ss, close_xl] .* weights, 2);\nportfolio_cum_returns = cumprod(1 + portfolio_returns) - 1;\n\n% 绘制投资组合累计收益曲线\nfigure;\nplot(data_rb.Date, portfolio_cum_returns);\ntitle('投资组合累计收益曲线');\nxlabel('日期');\nylabel('累计收益');\n\n\n请注意,以上代码仅提供了一种解决方案的示例,并假设数据文件已经准备好且位于当前工作目录中。您可能需要根据实际情况进行适当的调整和修改。
原文地址: https://www.cveoy.top/t/topic/pRNn 著作权归作者所有。请勿转载和采集!