基于Java语言开发的个性化股票分析技术能量潮指标OBVWord文档下载推荐.docx
- 文档编号:3971627
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:8
- 大小:12.31KB
基于Java语言开发的个性化股票分析技术能量潮指标OBVWord文档下载推荐.docx
《基于Java语言开发的个性化股票分析技术能量潮指标OBVWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Java语言开发的个性化股票分析技术能量潮指标OBVWord文档下载推荐.docx(8页珍藏版)》请在冰点文库上搜索。
class="
com.shengrensoft.stock.model.indicator.dailyobv.DailyOBVIndicator"
dataUnit="
D"
!
--仅限:
分钟、每日、每周、每月四种情况允许-->
<
--参数列表-->
paramList>
/paramList>
--数据列表-->
dataList>
<
datashortName="
StkDailyK"
/>
IdxDailyK"
BlkDailyK"
/dataList>
--输出列表-->
valueList>
valueshortName="
O"
fullName="
/valueList>
--图形:
能量潮指标-->
drawChartname="
region="
IndicatorF"
linethickness="
1"
color="
#FFFFFF"
opacity="
--白色线形图-->
<
<
name="
value"
/line>
/drawChart>
description>
能量潮指标(OBV)根据股市成交量来推测股价趋势。
/description>
/indicator>
Java代码:
/*
*@(#)DailyOBVIndicator.java
*
*Copyright@HangzhouShengrenSoftwareTech.Co.,Ltd.
*/
packagecom.shengrensoft.stock.model.indicator.dailyobv;
importjava.rmi.RemoteException;
importjava.text.DecimalFormat;
importjava.util.LinkedHashMap;
importjava.util.List;
importmon.util.DateUtil;
importmon.util.StkAnalysisUtil;
importcom.shengrensoft.stock.center.data.Data;
importcom.shengrensoft.stock.center.data.GettingDataList;
importcom.shengrensoft.stock.center.data.Data.DataName;
importcom.shengrensoft.stock.center.data.StkDailyK.StkDailyKData;
importcom.shengrensoft.stock.center.model.ModelParam;
importcom.shengrensoft.stock.center.model.indicator.AbstractIndicator;
importcom.shengrensoft.stock.center.model.indicator.IndicatorValue;
importcom.shengrensoft.stock.center.data.IdxDailyK.IdxDailyKData;
importcom.shengrensoft.stock.center.data.BlkDailyK.BlkDailyKData;
/**
*OBV能量潮指标的实现类。
*
*@author迅动平台2012/08/06新建
publicclassDailyOBVIndicatorextendsAbstractIndicator{
/**序列版本ID*/
privatestaticfinallongserialVersionUID=6146654415916101973L;
//计算值定义
/**计算值:
能量潮指标*/
privatestaticfinalStringVALUE_OBV="
;
/**
*构造方法。
*/
publicDailyOBVIndicator()throwsRemoteException{}
*取得指定时间范围内的OBV能量潮指标的值列表。
*
*@paramstkCode证券代码
*@parambeginDate起始日期
*@paramcloseDate终止日期
*@paramparamsList指标参数列表
*@returnOBV能量潮指标的值列表
publicLinkedHashMap<
java.util.Date,IndicatorValue>
calculate(
StringstkCode,
java.util.DatebeginDate,
java.util.DatecloseDate,
List<
ModelParam>
paramsList)throwsRemoteException{
//如果未指定起始日期,则返回空的值序列
if(beginDate==null){
returnnull;
}
//如果未指定终止日期,则以当前日期作为终止日期
if(closeDate==null){
closeDate=DateUtil.getSystemTime();
//起始日期、终止日期的前后关系检查
if(beginDate.after(closeDate)){
//判别证券代码类型(股票代码、股指代码、或板指代码),分别计算OBV能量潮指标的值序列
StkAnalysisUtilstkAnalysisUtil=super.getStkAnalysisUtil();
if(stkAnalysisUtil.isStkCode(stkCode)){
returnthis.calcStkDailyOBV(stkCode,beginDate,closeDate);
}elseif(stkAnalysisUtil.isIdxCode(stkCode)){
returnthis.calcIdxDailyOBV(stkCode,beginDate,closeDate);
}elseif(stkAnalysisUtil.isBlkCode(super.getUserId(),stkCode)){
returnthis.calcBlkDailyOBV(stkCode,beginDate,closeDate);
}else{
}
*计算出指定股票指定日期范围的OBV能量潮指标的值序列。
*@paramstkCode股票代码
*@returnOBV能量潮指标的值序列
privateLinkedHashMap<
calcStkDailyOBV(
java.util.DatecloseDate){
//准备好指标返回值列表
LinkedHashMap<
indicatorValueList=
newLinkedHashMap<
();
//取得指定股票指定日期范围的日K数据
GettingDataListdataList=super.getUsingDataList();
Datadata=dataList.getDailyData(
DataName.StkDailyKData.getShortName(),stkCode,beginDate,closeDate);
if(data==null){
returnindicatorValueList;
//表示指定日期范围内无对应的日K数据
//数据类型转换
StkDailyKDatadailyKData=(StkDailyKData)data;
longyestObv=0;
longobv=0;
booleanflag=true;
//用来判断是否为第一天
java.util.Datedate=beginDate;
do{
//日期
StringdateStr=DateUtil.getFormatedDate(date,"
yyyyMMdd"
);
//容错处理:
应对因系统原因导致某日该有交易日却没有交易记录的情况
Integertest=dailyKData.getOpen(dateStr);
if(test!
=null&
&
test!
=0){
//构造指标值对象
IndicatorValueindicatorValue=newIndicatorValue();
Integerclose=dailyKData.getClose(dateStr);
if(close!
close!
//计算OBV值
obv=dailyKData.getVolume(dateStr);
//获得成交量
intchange=dailyKData.getChange(dateStr);
//获得涨跌额(今收盘价-昨收盘价)
if((!
flag)&
(change>
=0)){
obv=yestObv+obv;
}elseif((!
(change<
0)){
obv=yestObv-obv;
}elseif(flag){
yestObv=obv;
flag=false;
}
indicatorValue.setValue(VALUE_OBV,format(obv));
//添加指标值对象
indicatorValueList.put(date,indicatorValue);
}
}
//准备取得下一日的数据
date=super.getStkTransDateUtil().getNextTransDate(date);
if(date==null){
break;
}while(!
date.after(closeDate));
//返回OBV能量潮指标的值序列
returnindicatorValueList;
*计算出指定股指指定日期范围的OBV能量潮指标的值序列。
*@paramidxCode股指代码
calcIdxDailyOBV(
StringidxCode,
DataName.IdxDailyKData.getShortName(),idxCode,beginDate,closeDate);
IdxDailyKDatadailyKData=(IdxDailyKData)data;
*计算出指定板指指定日期范围的OBV能量潮指标的值序列。
*@paramblkCode扳指代码
calcBlkDailyOBV(
StringblkCode,
DataName.BlkDailyKData.getShortName(),blkCode,beginDate,closeDate);
if(data==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 语言 开发 个性化 股票 分析 技术 能量 指标 OBV