《基于Java语言开发的个性化股票分析技术量能突破模型(Energe-Break)》由会员分享,可在线阅读,更多相关《基于Java语言开发的个性化股票分析技术量能突破模型(Energe-Break)(38页珍藏版)》请在金锄头文库上搜索。
1、(本源代码转载自迅动股票分析平台,了解更多请访问 )基于 Java 语言开发的个性化股票分析技术:量能突破模型(Energe-Break)一个用量能指标作为判定依据的条件分析模型,根据最近 5 天内是否有量能平台的突破以及涨跌幅的大小给每只股票评分评价,给用户明确的建议。迅动股票分析平台在此基础上利用 Java 语言开发了量能突破模型(Energe-Break),源代码如下:XML 描述:一个用量能指标作为判定依据的条件分析模型,根据最近 5 天内是否有量能平台的突破以及涨跌幅的大小给每只股票评分评价,给用户明确的建议。Java 代码:/* (#)EBnalyser.java* Copyrig
2、ht Hangzhou Shengren Software Tech. Co., Ltd.*/package u008660011.model.analyser.eb;(本源代码转载自迅动股票分析平台,了解更多请访问 )import java.rmi.RemoteException;import java.util.List;import mons.lang.math.NumberUtils;import mon.util.DateUtil;import mon.util.StkAnalysisUtil;import com.shengrensoft.stock.center.data.Dat
3、a;import com.shengrensoft.stock.center.data.StkDailyK.StkDailyKData;import com.shengrensoft.stock.center.data.IdxDailyK.IdxDailyKData;import com.shengrensoft.stock.center.data.BlkDailyK.BlkDailyKData;import com.shengrensoft.stock.center.model.ModelParam;import com.shengrensoft.stock.center.model.ana
4、lyser.AbstractAnalyser;import com.shengrensoft.stock.center.model.analyser.AnalysisValue;/* EB量能突破分析模型的实现类。* * author 迅动平台 2012/09/20 新建*/public class EBAnalyser extends AbstractAnalyser /* 序列版本 ID */private static final long serialVersionUID = -732447148977150017L;/ 参数名定义/* 参数名:N 天数 */private stati
5、c final String PARAM_N = N;/* 参数名:加减分系数 */private static final String PARAM_CONFICENT = C;/* 构造方法。*/public EBAnalyser() throws RemoteException /* 分析买入点的变化。* * param stkCode 证券代码* param transDate 交易日期* param paramsList 模型参数列表(本源代码转载自迅动股票分析平台,了解更多请访问 )* * return 分析结果(含评分和评价)*/public AnalysisValue doAn
6、alysis(String stkCode,java.util.Date transDate,List paramsList) throws RemoteException AnalysisValue analysisValue = null;/ 股票代码合法性检查if (stkCode = null) analysisValue = new AnalysisValue();analysisValue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(股票代码不合法,分析失败。 );r
7、eturn analysisValue;/ 交易日期合法性检查if (transDate = null) analysisValue = new AnalysisValue();analysisValue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(交易日期不合法,分析失败。 );return analysisValue;/ 参数列表合法性检查if (paramsList = null) analysisValue = new AnalysisValue();analysisVa
8、lue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(参数列表不合法,分析失败。 );return analysisValue;/ 取得分析所需的模型参数int paramN = 0;int paramCONFICENT = 0;for (ModelParam param : paramsList) if (PARAM_N.equals(param.getShortName() paramN = NumberUtils.toInt(param.getValue(); else if
9、 (PARAM_CONFICENT.equals(param.getShortName() (本源代码转载自迅动股票分析平台,了解更多请访问 )paramCONFICENT = NumberUtils.toInt(param.getValue(); else return null; / 发现一个意外的模型参数/ 天数的合法性检查if (paramN 99) analysisValue = new AnalysisValue();analysisValue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.set
10、ResultDesc(加减分系数,分析失败。 );return analysisValue;/ 判别证券代码类型(是否为股票代码,股指代码,板指代码) ,分别进行分析StkAnalysisUtil stkAnalysisUtil = super.getStkAnalysisUtil();if (stkAnalysisUtil.isStkCode(stkCode) analysisValue = this.analyseStk(stkCode, transDate, paramN, paramCONFICENT);if (analysisValue = null)analysisValue =
11、new AnalysisValue();analysisValue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(公司新上市或该天缺少数据,分析失败 !);return analysisValue; else if (stkAnalysisUtil.isIdxCode(stkCode) analysisValue = this.analyseIdx(stkCode, transDate, paramN, paramCONFICENT);if (analysisValue = nul
12、l)analysisValue = new AnalysisValue();(本源代码转载自迅动股票分析平台,了解更多请访问 )analysisValue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(公司新上市或该天缺少数据,分析失败 !);return analysisValue; else if (stkAnalysisUtil.isBlkCode(super.getUserId(), stkCode) analysisValue = this.analyseBlk(stkC
13、ode, transDate, paramN, paramCONFICENT);if (analysisValue = null)analysisValue = new AnalysisValue();analysisValue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(公司新上市或该天缺少数据,分析失败 !);return analysisValue; else analysisValue = new AnalysisValue();analysisValue.setStkC
14、ode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(证劵代码类型不符,分析失败 !);return analysisValue;/* 根据能量突破提示的不同,对股票进行分析、评分、评价。* * param stkCode 股票代码* param transDate 交易日期* param paramN 天数* param paramCONFICENT (%)加减分系数* * return 返回结果(含评分和评价)*/ private AnalysisValue analyseStk(String st
15、kCode,java.util.Date transDate,int paramN,int paramCONFICENT)(本源代码转载自迅动股票分析平台,了解更多请访问 )AnalysisValue analysisValue = null;/ 计算 TTJ 值Integer TTJ = calcStkTTJ(stkCode, transDate, paramN);if (TTJ = null)analysisValue = new AnalysisValue();analysisValue.setStkCode(stkCode);analysisValue.setResultScore(0);analysisValue.setResultDesc(数据不足,分析失败);return analysisValue;/ 计算资金增幅百分比Double pricePerct = calcStkPricePerct(stkCode, transDate);if (pricePerct = null)analysisValue = new AnalysisValu