JQuant

Maven依赖

<dependencies>
    <dependency>
        <groupId>net.jquant</groupId>
        <artifactId>JQuant</artifactId>
        <version>0.1</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>oss</id>
        <url>https://oss.sonatype.org/content/groups/public/</url>
    </repository>
</repositories>

示例

package quant.fans;

import quant.fans.model.StockData;

import java.util.List;

public class Main {

    public static void main(String[] args) {
        Quants quants = new Quants();
        //获取股票列表
        List<String> list = quants.data.stockList();

        for (String stock : list) {
            //StockData代表一个时间片的数据,例如日线级别,每个StockData为一天收盘后的股票数据
            List<StockData> stockDatas = quants.data.dailyData(stock);
            //剔除交易数据小于60天的股票
            if (stockDatas == null || stockDatas.size() < 60) {
                continue;
            }
            //indicator包含常用指标的计算
            quants.indicator.macd(stockDatas);
            //获取5、10、20、30、40、60均线,也可以通过sma(stockDatas,ma)获取指定时间间隔的均线
            quants.indicator.sma(stockDatas);
            quants.indicator.boll(stockDatas);
            quants.indicator.kdj(stockDatas);
            //strategy包含简单的策略计算,例如macd金叉
            quants.strategy.macdCross(stockDatas);
            quants.strategy.kdjCross(stockDatas);
            quants.strategy.goldenSpider(stockDatas);
            quants.strategy.bollThroat(stockDatas);
            for (StockData stockData : stockDatas) {
                System.out.println(stockData);
            }
        }
    }
}

API

初始化

Quants quants = new Quants();

StockData表示股票的一个时间片的数据,继承自LinkedHashMap,存储属性名称和double类型数值。

StockData stockData = Provider.realtimeData("000001");
System.out.println("股票名称:" + stockData.name);
System.out.println("股票代码:" + stockData.symbol);
for(Map.Entry<String,Double> data : stockData.entrySet()){
    System.out.println(data.getKey() + "=" + data.getValue());
}

不同Provider返回的StockData的数据项不同,具体信息查询字段说明

股票数据 quants.data

net.jquant.provider包提供了股票相关的数据获取类

Provider列表如下:

net.jquant.provider.Provider类里的static方法汇总了全部provider方法,一般情况,使用Provider类就可以满足数据查询需求。

股票列表 quants.stocks

StockList 用于获取股票列表,并提供一些过滤和处理接口对股票进行筛选。

指标计算 quants.indicator

net.jquant。Indicators 是对Ta-lib库的封装,提供常用指标计算,返回StockData list对象。同时也提供了一些Ta-lib没有的指标计算。

支持的指标包括:

策略计算 quants.strategy