基于Java语言开发的个性化股票分析技术能量潮指标OBV文档格式.docx
《基于Java语言开发的个性化股票分析技术能量潮指标OBV文档格式.docx》由会员分享,可在线阅读,更多相关《基于Java语言开发的个性化股票分析技术能量潮指标OBV文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
?
>
indicatorshortName="
OBV"
fullName="
能量潮指标"
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;