上海期货交易所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.上海期货app免费下载上海期货安卓最新版v1.0下载上海期货app别名上海期货交易所app,上海期货手机上客户端可以协助客户即时查询全新期货交易数据信息,立即做出恰当项目投资实际操作。赶紧来多特软件站在线下载上海期货app吧! 软件简介 上海期货交易所坚持不懈以科学发展为头领,深入贯彻国务院关于推动金融市场中国改革开放和平稳进步的经营战略,遵循“打好基础、改革创新、推动https://www.duote.com/android/980852.html
2.上海期货交易所上海期货交易所新闻发布会(2024年12月) 2024-11-25 上海期货交易所新闻发布会(2024年11月1月) 2024-10-24 上海期货交易所新闻发布会(2024年10月1日) 2024-09-26 上海期货交易所新闻发布会(2024年9月1日) 2024-08-23 上海期货交易所新闻发布会(2024年8月1日) 2024-07-26https://www.shfe.cn/
3.软件下载软件简介: 上海中期期货旗下一站式综合理财服务平台。 支持业务: 在线开户,行情资讯,业务办理,期货期权交易。 下载说明: 苹果、安卓(OPPO、华为、vivo 、小米)手机可直接通过扫描二维码到对应的应用市场下载上海中期期货app,荣耀手机请到荣耀应用市场直接搜索“上海中期期货”下载。 http://www.shcifco.com/Index/dowload
4.上海期货交易所上海期货交易所的直播间 是由微吼直播为你准备的,全网最高清与流畅的直播,欢迎在线观看 上海期货交易所 最新动态与直播https://e.vhall.com/user/home/56402357
5.上海期货交易所实时行情上期所期货价格期货行情中心上海期货交易所是在中国证监会集中统一监督管理下,依法依规组织期货交易并实行自律管理的法人,根本宗旨是促进社会主义市场经济的发展。上海期货交易所目前挂牌交易黄金、白银、铜、铝、锌、铅、螺纹钢、线材、燃料油、天然橡胶、石油沥青、热轧卷板、镍、锡等14种期货合约。 https://www.cngold.org/qihuo/shanghai_all.html
6.十大交易所app下载国内十大期货交易所app排名上海期货交易所APP是上海期货交易所官方推出的移动终端。该APP提供了全面的期货市场服务,包括行情查询、下单交易、资讯资讯等功能,用户可以便捷地参与期货交易。 4. 中国金融期货交易所APP 中国金融期货交易所APP是中国金融期货交易所推出的手机客户端,主要提供金融期货的交易服务。该APP界面清晰、操作简单,适合金融投资者https://www.528btc.com/tk/1691558861117417.html
7.银行保险信托期货黄金股吧博客等各类财经资讯及数据期货 | 关注减产因素!尿素中期或有机会 行情异动!双十一集运指数(欧线)期货“打折” 终端需求表现强劲 碳酸锂“结构性旺季”大涨 随时随地掌握期货市场资讯 就用东方财富期货APP 期指 | 外资加码 境外上市中国ETF吸金逾千亿 期权 | “特朗普交易”继续!加密货币概念股爆发 期权行情 上交所期权 深交所期权 中金所期https://www.eastmoney.com/
8.广东诉讼服务平台?东莞诉讼服务平台7、上海证券交易所 网址: http://www. sse.com.cn 8、深圳证券交易所 网址: http://www. szse.cn 9、上海期货交易所 网址: http://www. shfe.com.cn 10、中国货币网 网址: http://www. chinamoney.com.cn 11、中国债券信息网 网址: http://www. https://www.51zlaw.com/flzs/96648.html
9.上海国际能源交易中心:做市商管理细则及做市商名单的公告2018-08-16周四,上海国际能源交易中心官网发布如下公告: 关于就《上海国际能源交易中心做市商管理细则(征求意见稿)》公开征求意见的通知。 上能办发〔2018〕30号 根据《期货交易管理条例》、《期货交易所管理办法》等有关法规规章和《上海国际能源交易中心交易规则》,上海国际能源交易中心起草了《上海国际能源交易中心https://news.fx678.com/201811071308111221.shtml
10.全套上海交易所期货交易接口CTP平台,开发工具包以及开发资料全套上海交易所期货交易接口CTP平台,开发工具包以及开发资料。经典程序化交易教材 人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。 经管之家是国内活跃的在线教育咨询平台! https://bbs.pinggu.org/jg/kaoyankaobo_kaoyan_3133435_1.html
11.上海国际能源交易中心2024-11-15 期货日报:期货市场服务石化行业平稳发展 2024-08-16 中国石油报:联通千行百业 服务实体经济——上海原油期货市场高质量运行侧记 2024-07-11 期货日报:红海危机下航运期货助企业避险 2024-05-10 查看更多仓单货位查询 上海期货交易所上海国际能源交易中心2025年招聘公告 https://www.ine.cn/
12.大连商品交易所上海期货交易所郑州商品交易所会员资格。华源期货有限公司|经中国证监会批准,国家工商行政管理总局核准注册登记的全国开展期货业务的知名期货公司之一。公司拥有中国金融期货交易所交易会员资格,大连商品交易所、上海期货交易所、郑州商品交易所会员资格。华源期货总部设在北京,在上海地区、大连地区、江苏地区https://www.jzfutures.com/