公司举办编程大赛,想到最近股票跌宕起伏,然后无心睡眠,所以跟我叔叔聊聊股市,叔叔操盘经常是选择A股票后,会购买B这只股票,但是A跟B之间单单从业务角度和股权分配都没有任何关系,至少从表面上是这么让人觉得。后来遵从他的劝解,我选择A\B两股,但是万万没想到的是跌得我想死,漫漫长夜,无心睡眠,起来骗点钱,看了些论文,着手把实现完成,主要使用到动态规划、排序和K-means算法结合下,进行归类那些不靠谱的股票,纪念下我那损失的万把块钱。(确切地说,损失非常严重,悟出一个真理中国股市没有任何依据可言),参考的论文是国外的课题,在附件中请查收(英文)
基于K-Means算法,探索股票趋势的数据可视化
采用欧氏距离
数据采样
股票号码、每天的股价(统计一周的股价情况)
数据集进行[0,1]规格化
K-Means算法进行聚类算法
输出结果
ID NAME VALUE
股票号码、股票名称、股票增值幅度
SOURCE TARGET VALUE
非K股票 K的股票 关联幅度
| 工作日 | 周一 | 周二 | 周三 | 周四 | 周五 | |
| 股票代码 | ||||||
| 工大高新 | 600701 | 10 | 16 | 23 | 1 | 60 |
| 江苏有线 | 600959 | 22 | 33 | 44 | 6 | 50 |
| 青岛碱业 | 600229 | 33 | 2 | 5 | 7 | 51 |
| 物产中大 | 600704 | 4 | 34 | 33 | 45 | 53 |
| 维科精华 | 600152 | 23 | 41 | 12 | 32 | 53 |
| 信雅达 | 600571 | 45 | 4 | 22 | 23 | 53 |
| 600119 | 4 | 2 | 10 | 4 | 4 | |
| 603703 | 5 | 32 | 11 | 13 | 13 | |
| 600446 | 6 | 33 | 32 | 13 | 50 | |
| 603128 | 23 | 32 | 4 | 33 | 14 | |
| 600833 | 12 | 12 | 6 | 22 | 23 | |
| 恒生电子 | 600570 | 13 | 13 | 8 | 33 | 12 |
| 600647 | 7 | 32 | 23 | 1 | 42 | |
| 601519 | 8 | 14 | 45 | 2 | 9 | |
| 600789 | 12 | 15 | 33 | 13 | 4 | |
| 601106 | 31 | 42 | 12 | 45 | 22 |
其实这几种算法没啥新意,个人感觉比较好玩的是数据的可视化,这里使用到浙大竺可桢学院数据可视化的同学们提供的组件,非常佩服他们。http://datavlab.org/
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>k-means股票数据可视化</title>
<script src="../deps/compatible.js"></script>
<script type="text/javascript" src="../deps/d3.min.js"></script>
<script type="text/javascript" src="../deps/d3.layout.min.js"></script>
<script type="text/javascript" src="../deps/d3.geom.min.js"></script>
<script type="text/javascript" src="../deps/d3.csv.js"></script>
<script src="../deps/raphael.min.js"></script>
<!-- force -->
<script type="text/javascript" src="../deps/seajs/sea.js"></script>
<script type="text/javascript">
var dir = window.location.href.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
seajs.config({
alias: {
'datav': dir + '/../datav.js',
'force': dir + '/../libs/force.js'
}
});
</script>
<STYLE type="text/css">
#chart {
border-top: 1px dashed #F00;
border-bottom: 1px dashed #F00;
padding-left: 20px;
}
.textArea {
border: 2px solid black;
color: black;
font-family: monospace;
height: 3in;
overflow: auto;
padding: 0.5em;
width: 750px;
}
</STYLE>
</head>
<body>
<div class="body">
<h1 id="forcedirected_graph">基于K-Means股票关联的数据可视化</h1>
<div class="gallery" id="chart"></div>
</div>
<script type="text/javascript">
seajs.use(["force", "datav"], function (Force, DataV) {
// DataV.changeTheme("datav");
var net = new Force("chart", {
width: 800,
height: 600,
tag: true
});
DataV.csv("test3.csv", function (source) {
net.setSource(source);
net.render();
});
});
</script>
</body>
</html>