上海期货交易所CTP行情和交易接入

1.CTP是上期技术,提供的国内期货行情和交易的接口,自推出以来,各大券商均架设了CTP技术的接入,引入策略算法便可以初步形成一个自动交易的系统,这也就吸引了很多对自动交易,策略交易感兴趣的各路高人来使用。

2.CTP难点在于,一个库提供了行情和交易两套接口,各自均有一套业务流程,而且两者在业务上还存在部分业务关联,也就是说还要处理两套之间的业务同步问题,没有一些C++基础的人很难开发好用的CTP库。

3.本Demo目标是,在Windows环境下做两个程序:

一个封装CTP行情和交易接口成一个库,尽可能在高内聚低耦合的情况下,保持代码清晰,通俗尽可能让;

一个执行程序很容易的去调用这个库,这里没有使用MFC或QT,直接采用控制台程序,很清晰的展示使用库。

本Demo采用Visualstudio2015专业版update3

Windows764位

综合交易平台API下载,下载列表中的windows下64位库(最新(2015-05-15)),解压如下:

主页右上角,注册账号,例子中方便开箱即用,会使用我自己申请好的,请自行换成自己的帐号。

1.先看下Demo的运行效果。

2.程序目录结构

共两个项目,CTPSample和CTPServer,CTPSample为封装交易所CTP的动态库,CTPServer为使用库的UI程序。

bin64

-----CTPCTP产生的共享文件

-----Log日志文件

config.cfg配置文件

build

CTPServer.sln存放工程文件

Src

------CTPSampleDLL代码

------CTPServerUI代码

------Framwork框架代码,避免复杂,不做公开(这里主要提供日志,数据定义,可自己替换)

说明:confg.cfg主要保存了CTP的地址(其他均为非本Demo演示的主要功能):

[info]

CTPFront.trade1=tcp://180.168.146.187:10030

CTPFront.quote1=tcp://180.168.146.187:10031

CTPFront.trade2=tcp://180.168.146.187:10001

CTPFront.quote2=tcp://180.168.146.187:10011

CTPFront.trade3=tcp://218.202.237.33:10002

CTPFront.quote3=tcp://ctp1-md11.citicsf.com:41213

3.模块介绍

CTPSample模块

CTPBase.h动态库的导出定义

MyCTPQuote.h/MyCTPQuote.CPP交易的封装

MyCTPQuote.h/MyCTPQuote.cpp行情的封装

CTPServer模块

TradeManager.h/TradeManager.cppUI主逻辑

CTPServer.cppmain启动

1.CTPSample模块之MyCTPQuote.h

主要功能点:

MyRecv来封装CThostFtdcMdSpi,CThostFtdcMdApi直接使用。

本模块提供给上层的接口,定义了一个虚基类:

classCPacketReceiver{public:virtualvoidReceive(CBroadcastPacket&pkt)=0;};这里运用到actor模式,接受UI订阅:typedefvectorVPKTRECEIVER;VPKTRECEIVERm_vPketReceiver;③数据保存数据收集,定义几个map

mapm_mapInstrument;//合约ID,合约信息mapm_mapInstrumentQuote;//保存合约ID-最新行情对,合约ID唯一。vectorm_vecInstrumentId;//合约ID

2.CTPSample模块之MyCTPTrade.h

与CTP提供的行情库类似,这里定义了API和封装的回报API,如下:

CThostFtdcTraderApi*m_reqApi;MyRecv*m_RecvSpi;②与UI通信由于交易API用的比较频繁,而回报主要在初始化阶段和数据更新,没有定义回报接口,定义的是全局单例模式,直接共上层使用。

//保存合约mapm_mapInstrument;//合约ID,合约信息map>>m_mapInstrument2;//交易所,板块,合约信息

3.程序注意点

调用TradeManager::InitCTP启动CTP模块,主模块会订阅注册:

MyCTPQuote::Instance()->Subscribe(this);②交易模块与行情模块通信当交易模块登陆成功后(通能说原子操作,来判断多条件满足),来调用行情的完成函数,已便行情模块来进行行情合约订阅

intQry=atomic_exchange(&MyCTPTrade::Instance()->m_bQryIns,false);intQryOK=atomic_exchange(&MyCTPTrade::Instance()->m_bQryInsOK,true);if(!Qry&&QryOK)FinishQryInstrument();③行情回报收到行情回报,会调用下函数:

voidMyCTPQuote::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField*pDepthMarketData)并组织结构,向订阅派发:

收到数据可以按照自己的逻辑处理,本Demo进行了写共享队列。

QUOTATIONquo={0};voidTradeManager::Receive(CBroadcastPacket&pkt){unsignedintnLen=0;constchar*pcBuf=pkt.Encode(nLen);//分发给相应队列处理quo.Decode(pcBuf,nLen);intuiCount=0;stringsXQueName,sTmp;for(vector*>::iteratorit=m_vecQueueIo.begin();it!=m_vecQueueIo.end();++it){uiCount++;if(0!=*it){(*it)->Enque(quo);sXQueName="XQUE"+strutils::ToString(uiCount);sXQueName+=".XQUE_NAME";if(0==m_pConfig->GetProperty(sXQueName,sTmp))sXQueName=sTmp;CRLog(E_APPINFO,"共享队列XQueue[%s]写完成",sXQueName.c_str());}}//endfor}

THE END
1.申万期货交易软件下载手机版2024最新免费安装文件下载 手机期货软件排行20名外 申万期货交易软件介绍 申万期货交易软件,一般又称申万期货app。 申银万国期货,连续五年获A类AA评级的期货公司,申万宏源证券控股子公司。申万期货APP,权威、专业的期货APP,提供专业的期货行情、期货开户、期货交易、账户分析、消息推送、掌厅、客户服务、期货资讯、金融资讯、期货研究、https://www.liqucn.com/app-rn-124416-3
2.上海期货app免费下载上海期货安卓最新版v1.0下载上海期货app别名上海期货交易所app,上海期货手机上客户端可以协助客户即时查询全新期货交易数据信息,立即做出恰当项目投资实际操作。赶紧来多特软件站在线下载上海期货app吧! 软件简介 上海期货交易所坚持不懈以科学发展为头领,深入贯彻国务院关于推动金融市场中国改革开放和平稳进步的经营战略,遵循“打好基础、改革创新、推动https://www.duote.com/android/980852.html
3.上海期货交易所交易日历 当前日期为: {{ currentDate.substring(0,4) + '-' + currentDate.substring(4,6) + '-' + currentDate.substring(6,8) }} 查看更多 公告通知查看更多 关于同意中储发展股份有限公司新增热轧卷板期货存放点的公告 2024-12-13 鲁东升同志任上海期货交易所党委副书记、总经理 https://www.shfe.cn/
4.软件下载软件简介: 上海中期期货旗下一站式综合理财服务平台。 支持业务: 在线开户,行情资讯,业务办理,期货期权交易。 下载说明: 苹果、安卓(OPPO、华为、vivo 、小米)手机可直接通过扫描二维码到对应的应用市场下载上海中期期货app,荣耀手机请到荣耀应用市场直接搜索“上海中期期货”下载。 http://www.shcifco.com/Index/dowload
5.上海期货交易所手机版理想股票技术论坛上海期货交易软件安卓版使用指南[股票软件指标公式技术交流]一面湖水11 2024-6-3 相关标签:上海期货交易软件下载上海期货交易所手机版上海期货交易下载 阅读 79回复 2赞 0 其他相关搜索 上海期货交易所手机版下载 上海期货交易所手机app下载 上海期货交易所 官网手机版 下载上海期货交易所 上海期货交易所app上海期货https://www.55188.com/tag-thread-8407637-1.html
6.上海期货交易所大学职业搜题刷题APP 下载APP首页 课程 题库模板 题库创建教程 创建题库 登录 创建自己的小题库 搜索 【简答题】上海期货交易所题目标签:期货交易所上海交易所如何将EXCEL生成题库手机刷题 如何制作自己的在线小题库 > 手机使用 分享 反馈 收藏 举报 https://www.shuashuati.com/ti/e83d1f386d4e4df6b042dda20dcf9153.html
7.下载中心东航快期APP 东航快期APP手机客户端以极简界面风格为客户提供流畅的期货和期权交易体验,除实现银期转账/资金查询/行情分析/下单撤单外,还支持交易所标准组合套利交易,内嵌上海期货交易所/能源交易所五档深度行情。https://www.cesfutures.com/page/xzzx
8.上海期货交易所(铜铝锌镍铅锡黄金白银)开收盘行情期货资讯 12月9日上海期货交易所午间收盘行情(11:30) 国内期货2024-12-09 12月9日上海期货交易所开盘行情(9:00) 国内期货2024-12-09 12月6日上海期货交易所午间收盘行情(11:30) 国内期货2024-12-06 12月6日上海期货交易所开盘行情(9:00) 国内期货2024-12-06 https://futures.ccmn.cn/gnqh/
9.广期所股东是谁?广州期货交易所8大股东名单!导读:广期所股东是谁?广州期货交易所有哪些股东?本文为您简单介绍广州期货交易所八大股东,包括股东名字、出资额、持股比例等内容。 广期所股东有哪些? 广州期货交易所注册资金30亿人民币,股东共有八位。 1、上海期货交易所 上海期货交易所认缴出资4.5亿,持股15%。 https://www.shangjia.com/item/3947843