`
annan211
  • 浏览: 463017 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

highstock 绘制K线行情

 
阅读更多
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<jsp:include page="/include/head_new.jsp"></jsp:include>
<style type="text/css">
.select_ul{
	height:30px;
	background:#ddd;
}
.select_ul li{
	height:22px;
	margin:4px 0 0 10px;
	float:left;
	cursor:pointer;
	line-height:22px;
	padding:0 4px;
}
.select_ul li.current{
	background:#bbb;
	border-radius:3px;
	font-weight:bold;
}
</style>
<script src="/sts/js/highcharts/highstock.src.js"></script>
		<script type="text/javascript">
		Date.prototype.Format = function (fmt) { //author: meizz
		    var o = {
		        "M+": this.getMonth() + 1, //月份
		        "d+": this.getDate(), //日
		        "h+": this.getHours(), //小时
		        "m+": this.getMinutes(), //分
		        "s+": this.getSeconds(), //秒
		        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
		        "S": this.getMilliseconds() //毫秒
		    };
		    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
		    for (var k in o)
		    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
		    return fmt;
		};
		var quoteTypeFlag = 0;
		/**
		quoteType:K线类型,1-1分钟,2-5分钟,3-15分钟,4-30分钟,5-1小时,6-2小时,7-4小时, * 8-1天,9-1星期,10-1个月,11-1季度,12一年
		*/
		$(function() {
			if(quoteTypeFlag == 0){
				// 如果用户没有触发   则默认显示1小时的数据K线
				listRealtimeQuote(5);
			}
		});

		function quoteType(type){
			// 显示 highstock
			listRealtimeQuote(type);
			// 如果是用户触发  则赋值给  quoteTypeFlag
			quoteTypeFlag = type;
		}
		</script>
		<div class="content ptlr10">
                    <ul class="select_ul">
                        <li onclick="quoteType(1)" id="l1">1分</li>
                        <li onclick="quoteType(2)" id="l2">5分</li>
                        <li onclick="quoteType(3)" id="l3">15分</li>
                        <li onclick="quoteType(4)" id="l4">30分</li>
						<li onclick="quoteType(5)" id="l5">1时</li>
                        <li onclick="quoteType(6)" id="l6">2时</li>
                        <li onclick="quoteType(7)" id="l7">4时</li>
						<li onclick="quoteType(8)" id="l8">1日</li>
                        <li onclick="quoteType(9)" id="l9">1周</li>
                        <li onclick="quoteType(10)" id="l10">1月</li>
                        <li onclick="quoteType(11)" id="l11">1季度</li>
                        <li onclick="quoteType(12)" id="l12">1年</li>
                    </ul>
		</div>
		<div id="container" style="height: 500px; min-width: 310px"></div>






 function listRealtimeQuote (quoteType) {
			var pointCode = 0,proName="";
			if(quoteType >5){
				pointCode = 4;
			}else if(0< pointCode<=7){
				pointCode = 4;
			}
			$.ajax({
				url: '/data/realtimeQuoteListMarket.do?quoteType='+quoteType,
				type: 'GET',
				dataType: 'json',
				success:function(json){
				// split the data set into ohlc and volume
				var ohlc = [],
					volume = [],
					data = json.object;

				if(data == null){
					return;
				}
				proName = data[0].contractCode;
				var arr=[];
				for (i = 0; i < data.length; i++) {
					var dt = data[i].quoteBeginDate;
					var time = dt.substring(0,4)+"/"+dt.substring(4,6)+"/"+dt.substring(6,8)+"/"+dt.substring(8,10)+":"+dt.substring(10,12)+":"+dt.substring(12,14);
					var dtime = new Date(Date.parse(time)).getTime();
					ohlc.push([
						dtime,//data[i].quoteBeginDate, // the date   (new Date(Date.parse("2014/03/28/09:05:01"))).getTime()
						parseFloat(data[i].open), // open
						parseFloat(data[i].high), // high
						parseFloat(data[i].low), // low
						parseFloat(data[i].close) // close
					]);
					volume.push([
						dtime, // the date
						parseFloat(data[i].endVol) // the volume
					]);
				}
				var quickSort = function(arr) {
					if (arr.length <= 1) { return arr; }
					var pivotIndex = Math.floor(arr.length / 2);
					var pivot = arr.splice(pivotIndex, 1)[0];
					var left = [];
					var right = [];
						for (var i = 0; i < arr.length; i++){
							if (arr[i][0] < pivot[0]) {
								left.push(arr[i]);
							} else {
								right.push(arr[i]);
							}
						}
						return quickSort(left).concat([pivot], quickSort(right));
					};
					ohlc.sort(function(a,b){return a[0]-b[0]});
					volume=quickSort(volume);
				// set the allowed units for data grouping
				var groupingUnits = [
				     				['minute',[1,5,15, 30]],
				     				['hour',[1, 2,4]],
				     				['day',[1]],
				     				['week',[1]],
				     				['month',[1]],
				     				['year',[1]]
					     		];
				// create the chart
				$('#container').highcharts('StockChart', {plotOptions: {// 绘制颜色
				    	candlestick: {
				    		color: '#1BA767',
				    		upColor: '#E24439'
				    	}
					},
				    rangeSelector: {
						enabled:false
				    },
				    inputDateFormat: '%H:%M:%S.%L',
		            inputEditDateFormat: '%H:%M:%S.%L',
		            lang:{
                        months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
                        shortMonths: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一', '十二'],
                        weekdays: ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
                        exportButtonTitle:'导出PDF',
                        printButtonTitle:'打印报表'
                    },
				    credits :{
		            	enabled:false
		            },
		            tooltip: {
		            	valueDecimals: 2,
	                    useHTML: true,
		            	formatter: function() {
	                        var ctime = new Date('1970, 1, 1');
	                        ctime.setTime(parseInt(this.x));
	                        var year = ctime.getUTCFullYear();
	                        var month = ctime.getUTCMonth() + 1;
	                        var day = ctime.getUTCDate();
	                        var time = ctime.toLocaleTimeString();
	                        return year + '-' + month + '-' + day + " " + time +"<br/>"+
	                        		'<span style="color:{series.color}">\u25CF</span><b> '+proName+'</b><br/>'+
			                        '开盘价: '+this.points[0].point.open+'<br/>' +
				        			'收盘价: '+this.points[0].point.close+'<br/>' +
				        			'最高价: '+this.points[0].point.high+'<br/>' +
				        			'最低价: '+this.points[0].point.low+'<br/>' ;
                    			}
		        	},
				    title: {
				        text: '产品指数'
				    },
				    yAxis: [{
				        labels: {
				    		align: 'right',
				    		x: -3
				    	},
				        title: {
				            text: '蜡烛图'
				        },
				        height: '60%',
				        lineWidth: 2
				    }, {
				    	labels: {
				    		align: 'right',
				    		x: -3
				    	},
				        title: {
				            text: '条形图'
				        },
				        top: '65%',
				        height: '35%',
				        offset: 0,
				        lineWidth: 2
				    }],
				    series: [{
				        type: 'candlestick',
				        name: proName,
				        data: ohlc,
				        dataGrouping: {
				    		units: groupingUnits
				        }
				    	,pointWidth: pointCode  // 蜡烛图的宽度
				    }]
				});
				}});///////////////

分享到:
评论

相关推荐

    IncompatibleClassChangeError(解决方案).md

    IncompatibleClassChangeError(解决方案).md

    中国智慧工地行业市场研究(2023)Word(63页).docx

    智慧工地,作为现代建筑施工管理的创新模式,以“智慧工地云平台”为核心,整合施工现场的“人机料法环”关键要素,实现了业务系统的协同共享,为施工企业提供了标准化、精益化的工程管理方案,同时也为政府监管提供了数据分析及决策支持。这一解决方案依托云网一体化产品及物联网资源,通过集成公司业务优势,面向政府监管部门和建筑施工企业,自主研发并整合加载了多种工地行业应用。这些应用不仅全面连接了施工现场的人员、机械、车辆和物料,实现了数据的智能采集、定位、监测、控制、分析及管理,还打造了物联网终端、网络层、平台层、应用层等全方位的安全能力,确保了整个系统的可靠、可用、可控和保密。 在整体解决方案中,智慧工地提供了政府监管级、建筑企业级和施工现场级三类解决方案。政府监管级解决方案以一体化监管平台为核心,通过GIS地图展示辖区内工程项目、人员、设备信息,实现了施工现场安全状况和参建各方行为的实时监控和事前预防。建筑企业级解决方案则通过综合管理平台,提供项目管理、进度管控、劳务实名制等一站式服务,帮助企业实现工程管理的标准化和精益化。施工现场级解决方案则以可视化平台为基础,集成多个业务应用子系统,借助物联网应用终端,实现了施工信息化、管理智能化、监测自动化和决策可视化。这些解决方案的应用,不仅提高了施工效率和工程质量,还降低了安全风险,为建筑行业的可持续发展提供了有力支持。 值得一提的是,智慧工地的应用系统还围绕着工地“人、机、材、环”四个重要因素,提供了各类信息化应用系统。这些系统通过配置同步用户的组织结构、智能权限,结合各类子系统应用,实现了信息的有效触达、问题的及时跟进和工地的有序管理。此外,智慧工地还结合了虚拟现实(VR)和建筑信息模型(BIM)等先进技术,为施工人员提供了更为直观、生动的培训和管理工具。这些创新技术的应用,不仅提升了施工人员的技能水平和安全意识,还为建筑行业的数字化转型和智能化升级注入了新的活力。总的来说,智慧工地解决方案以其创新性、实用性和高效性,正在逐步改变建筑施工行业的传统管理模式,引领着建筑行业向更加智能化、高效化和可持续化的方向发展。

    java大题啊实打实的

    123

    asdjhfjsnlkdmv

    asdjhfjsnlkdmv

    二手车价格预测,代码核心任务是通过机器学习模型(如线性回归、随机森林和KNN回归)预测车辆的价格(current price),并使用评估指标(如 R² 和 MSE)来衡量不同模型的预测效果

    该代码实现了基于机器学习的车辆价格预测模型,利用不同回归算法(如线性回归、随机森林回归和 KNN 回归)对车辆的当前价格(current price)进行预测。代码首先进行数据加载与预处理,包括删除无关特征、归一化处理等;然后使用不同的机器学习模型进行训练,并评估它们的表现(通过 R²、MAE、MSE 等指标);最后通过可视化工具对模型预测效果进行分析。目的是为车辆价格预测任务找到最合适的回归模型。 适用人群: 数据科学家和机器学习工程师:对于需要进行回归建模和模型选择的从业者,尤其是对车辆数据或类似领域有兴趣的。 企业数据分析师:在汽车行业或二手车市场中,需要对车辆价格进行预测和分析的专业人员。 机器学习学习者:希望学习如何使用 Python 实现机器学习模型、数据预处理和评估的初学者或中级学习者。 使用场景及目标: 汽车定价与估值:用于为汽车或二手车定价,尤其是当需要预测车辆的当前市场价格时。 汽车行业市场分析:通过数据分析和回归预测,帮助汽车销售商、经销商或市场分析师预测未来的市场价格趋势。 二手车市场:为二手车买卖双方提供价格参考,帮助制定合理的交易价格。

    基于模型预测控制(mpc)的车辆道,车辆轨迹跟踪,道轨迹为五次多项式,matlab与carsim联防控制

    基于模型预测控制(mpc)的车辆道,车辆轨迹跟踪,道轨迹为五次多项式,matlab与carsim联防控制

    StoreError解决办法.md

    StoreError解决办法.md

    白色精致风格的个人简历模板下载.zip

    白色精致风格的个人简历模板下载.zip

    白色宽屏风格的房产介绍服务网站模板下载.zip

    白色宽屏风格的房产介绍服务网站模板下载.zip

    基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)

    基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目),本资源中的源码都是经过本地编译过可运行的,评审分达到98分,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、毕业设计、期末大作业和课程设计使用需求,如果有需要的话可以放心下载使用。 基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于Python实现的医疗知识图谱的知识问答系统源码毕业设计(高分项目)基于

    白色宽屏风格的生物医疗实验室企业网站模板.rar

    白色宽屏风格的生物医疗实验室企业网站模板.rar

    C# 操作Access数据库

    C# 操作Access数据库

    NSFileSystemError如何解决.md

    NSFileSystemError如何解决.md

    白色简洁风格的商户销售统计图源码下载.zip

    白色简洁风格的商户销售统计图源码下载.zip

    白色简洁风格的室内设计整站网站源码下载.zip

    白色简洁风格的室内设计整站网站源码下载.zip

    侧吸式油烟机sw16可编辑全套技术资料100%好用.zip

    侧吸式油烟机sw16可编辑全套技术资料100%好用.zip

    matlab人脸识别代码

    在 MATLAB 中进行人脸识别可以通过使用内置的工具箱和函数来实现。MATLAB 提供了计算机视觉工具箱(Computer Vision Toolbox),其中包含了用于图像处理、特征提取以及机器学习的函数,可以用来构建一个人脸识别系统。下面是一个简化的教程,介绍如何使用 MATLAB 进行人脸识别。 ### 准备工作 1. **安装必要的工具箱**:确保你已经安装了“计算机视觉工具箱”和“深度学习工具箱”。如果没有,可以通过 MATLAB 的附加功能管理器安装它们。 2. **获取数据集**:准备一个包含不同个体的人脸图像的数据集。你可以自己收集图片,或者使用公开的数据集如 AT&T Faces Database 或 LFW (Labeled Faces in the Wild) 数据集。 3. **安装预训练模型(可选)**:如果你打算使用深度学习方法,MATLAB 提供了一些预训练的卷积神经网络(CNN)模型,比如 AlexNet, GoogLeNet 等,可以直接加载并用于特征提取或分类。 ### 步骤指南 #### 1. 加载人脸检测器 ```matlab face

    白色宽屏风格的建筑设计公司企业网站源码下载.zip

    白色宽屏风格的建筑设计公司企业网站源码下载.zip

    智慧工地产品方案Word(179页).doc

    智慧工地,作为现代建筑施工管理的创新模式,以“智慧工地云平台”为核心,整合施工现场的“人机料法环”关键要素,实现了业务系统的协同共享,为施工企业提供了标准化、精益化的工程管理方案,同时也为政府监管提供了数据分析及决策支持。这一解决方案依托云网一体化产品及物联网资源,通过集成公司业务优势,面向政府监管部门和建筑施工企业,自主研发并整合加载了多种工地行业应用。这些应用不仅全面连接了施工现场的人员、机械、车辆和物料,实现了数据的智能采集、定位、监测、控制、分析及管理,还打造了物联网终端、网络层、平台层、应用层等全方位的安全能力,确保了整个系统的可靠、可用、可控和保密。 在整体解决方案中,智慧工地提供了政府监管级、建筑企业级和施工现场级三类解决方案。政府监管级解决方案以一体化监管平台为核心,通过GIS地图展示辖区内工程项目、人员、设备信息,实现了施工现场安全状况和参建各方行为的实时监控和事前预防。建筑企业级解决方案则通过综合管理平台,提供项目管理、进度管控、劳务实名制等一站式服务,帮助企业实现工程管理的标准化和精益化。施工现场级解决方案则以可视化平台为基础,集成多个业务应用子系统,借助物联网应用终端,实现了施工信息化、管理智能化、监测自动化和决策可视化。这些解决方案的应用,不仅提高了施工效率和工程质量,还降低了安全风险,为建筑行业的可持续发展提供了有力支持。 值得一提的是,智慧工地的应用系统还围绕着工地“人、机、材、环”四个重要因素,提供了各类信息化应用系统。这些系统通过配置同步用户的组织结构、智能权限,结合各类子系统应用,实现了信息的有效触达、问题的及时跟进和工地的有序管理。此外,智慧工地还结合了虚拟现实(VR)和建筑信息模型(BIM)等先进技术,为施工人员提供了更为直观、生动的培训和管理工具。这些创新技术的应用,不仅提升了施工人员的技能水平和安全意识,还为建筑行业的数字化转型和智能化升级注入了新的活力。总的来说,智慧工地解决方案以其创新性、实用性和高效性,正在逐步改变建筑施工行业的传统管理模式,引领着建筑行业向更加智能化、高效化和可持续化的方向发展。

    履带车底盘sw16全套技术资料100%好用.zip

    履带车底盘sw16全套技术资料100%好用.zip

Global site tag (gtag.js) - Google Analytics