无注释。
两个方法:
executeQuery();查询集合中所有的股票信息
executeQueryWithFilter(Float indexRate,Float normalRate);查询超过一定涨幅的股票,将低于涨幅的过滤掉。indexRate:指数涨幅点过滤;normalRate目标涨幅过滤点。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Query { private String requestUrl = "http://qt.gtimg.cn/r=0.7938921226847172q="; private long sleepSecond = 10; private List<String> stockCodeList; private SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private Set<String> indexCodeSet = new HashSet<String>(2);; public Query(List<String> stockCodeList,long sleepSecond) { this.stockCodeList = stockCodeList; this.sleepSecond = sleepSecond; indexCodeSet.add("000001"); indexCodeSet.add("399006"); } public void executeQuery() throws IOException, InterruptedException { query(null, null); } public void executeQueryWithFilter(Float indexRate,Float normalRate) throws IOException, InterruptedException { query(indexRate, normalRate); } private void query(Float indexRate,Float normalRate)throws IOException, InterruptedException{ String request = getRequestData(); while (true) { Calendar ca = Calendar.getInstance(); ca.setTime(new Date()); System.out.println(dateFormate.format(ca.getTime())); System.out.println("***********************************************************************"); sendRequest(request,indexRate,normalRate); if(!inTradeTime()){ break; } Thread.sleep(sleepSecond * 1000); } } private String getRequestData() { StringBuilder requestUrlWithPara = new StringBuilder(requestUrl); for(String code : stockCodeList) { requestUrlWithPara.append(code+","); } if(stockCodeList.size() > 0) { requestUrlWithPara.deleteCharAt(requestUrlWithPara.length()-1); } return requestUrlWithPara.toString(); } private boolean inTradeTime(){ Calendar ca = Calendar.getInstance(); ca.setTime(new Date()); int hour = ca.get(Calendar.HOUR_OF_DAY); if(hour>=9 && hour<=15){ return true; } return false; } private void sendRequest(String request,Float indexRate,Float normalRate) throws IOException { URL url = new URL(request); URLConnection conn = url.openConnection(); InputStream in = conn.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in,"GBK")); String tmp = null; List<String> stockList = new ArrayList<String>(); while (null != (tmp = br.readLine())) { stockList.add(tmp); } br.close(); in.close(); for(String stock : stockList){ displayMessage(stock,indexRate,normalRate); } } private void displayMessage(String stock,Float indexRange,Float normalRange){ String stockInfo = stock.replace('~', '\t'); int index = stockInfo.indexOf('='); stockInfo = stockInfo.substring(index + 2); int headerIndex = stockInfo.indexOf("\t"); stockInfo = stockInfo.substring(headerIndex+1); int last = stockInfo.lastIndexOf(";"); stockInfo = stockInfo.substring(0, last-1); stockInfo = replaceInMap(stockInfo); String[] arr = stockInfo.split("\t");//SZZS, 000001, 2979.43, 18.46, 0.62, 175074344, 20081844 StringBuilder sbuilder = new StringBuilder(); if(indexCodeSet.contains(arr[1])){//上证指数,中小板指数 if(indexRange== null || (indexRange != null && outOfRange(indexRange, arr[4]))){ for(int i = 0 ; i < 5 ; i++){ sbuilder.append(arr[i]+"\t"); } } }else{ if(normalRange == null || (normalRange != null && outOfRange(normalRange, arr[4])) ){ for(int i = 0 ; i < 5 ; i++){ sbuilder.append(arr[i]+"\t"); } } } if(sbuilder.length() > 0){ System.out.println(sbuilder.toString()); } } private boolean outOfRange(Float range,String actRateStr ){ Float actRate = Float.valueOf(actRateStr); if(actRate >= 0){// return actRate.floatValue() >= range.floatValue() ? true : false; }else{ return actRate.floatValue() <= range.floatValue()*-1 ? true : false; } } private String replaceInMap(String content){ Map<String,String> map = new HashMap<String, String>(); map.put("粤 传 媒", "YCM"); map.put("晋西车轴", "JXCZ"); map.put("太安堂", "TAT*"); map.put("福耀玻璃", "FYBL*"); map.put("中联重科", "ZLZK*"); map.put("上证指数", "SZZS"); map.put("九洲电气", "JZDQ"); map.put("创业板指", "CYBZ"); map.put("云南铜业", "YNTY*"); map.put("慈星股份", "CXGF*"); map.put("招商证券", "ZSZQ*"); map.put("南都电源", "NDDY"); map.put("歌华有线", "GHYX*"); String newContent = new String(content); for(Entry<String, String> entry : map.entrySet()){ newContent = newContent.replace(entry.getKey(), entry.getValue()); } return newContent; } public static void main(String[] args) { //股票代号列表 List<String> codeList = new ArrayList<String>(); codeList.add("s_sh000001"); codeList.add("s_sz399006"); codeList.add("s_sz000878"); codeList.add("s_sh600999"); codeList.add("s_sz300307"); codeList.add("s_sz002433"); codeList.add("s_sz000157"); codeList.add("s_sh600660"); codeList.add("s_sh600037"); codeList.add("s_sz002181"); codeList.add("s_sz300040"); codeList.add("s_sz300068"); Query stockQuery = new Query(codeList, 20); try { stockQuery.executeQuery(); //普通查询 // stockQuery.executeQueryWithFilter(1.00F,2.00f); //过滤查询 } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }
相关推荐
1.2 接口地址 接口地址为http://42.194.194.188:8080/findbydatep。 注意:本接口不支持并发请求,不支持压测。 1.3 请求调用方式 请求方式为POST,Content-Type为application/x-www-form-urlencoded。 1.4 ...
如果是插件,它可能需要安装在特定的浏览器或桌面环境中,以便与之配合使用,提供股票信息查询功能。 压缩包中的文件`gp_test_v1.2.exe`很可能就是这个透明看股工具的可执行文件,版本为1.2。通常,`.exe`文件是...
用户需要确保自己的计算机满足特定的硬件和软件要求,如操作系统版本、内存大小、网络连接等,才能顺利运行股票客户端。 2. 客户端程序的安装 手册详细指导用户如何下载和安装股票客户端。首先,用户需要找到并下载...
接口版本经历了多次更新,例如这里提到的版本1.2,修订时间是2014年2月12日,可以查询到的是一系列函数和方法,用于在Wind量化平台中实现特定的数据和交易操作。 ### 数据接口功能函数 Wind C++接口中的数据接口...
1.2版本包含了一些改进,使得与EL表达式更紧密集成,增强了标签的功能。 4. **EJB 3.2**: Entity Bean、Session Bean和Message-driven Bean是Java EE中的核心组件。EJB 3.2引入了轻量级模式,简化了Bean的创建和...
#### 1.2 版本介绍 本次提到的版本是IBM Informix SQL 9.4。该版本相较于之前的版本在性能、稳定性方面有所提升,并且引入了一些新的特性和改进,以满足不断变化的企业需求。版本号中的“9.4”表明了这是一个相对...
- **股票查询**:查询股票信息。 - **故事**:讲述故事。 - **诗歌**:朗诵诗歌。 - **成语**:解释成语。 - **知识**:提供各种知识问答。 - **翻译**:文本翻译。 - **单位换算**:单位转换。 - **时间、日期**:...
3. **WebSocket 1.0**: Java EE 7引入了WebSocket API,提供了一种低延迟、全双工的通信机制,适合实时交互应用,如在线游戏、聊天室和股票交易系统。 4. **JSF 2.2**: JavaServer Faces(JSF)更新了视图状态管理...
股票查询(1.0).zip 高彩光标模块(含2种光标)(1.0).zip 高级信息框(1.0).zip 高级易模块集(1.0).zip 高级液晶数字1.1(1.1).zip 高级表格存为excel(1.0).zip 高级表格到数据库(1.0).zip 高级表格扩展模块(1.0).zip ...
股票查询(1.0).zip 高彩光标模块(含2种光标)(1.0).zip 高级信息框(1.0).zip 高级易模块集(1.0).zip 高级液晶数字1.1(1.1).zip 高级表格存为excel(1.0).zip 高级表格到数据库(1.0).zip 高级表格扩展模块(1.0)....
1.2 微信公众平台 2 1.2.1 功能 2 1.2.2 管理 5 1.2.3 服务 6 1.2.4 统计 7 1.2.5 设置 9 第2章 获取服务器资源 11 2.1 新浪SAE 11 2.1.1 申请账号 11 2.1.2 创建应用 13 2.1.3 创建版本 14 2.1.4 上传...
1.2 微信公众平台 2 1.2.1 功能 2 1.2.2 管理 5 1.2.3 服务 6 1.2.4 统计 7 1.2.5 设置 9 第2章 获取服务器资源 11 2.1 新浪SAE 11 2.1.1 申请账号 11 2.1.2 创建应用 13 2.1.3 创建版本 14 2.1.4 上传...
股票查询.ec 配置文件扩充操作模块.ec 网络服务器模块.ec 特效窗口模块.ec 水波特效模块.ec 取IP及地理位置模块.ec E库多条件查询模块.ec EXE→SWF转换模块.ec 树型框三级填充.ec 驱动器相关模块.ec 文件字符替换...
在Java EE 5中,JSP 2.1版本引入了EL(Expression Language)2.1和JSTL(JavaServer Pages Standard Tag Library)1.2,这两者都增强了表达式编写和页面逻辑的处理能力。EL2.1提供了更多的操作符,而JSTL则提供了更...
E库多条件查询模块.ec E库模糊查询模块.ec E电子琴.ec fhhs.ec FlyFox_hotkey.ec ForceSample.ec freemark模块_取文件.ec gdiplus类模块.ec GetStringSize.ec Hex-Dec.ec HTTP.ec http_ec.ec HTTP访问...
- **Hive**:提供类似于SQL的查询语言来处理存储在HDFS中的大量数据。 **1.2 流式计算** 流式计算是指对实时产生的数据进行实时处理和计算的过程,通常涉及到数据的实时获取、实时传输、实时计算和实时展示。常用...