极速交易行情文档极速交易行情文档
首页
开始
  • Lite版本SDK(c++)
  • pro版本SDK(c++)
  • java语言版本SDK
  • 市场行情数据
  • 量化分析数据
  • 估值定价数据
常见问题
技术支持
首页
开始
  • Lite版本SDK(c++)
  • pro版本SDK(c++)
  • java语言版本SDK
  • 市场行情数据
  • 量化分析数据
  • 估值定价数据
常见问题
技术支持
  • 沪深level2行情java接收 | 深圳安湖科技

简介

本文档为AnnHoo-ExMD极速行情系统配套的java版本SDK,一般用于对接客户的大数据系统、内部转发系统以及部分java语言栈的策略。

Tips

由于java生态比较丰富,客户需求也是多样化,很多新特性无法快速同步到文档,因此实际交付版本的features不会仅限于本文档。

实际开发过程中,有任何问题可联系我司客服人员,安排专业人员替您解答。

demo说明

  1. 引入我们的jar包

  2. 实现对应的接口

  • 二次集成 需要实现com.annhoo.md.interfaces.QuotesHandler接口 监听服务会向此实现类主动推入行情报文
  • 定义如下
/**
 * 以下方法  会有单独线程写入  互不影响
 *
 */
public interface QuotesHandler {

    void pushIndex(Index index);
    void pushEntrust(Entrust entrust);
    void pushTrade(Trade trade);
    void pushSnapshot(Snapshot snapshot);
}


3 . 范例

将行情消息保存到对应的文件

/**
    简单实现消息处理
**/
class SimpleQuotes implements QuotesHandler{

     PrintStream indexFile;
     PrintStream entrustFile;
     PrintStream tradeFile;
     PrintStream snapshotFile;

     public SimpleQuotes(){
         try {
             indexFile=new PrintStream("./index.json");
             entrustFile=new PrintStream("./entrust.json");
             tradeFile=new PrintStream("./trade.json");
             snapshotFile=new PrintStream("./snapshot.json");
         } catch (FileNotFoundException e) {
             throw new RuntimeException(e);
         }
     }

    @Override
    public void pushIndex(Index index) {
       String str=JSONObject.toJSONString(index);
       log.info("{}",str);
         synchronized (indexFile){
             indexFile.println(String.format("%s,", str));
         }
    }

    @Override
    public void pushEntrust(Entrust entrust) {
        String str=JSONObject.toJSONString(entrust);
        log.info("{}",str);
        synchronized (entrustFile){
            entrustFile.println(String.format("%s,", str));
        }
    }

    @Override
    public void pushTrade(Trade trade) {
        String str=JSONObject.toJSONString(trade);
        log.info("{}",str);
        synchronized (tradeFile){
            tradeFile.println(String.format("%s,", str));
        }
    }

    @Override
    public void pushSnapshot(Snapshot snapshot) {
        String str=JSONObject.toJSONString(snapshot);
        log.info("{}",str);
     
synchronized (snapshotFile){
            snapshotFile.println(String.format("%s,", str));
        }
    }
}


class Test{
    public static void main(String args[]){
        try{
            String multicastIp="232.4.102.97";
            //配置4个端口 会启动4个组播监听服务
            /**
             com.annhoo.md.udpserver.UdpServer        : /192.168.31.200:22348 join
            2022-09-14 11:18:09.538  INFO 20528 --- [pool-1-thread-1] com.annhoo.md.udpserver.UdpServer        : /192.168.31.200:22345 join
            2022-09-14 11:18:09.538  INFO 20528 --- [pool-1-thread-3] com.annhoo.md.udpserver.UdpServer        : /192.168.31.200:22347 join
            2022-09-14 11:18:09.538  INFO 20528 --- [pool-1-thread-2] com.annhoo.md.udpserver.UdpServer        : /192.168.31.200:22346 join
            */
            List<Integer> ports=Arrys.asList(new Integer[]{22345,22346,22347,22348});
            String host="92.168.1.127";
            //装配组播监听server //udp buffer 每个 30MB
            UdpServer udpServer=new UdpServer(config.getIp(), config.getPort(),30,config.getHost(),new SimpleQuotes());
            udpServer.runServer();
            System.out.println("服务启动成功");
        }catch(Exception e){
         e.printStackTrace();
        System.out.println("服务启动失败");
        }
    }
}

使用sdk 默认样例测试

1 .项目引入sdk

pom文件引入或者直接在项目中引入我们发布的jar包。

2 .添加项目配置

  1. 配置文件 application.properties
    #组播地址
    multicast.ip=232.4.102.97
    #组播端口
    multicast.port=22345,22346,22347,22348
    #预留配置
    multicast.model=0
    #加入组播的网卡地址
    multicast.host=192.168.31.200

测试配置文件是否正常,可通过执行我们的jar包来验证,方法如下: shell java -jar md-0.0.1-SNAPSHOT.jar 看到以下日志 则启动成功

 2022-09-14 11:18:08.930  INFO 20528 --- [           main] com.annhoo.md.MdApplication              : Starting MdApplication using Java 1.8.0_321 on Sweet with PID 20528 (F:\project\md\target\classes started by Sweet in F:\project\md)
 2022-09-14 11:18:08.930  INFO 20528 --- [           main] com.annhoo.md.MdApplication