股票量化回测分析.zip
资源内容介绍
在金融市场中,股票价格的波动受到多种因素的影响,为了分析和预测股票价格的走势,投资者可以借助各种技术指标和分析方法。本文旨在通过建立机器学习模型策略对股票价格进行回测的分析,以帮助投资者评估和优化投资策略,从而减少投资风险。选取了铭普光磁(SZSE.002902)股票,采用了贝叶斯优化调整xgboost模型的超参数,得到了最优的模型参数组合:colsample_bytree:0.8308;learning_rate:0.3443;gamma:0.2381;max_depth:4.0。最后测试集得到的精确度:0.53,效果相对一般,但也不错。根据对测试集的预测结果进行策略买卖回测,增加了买卖交易的手续费---万一免五。一共进行了63次的买入和卖出,最后由初始资金100000元赚取到为179519.77元,共赚取了79519.77元。为了更好评估该模型回测的效果,计出夏普比率为15.6349,最大回撤为30.24%这一研究对于股票策略的优化和改进具有一定的参考价值。回测结果仅仅是对过去一段时间的模拟,不能保证未来的表现。因此,在实际应用中,需要谨慎对待回测结果,并不断优化和调整策略。 <!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>基于贝叶斯优化的xgboots模型策略</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script><style type="text/css"> pre { line-height: 125%; }td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }.highlight .hll { background-color: var(--jp-cell-editor-active-background) }.highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) }.highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } .highlight .err { color: var(--jp-mirror-editor-error-color) } .highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } .highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } .highlight .p { color: var(--jp-mirror-editor-punctuation-color) } .highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } .highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } .highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } .highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } .highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } .highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } .highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } .highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } .highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } .highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } .highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } .highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } .highlight .m { color: var(--jp-mirror-editor-number-color) } .highlight .s { color: var(--jp-mirror-editor-string-color) } .highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } .highlight .w { color: var(--jp-mirror-editor-variable-color) } .highlight .mb { color: var(--jp-mirror-editor-number-color) } .highlight .mf { color: var(--jp-mirror-editor-number-color) } .highlight .mh { color: var(--jp-mirror-editor-number-color) } .highlight .mi { color: var(--jp-mirror-editor-number-color) } .highlight .mo { color: var(--jp-mirror-editor-number-color) } .highlight .sa { color: var(--jp-mirror-editor-string-color) } .highlight .sb { color: var(--jp-mirror-editor-string-color) } .highlight .sc { color: var(--jp-mirror-editor-string-color) } .highlight .dl { color: var(--jp-mirror-editor-string-color) } .highlight .sd { color: var(--jp-mirror-editor-string-color) } .highlight .s2 { color: var(--jp-mirror-editor-string-color) } .highlight .se { color: var(--jp-mirror-editor-string-color) } .highlight .sh { color: var(--jp-mirror-editor-string-color) } .highlight .si { color: var(--jp-mirror-editor-string-color) } .highlight .sx { color: var(--jp-mirror-editor-string-color) } .highlight .sr { color: var(--jp-mirror-editor-string-color) } .highlight .s1 { color: var(--jp-mirror-editor-string-color) } .highlight .ss { color: var(--jp-mirror-editor-string-color) } .highlight .il { color: var(--jp-mirror-editor-number-color) } </style><style type="text/css">/* * Mozilla scrollbar styling */[data-jp-theme-scrollbars='true'] { scrollbar-color: rgb(var(--jp-scrollbar-thumb-color)) var(--jp-scrollbar-background-color);}/* for code nodes, use a transparent style of scrollbar. These selectors * will match lower in the tree, and so will override the above */[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar { scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;}.jp-scrollbar-tiny { scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent; scrollbar-width: thin;}/* * Webkit scrollbar styling */[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar,[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-corner { background: var(--jp-scrollbar-background-color);}[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-thumb { background: rgb(var(--jp-scrollbar-thumb-color)); border: var(--jp-scrollbar-thumb-margin) solid transparent; background-clip: content-box; border-radius: var(--jp-scrollbar-thumb-radius);}[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-track:horizontal { border-left: var(--jp-scrollbar-endpad) solid var(--jp-scrollbar-background-color); border-right: var(--jp-scrollbar-endpad) solid var(--jp-scrollbar-background-color);}[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-track:vertical { border-top: var(--jp-scrollbar-endpad) solid var(--jp-scrollbar-background-color); border-bottom: var(--jp-scrollbar-endpad) solid var(--jp-scrollbar-background-color);}[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar::-webkit-scrollbar,[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar::-webkit-scrollbar,[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar::-webkit-scrollbar-corner,[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar::-webkit-scrollbar-corner { background-color: transparent;}[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar::-webkit-scrollbar-thumb,[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar::-webkit-scrollbar-thumb { background: rgba(var(--jp-scrollbar-thumb-color), 0.5); border: var(--jp-scrollbar-thumb-margin) solid transparent; background-clip: content-box; border-radius: var(--jp-scrollbar-thumb-radius);}[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar::-webkit-scrollbar-track:horizontal { border-left: var(--jp-scrollbar-endpad) solid transparent; border-right: var(--jp-scrollbar-endpad) solid transparent;}[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar::-webkit-scrollbar-track:vertical { border-top: var(--jp-scrollbar-endpad) solid transparent; border-bottom: var(