package com.bjcifco.jctp.demo.CTPImp;
import org.hraink.futures.ctp.thostftdcuserapidatatype.ThostFtdcUserApiDataTypeLibrary;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcInputOrderField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcInvestorPositionDetailField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcOrderField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcQryInvestorPositionDetailField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcReqUserLoginField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcRspInfoField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcRspUserLoginField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcSettlementInfoConfirmField;
import org.hraink.futures.ctp.thostftdcuserapistruct.CThostFtdcTradeField;
import org.hraink.futures.jctp.trader.JCTPTraderApi;
import org.hraink.futures.jctp.trader.JCTPTraderSpi;
import com.bjcifco.jctp.demo.bean.UserInfo;
/**
* Custom TraderSpi
*
* @author Hraink E-mail:Hraink@Gmail.com
* @version 2013-1-25 下午11:46:13
*/
public class MyTraderSpi extends JCTPTraderSpi {
JCTPTraderApi traderApi;
int nRequestID = 0;
public MyTraderSpi(JCTPTraderApi traderApi) {
this.traderApi = traderApi;
}
public void onFrontConnected() {
System.out.println("前置机连接");
CThostFtdcReqUserLoginField userLoginField = new CThostFtdcReqUserLoginField();
userLoginField.setBrokerID(UserInfo.BROKERID);
userLoginField.setUserID(UserInfo.USERID);
userLoginField.setPassword(UserInfo.PASSWORD);
traderApi.reqUserLogin(userLoginField, 112);
}
@Override
public void onRspUserLogin(CThostFtdcRspUserLoginField pRspUserLogin,
CThostFtdcRspInfoField pRspInfo, int nRequestID, boolean bIsLast) {
if(pRspInfo.getErrorID()==0){
System.out.println("登陆成功");
//发送结算结果确认报文
CThostFtdcSettlementInfoConfirmField infoConfirmField=new CThostFtdcSettlementInfoConfirmField();
infoConfirmField.setBrokerID(UserInfo.BROKERID);
infoConfirmField.setInvestorID(UserInfo.USERID);
traderApi.reqSettlementInfoConfirm(infoConfirmField, 120);
}else{
System.out.println("登录失败");
}
}
@Override
public void onRtnOrder(CThostFtdcOrderField pOrder) {
//System.out.println(pOrder.getInvestorID()+"报单已录入");
}
/**
* 注意了:下单回调函数中,下单成功后是无回调的,失败了才有回调
* System.out.println("下单成功")根本不可能执行
*/
@Override
public void onRspOrderInsert(CThostFtdcInputOrderField pInputOrder,
CThostFtdcRspInfoField pRspInfo, int nRequestID, boolean bIsLast) {
System.out.println("下单回调:"+pRspInfo.getErrorID());
if(pRspInfo.getErrorID()==0){
System.out.println("下单成功");
}else{
System.out.println("下单失败:"+pRspInfo.getErrorMsg());
}
}
@Override
public void onRspQryInvestorPositionDetail(CThostFtdcInvestorPositionDetailField pInvestorPositionDetail,CThostFtdcRspInfoField pRspInfo,int nRequestID,boolean bIsLast){
System.out.println("有持仓明细反映");
//得到开仓价
System.out.println(pInvestorPositionDetail.getOpenPrice());
}
@Override
public void onRspSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField pSettlementInfoConfirm, CThostFtdcRspInfoField pRspInfo, int nRequestID, boolean bIsLast) {
System.out.println("结算确认完成");
CThostFtdcInputOrderField inputOrderField=new CThostFtdcInputOrderField();
//期货公司代码
inputOrderField.setBrokerID(UserInfo.BROKERID);
//投资者代码
inputOrderField.setInvestorID(UserInfo.USERID);
// 合约代码
inputOrderField.setInstrumentID("IF1303");
///报单引用
inputOrderField.setOrderRef("000000000001");
// 报单价格条件
inputOrderField.setOrderPriceType(ThostFtdcUserApiDataTypeLibrary.THOST_FTDC_OPT_LimitPrice);
// 买卖方向
inputOrderField.setDirection(ThostFtdcUserApiDataTypeLibrary.THOST_FTDC_D_Buy);
// 组合开平标志
inputOrderField.setCombOffsetFlag("0");
// 组合投机套保标志
inputOrderField.setCombHedgeFlag("1");
// 价格
inputOrderField.setLimitPrice(2610);
// 数量
inputOrderField.setVolumeTotalOriginal(1);
// 有效期类型
inputOrderField.setTimeCondition(ThostFtdcUserApiDataTypeLibrary.THOST_FTDC_TC_GFD);
// GTD日期
inputOrderField.setGTDDate("");
// 成交量类型
inputOrderField.setVolumeCondition(ThostFtdcUserApiDataTypeLibrary.THOST_FTDC_VC_AV);
// 最小成交量
inputOrderField.setMinVolume(0);
// 触发条件
inputOrderField.setContingentCondition(ThostFtdcUserApiDataTypeLibrary.THOST_FTDC_CC_Immediately);
// 止损价
inputOrderField.setStopPrice(0);
// 强平原因
inputOrderField.setForceCloseReason(ThostFtdcUserApiDataTypeLibrary.THOST_FTDC_FCC_NotForceClose);
// 自动挂起标志
inputOrderField.setIsAutoSuspend(0);
traderApi.reqOrderInsert(inputOrderField, 115);
System.out.println("下单请求已执行");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
CTP-java接口调用
共30个文件
con:15个
java:4个
class:4个
5星 · 超过95%的资源 需积分: 50 70 下载量 127 浏览量
2018-03-08
14:44:48
上传
评论
收藏 2.06MB RAR 举报
温馨提示
上期做的CTP源码,期货交易用。直接可以在eclipse中运行。
资源推荐
资源详情
资源评论
收起资源包目录
ctp-2.rar (30个子文件)
BJZQCTP_DEMO
.project 388B
hs_err_pid6020.log 14KB
DialogRsp.con 6B
tempPublic.con 6B
nulltempPublic.con 6B
QueryRsp.con 6B
tempPrivate.con 6B
nulltempQueryRsp.con 6B
src
com
bjcifco
jctp
demo
Main.java 2KB
CTPImp
MyMdSpi.java 3KB
MyTraderSpi.java 5KB
bean
UserInfo.java 559B
TradingDay.con 6B
nulltempPrivate.con 6B
tempTradingDay.con 6B
tempDialogRsp.con 6B
tempQueryRsp.con 6B
Public.con 6B
nulltempDialogRsp.con 6B
.settings
org.eclipse.jdt.core.prefs 598B
hs_err_pid7408.log 14KB
libs
JCTP.jar 2.13MB
nulltempTradingDay.con 6B
.classpath 403B
bin
com
bjcifco
jctp
demo
Main.class 2KB
CTPImp
MyMdSpi.class 4KB
MyTraderSpi.class 5KB
bean
UserInfo.class 587B
temp
Private.con 6B
上期JCTP demo.doc 77KB
共 30 条
- 1
资源评论
- xo5982018-04-01为啥 运行时显示乱码?
- verynb2019-08-30下来看看如何
- 「已注销」2018-04-11我想知道,那个dll文件放哪???
- jinhongda2018-11-02积分要的有点太多了!
kzs110
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功