Skip to content

aye-zhang/tushare4j

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tushare4j - A TuShare Java Client

Maven Central Build Status codecov Codacy Badge

相关项目

依赖引入

    <dependency>
      <groupId>com.github.kinoamyfx</groupId>
      <artifactId>tushare4j</artifactId>
      <version>1.0.0-RELEASE</version>
    </dependency>

使用方法

直接同步调用

    //使用token初始化client
    TuShareClient client = new TuShareClient(token);
    
    //构造请求体
    StockDailyRequest request = new StockDailyRequest().tsCode("000001.SZ");
    
    //执行请求,得到返回结果
    //默认返回全字段
    List<KLine> result = client.call(request);
    

字段选择和字段过滤

    //使用token初始化client
    TuShareClient client = new TuShareClient(token);
    
    //构造请求体
    StockDailyRequest request = new StockDailyRequest().setTsCode("000001.SZ");
    
    
    //使用Includer选择希望返回的字段
    FieldIncluder[]  includers = FieldFilter.include("ts_code", "open");
    List<KLine> result = client.call(request,includers);
    
    //使用Excluder排除掉不希望返回的字段
    FieldExcluder[] excluders = FieldFilter.exclude("trade_date", "pre_close");
    List<KLine> result = client.call(request,excluders);
       

异步调用

    
    TuShareClient client = new TuShareClient(token);
    
    StockDailyRequest request = new StockDailyRequest().setTsCode("000001.SZ");
    
    //使用异步请求
    CompletionStage<List<KLine>> stage = client.asyncCall(request);
    
    //使用Java8 原生处理
    stage.whenComplete((kLines, throwable) -> {
        //do something
    });
    
    //也可以接入RxJava
    Flowable.fromFuture(stage.toCompletableFuture())
                    .flatMap(Flowable::fromIterable)
                    .forEach(kLine -> {
                        //do something
                    });

计划特性

  • 增加K线复权计算

  • 增加K线指标计算

  • 增加接口自动限流

  • 增加单次请求数量过大后自动拆分成多次请求

  • 提供Spring集成支持

  • 提供本地缓存