import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;
import net.common.util.BufferUtil;
import net.jctp.*;
public class TraderInfo implements JctpConstants {
private static Properties configProps = new Properties();
private static TraderApi traderApi;
private static Properties loadConfig() throws IOException{
Properties configProps = new Properties();
URL url = ClassLoader.getSystemResource("config.properties");
if ( url ==null )
url = ClassLoader.getSystemResource("/config.properties");
if ( url==null ){
File file = new File("config.properties");
if ( file.exists() )
url = file.toURI().toURL();
}
if ( url==null ){
File file = new File("examples/config.properties");
if ( file.exists() )
url = file.toURI().toURL();
}
if ( url==null ){
File file = new File("../examples/config.properties");
if ( file.exists() )
url = file.toURI().toURL();
}
if ( url==null ){
System.out.println("Unable to load config.properties from classpath or current directory.");
System.exit(1);
}
System.out.println("Load config from: "+url.getFile());
configProps.load(url.openStream());
return configProps;
}
public static void main(String[] args)
throws Throwable
{
System.out.println("Turbo Mode: "+BufferUtil.isTurboModeEnabled());
File tmpTrader = new File("tmp_traderapi");
tmpTrader.mkdir();
InputStream is = TraderInfo.class.getResourceAsStream("config.properties");
if ( is==null ){
System.out.println("Unable to load config.properties from classpath.");
System.exit(1);
}
configProps = loadConfig();
String traderFrontUrl = configProps.getProperty("ctp.traderFrontUrl");
String brokerId = configProps.getProperty("ctp.brokerId");
String userId = configProps.getProperty("ctp.userId");
String password = configProps.getProperty("ctp.password");
String instrumentId = configProps.getProperty("ctp.instrumentId");
System.out.println("Connecting "+traderFrontUrl+" ... ");
traderApi = new TraderApi("tmp_traderapi/");
traderApi.setListener(new TraderListener());
traderApi.setAutoSleepReqQry(true);
traderApi.SubscribePrivateTopic(JctpConstants.THOST_TERT_QUICK);
traderApi.SubscribePublicTopic(JctpConstants.THOST_TERT_QUICK);
System.out.println("连接 TraderApi");
traderApi.SyncConnect(traderFrontUrl);
Thread.sleep(200);
{
System.out.println("TraderApi 连接成功, 登录");
CThostFtdcReqUserLoginField f = new CThostFtdcReqUserLoginField();
f.BrokerID = brokerId;
f.UserID = userId;
f.Password = password;
CThostFtdcRspUserLoginField r = traderApi.SyncReqUserLogin(f);
System.out.println("Front ID: "+r.FrontID+" , Session ID: "+r.SessionID+" , MaxOrderRef : "+r.MaxOrderRef);
}
{
System.out.println("登录成功, 取结算单确认信息");
CThostFtdcQrySettlementInfoConfirmField qrySettlementInfoConfirmField = new CThostFtdcQrySettlementInfoConfirmField(brokerId,userId);
CThostFtdcSettlementInfoConfirmField settlementInfoConfirmField =
traderApi.SyncReqQrySettlementInfoConfirm(qrySettlementInfoConfirmField);
if ( settlementInfoConfirmField==null || !traderApi.GetTradingDay().equals(settlementInfoConfirmField.ConfirmDate) ){
System.out.println("查询上日结算单");
CThostFtdcQrySettlementInfoField qrySettlementInfoField = new CThostFtdcQrySettlementInfoField(brokerId,userId,null);
CThostFtdcSettlementInfoField settlementInfoField
= traderApi.SyncReqQrySettlementInfo(qrySettlementInfoField);
if ( settlementInfoField==null ){
System.out.println("上一交易日无结算");
}else{
System.out.println("交易日 "+settlementInfoField.TradingDay
+" 投资者 "+settlementInfoField.InvestorID
+" 结算号 "+settlementInfoField.SettlementID
+" 流水号 "+settlementInfoField.SequenceNo);
System.out.println(settlementInfoField.Content);
}
System.out.println("确认结算单");
settlementInfoConfirmField = new CThostFtdcSettlementInfoConfirmField(brokerId,userId,traderApi.GetTradingDay(),null);
settlementInfoConfirmField = traderApi.SyncReqSettlementInfoConfirm(settlementInfoConfirmField);
}
}
{
System.out.println("查交易所保证金率...");
CThostFtdcQryExchangeMarginRateField f
= new CThostFtdcQryExchangeMarginRateField(brokerId,instrumentId.substring(0, 2),JctpConstants.THOST_FTDC_HF_Speculation);
CThostFtdcExchangeMarginRateField rr[] = traderApi.SyncAllReqQryExchangeMarginRate(f);
for(int i=0;i<rr.length;i++){
CThostFtdcExchangeMarginRateField r = rr[i];
System.out.println(r.InstrumentID+" 多仓保证金率(金): "+r.LongMarginRatioByMoney+" 多仓保证金率(量): "+r.LongMarginRatioByVolume
+" 空仓保证金率(金): "+r.ShortMarginRatioByMoney+" 空仓保证金率(量): "+r.ShortMarginRatioByVolume);
}
Thread.sleep(10);
}
{
System.out.println("查交易所手续费率...");
CThostFtdcQryInstrumentCommissionRateField f = new CThostFtdcQryInstrumentCommissionRateField(brokerId,userId,instrumentId);
CThostFtdcInstrumentCommissionRateField r = traderApi.SyncReqQryInstrumentCommissionRate(f);
if ( r!=null )
System.out.println(r.InstrumentID+" 开仓费率(金): "+r.OpenRatioByMoney+" 开仓费率(量): "+r.OpenRatioByVolume
+" 平仓费率(金): "+r.CloseRatioByMoney+" 平仓费率(量): "+r.CloseRatioByVolume
+" 今平费率(金): "+r.CloseTodayRatioByMoney+" 今平费率(量): "+r.CloseTodayRatioByVolume);
else
System.out.println("交易所无此合约费率");
Thread.sleep(10);
}
{
System.out.println("查保证金...");
CThostFtdcQryTradingAccountField q = new CThostFtdcQryTradingAccountField(brokerId,userId,null);
CThostFtdcTradingAccountField f = traderApi.SyncReqQryTradingAccount(q);
System.out.println("总额: "+f.Balance+" 可用: "+f.Available+" 保证金: "+f.CurrMargin);
Thread.sleep(1);
}
{
System.out.println("查持仓明细...");
CThostFtdcQryInvestorPositionDetailField f = new CThostFtdcQryInvestorPositionDetailField();
f.BrokerID = brokerId;
f.InvestorID = userId;
CThostFtdcInvestorPositionDetailField[] r= traderApi.SyncAllReqQryInvestorPositionDetail(f);
for(int i=0;i<r.length;i++){
CThostFtdcInvestorPositionDetailField d= r[i];
System.out.println(d.TradeID+" "+d.ExchangeID+" "+(d.Direction==JctpConstants.THOST_FTDC_D_Buy?"多":"空")
+" 日 "+d.OpenDate+" 价 "+d.OpenPrice+" 量 "+d.Volume+" 盈 "+d.CloseProfitByDate+" 保 "+d.Margin
);
}
Thread.sleep(1);
}
{
System.out.println("查持仓信息...");
CThostFtdcQryInvestorPositionField f = new CThostFtdcQr
没有合适的资源?快使用搜索试试~ 我知道了~
JCTP for Windows 64位 6.3.6
共16个文件
jar:9个
java:2个
readme:1个
需积分: 10 116 下载量 200 浏览量
2015-06-11
09:37:36
上传
评论 5
收藏 6.12MB ZIP 举报
温馨提示
CTP是上期技术推出的综合交易平台,见百科,官方API为C++语言接口。 本软件为Java版CTP接口,支持平台: Windows 64bit, CTP V6.3.6 技术特点: 纯JNI实现,效率最高 多平台支持:Windows/Linux 支持CTP所有的函数和请求相应报文 多线程支持 同步API支持,见样例TraderInfo.
资源推荐
资源详情
资源评论
收起资源包目录
jctp_trial-win32_x64-6.3.6_20150515.zip (16个子文件)
examples
config.properties 317B
MarketDataSaver.java 11KB
TraderInfo.java 40KB
BUILDID-20150610 8B
tools
asm-all-5.0.3.jar 236KB
jtrader-tool.jar 3KB
README 1KB
native
v6.3.6_20150515_traderapi_win64.zip 1015KB
jars
jtrader-common-docs.jar 18KB
debug
jctp-win32_x64-6.3.6_20150515-debug.jar 1.65MB
jtrader-common-debug.jar 24KB
jctp-win32_x64-6.3.6_20150515.jar 1.52MB
jtrader-common.jar 19KB
jctp-examples.jar 19KB
jctp-win32_x64-6.3.6_20150515-docs.jar 1.9MB
CHANGELOG 2KB
共 16 条
- 1
资源评论
zhugf000
- 粉丝: 23
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功