![JAR search and dependency download from the Maven repository](/logo.png)
quant.fans.provider.Provider Maven / Gradle / Ivy
The newest version!
package quant.fans.provider;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import quant.fans.Indicators;
import quant.fans.strategy.StrategyUtils;
import quant.fans.tools.Conditions;
import quant.fans.common.DateRange;
import quant.fans.common.StockConstants;
import quant.fans.common.Utils;
import quant.fans.model.*;
import quant.fans.tools.StockCategory;
import quant.fans.tools.StockList;
import java.util.*;
/**
* 成交量,单位:手
* 成交金额,单位:万
* 总市值,单位:亿
* 流通市值,单位:亿
* 外盘,单位:手
* 内盘,单位:手
*/
public class Provider {
private static final Logger LOG = LoggerFactory.getLogger(Provider.class);
private static Indicators indicators = new Indicators();
/**
* 获取指定时间段内的日线股票数据
*
* @param symbol stock symbol
* @param startDate 格式:yyyyMMdd
* @param stopDate 格式:yyyyMMdd
* @return stock data list
*/
public static List dailyData(String symbol, String startDate, String stopDate) {
return DailyDataProvider.getFQ(symbol, startDate, stopDate);
}
public static List dailyData(String symbol,String startDate,String stopDate,boolean isFQ){
if(isFQ){
return DailyDataProvider.getFQ(symbol,startDate,stopDate);
}else{
return DailyDataProvider.get(symbol,startDate,stopDate);
}
}
/**
* 获取日线级别最近250天历史数据
*
* @param symbol stock symbol
* @return stock data list
*/
public static List dailyData(String symbol) {
return dailyData(symbol, true);
}
/**
* 获取日线级别最近250天历史数据
* @param symbol stock symbol
* @param isFQ is fq
* @return stock data list
*/
public static List dailyData(String symbol,boolean isFQ) {
DateRange range = DateRange.getRange(250);
return dailyData(symbol, range.start(), range.stop(),isFQ);
}
/**
* 获取指定天数内的日线股票数据
*
* @param symbol stock symbol
* @param period time period
* @return stock data list
*/
public static List dailyData(String symbol, int period) {
return dailyData(symbol,period,true);
}
/**
* 获取指定天数内的日线股票数据
*
* @param symbol stock symbol
* @param period time period
* @param isFQ is fq
* @return stock data list
*/
public static List dailyData(String symbol, int period,boolean isFQ) {
DateRange dateRange = DateRange.getRange(period);
return dailyData(symbol, dateRange.start(), dateRange.stop(),isFQ);
}
/**
* 获取指数日线数据
* 上证综指:0000001
* 深证成指:1399001
* 深证综指:1399106
* 沪深300:0000300
* 创业板指:1399006
* 创业板综:1399102
* 中小板指:1399005
* 中小板综:1399101
* @param symbol index symbol
* @param startDate yyyyMMdd
* @param stopDate yyyyMMdd
* @return stock data list
*/
public static List dailyDataZS(String symbol,String startDate,String stopDate){
return DailyDataProvider.getZS(symbol, startDate, stopDate);
}
public static List dailyDataZS(String symbol,int period){
DateRange dateRange = DateRange.getRange(period);
return dailyDataZS(symbol, dateRange.start(), dateRange.stop());
}
public static List dailyDataZS(String symbol){
DateRange dateRange = DateRange.getRange(250);
return dailyDataZS(symbol, dateRange.start(), dateRange.stop());
}
/**
* 获取实时数据股票数据
* @param symbol stock symbol
* @return stock data list
*/
public static StockData realtimeData(String symbol) {
return RealTimeDataProvider.get(symbol);
}
/**
* 获取最新10天股票分钟级别数据
*
* @param symbol stock symbol
* @param type 参数值:5,15,30,60
* @return stock data list
*/
public static List minuteData(String symbol, String type) {
DateRange range = DateRange.getRange(120);//数据源不够30天
List stockDataList = minuteData(symbol, range.start(), range.stop(), type);
return stockDataList;
}
/**
* 获取指定时间段内历史分钟级别数据,受数据源限制
*
* @param symbol stock symbol
* @param startDate 格式:yyyyMMdd
* @param stopDate 格式:yyyyMMdd
* @param type 5,15,30,60
* @return stock data list
*/
public static List minuteData(String symbol, String startDate, String stopDate, String type) {
return MinuteDataProvider.get(symbol, startDate, stopDate, type);
}
/**
* 获取个股当日资金流数据
* @param symbol stock symbol
* @return stock data list
*/
public static StockData moneyFlowData(String symbol) {
return MoneyFlowDataProvider.get(symbol);
}
/**
* 获取个股指定时间段内资金流数据,受数据源限制
*
* @param symbol stock symbol
* @param startDate 格式:yyyyMMdd
* @param stopDate 格式:yyyyMMdd
* @return stock data list
*/
public static List moneyFlowData(String symbol, String startDate, String stopDate) {
return MoneyFlowDataProvider.get(symbol, startDate, stopDate);
}
/**
* 大盘资金流向历史数据
* @return stock data list
*/
public static List moneyFlowDapanData() {
return MoneyFlowDataProvider.getDapan();
}
/**
* 获取今天、5日、10日行业版块资金流数据
*
* @param type 1,5,10
* @return stock data list
*/
public static List moneyFlowIndustryData(String type) {
return MoneyFlowDataProvider.getIndustry(type);
}
/**
* 获取今天、5日、10日行业版块资金流数据
*
* @param type 输入值:1,5,10
* @return stock data list
*/
public static List moneyFlowConceptData(String type) {
return MoneyFlowDataProvider.getConcept(type);
}
/**
* 获取今天、5日、10日行业版块资金流数据
*
* @param type 1,5,10
* @return stock data list
*/
public static List moneyFlowRegionData(String type) {
return MoneyFlowDataProvider.getRegion(type);
}
/**
* 历史财报
*
* @param symbol stock symbol
* @param startDate 格式:yyyyMMdd
* @param stopDate 格式:yyyyMMdd
* @return stock data list
*/
public static List financeData(String symbol, String startDate, String stopDate) {
return FinanceDataProvider.get(symbol, startDate, stopDate);
}
/**
* 最新一期财报数据
* @param symbol stock symbol
* @return stock data list
*/
public static StockData financeData(String symbol) {
DateRange range = DateRange.getRange(365);
List stockDataList = FinanceDataProvider.get(symbol, range.start(), range.stop());
if (stockDataList.size() >= 1) {
return stockDataList.get(stockDataList.size() - 1);
} else {
return new StockData(symbol);
}
}
/**
* 股票年报数据
* @param symbol stock symbol
* @return stock data list
*/
public static List financeYearData(String symbol) {
return FinanceDataProvider.getYear(symbol);
}
/**
* 获取最新一天股票逐笔数据
*
* @param symbol stock symbol
* @return tick list
*/
public static List tickData(String symbol) {
return TickDataProvider.get(symbol);
}
/**
* 获取指定日期逐笔股票数据
*
* @param symbol stock symbol
* @param date 格式: yyyyMMdd
* @return tick data list
*/
public static List tickData(String symbol, String date) {
String _date = Utils.formatDate(Utils.str2Date(date, "yyyyMMdd"), "yyyy-MM-dd");
return TickDataProvider.get(symbol, _date);
}
/**
* 获取股票版块数据
* map key: 股票的版块分类名称,包含三项:概念,地区,行业
* value: list是版块分类下的版块,每个版块包含一个股票列表
* @return stock data list
*/
public static Map> stockBlock() {
return StockCategory.getCategory();
}
/**
* 获取某个股票在大分类下的具体分类:概念,行业,地域
* @param type category
* @return stock data list
*/
public static Map> stockCategory(String type) {
return StockCategory.getStockCategory(type);
}
/**
* 获取股票列表
* @return stock data list
*/
public static List stockList() {
return StockList.getSymbols();
}
//计算是今天第几个bar,从1开始
private static long getTimeSlot(long curTime, long startTime, int interval) {
return (curTime - startTime) / interval;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy