首页 > 编程语言 >CTP程序化交易入门系列之一:准备-转

CTP程序化交易入门系列之一:准备-转

时间:2023-02-27 17:44:34浏览次数:54  
标签:CTP 入门 系统 API 期货 simnow 程序化

https://blog.csdn.net/pjjing/article/details/90381795

前言:

笔者自毕业后一直从事低延时交易系统开发行业,这些年经历过神奇bug,给客户培训,回答客户千奇百怪的问题。在这个过程中,自身能力得到了很大的提升,但有时在面对一些小白问题时,总是感叹为何没有一系统的文章教一些最简单的入门,降低程序化交易的门槛,于是便心生了写一系列文章的初衷。
目前国内期货程序化交易条件成熟,入门门槛很低。证券程序化虽然有逐步放开的趋势,但现在看来还具有一定门槛。所以这一系列文章将以期货程序化交易为例,期望读者有基本的期货知识,Python语言基础。

看来遇到专业人士了,我需要好好研究研究

一、柜台系统简介

依据国内监管要求,客户无法直连交易所系统,中间必须经过期货公司(Broker)的系统,这便是柜台系统。
 期货公司会有多套柜台系统,在功能上可以分为主席和次席系统。主席系统功能全面,支持出入金,盘后结算等,讲究的是高吞吐量与高可靠性,一般客户都是在主席系统上交易。例如CTP (Comprehensive Transaction Platform, 综合交易平台)即是上期所子公司上期技术开发的一套主席系统。
 次席系统一般只做下单及撤单用,讲究的是低延迟穿透时间,一般为对时延要求较高的大客户准备。例如闪策,CTPmini2等柜台。
 柜台系统一般都会提供API(Application Programming Interface,应用程序编程接口)给程序化客户接入柜台使用。CTP API便是CTP系统提供的编程接口,可以在上期技术官网直接下载得到。
 官网上只提供C++版本的API,而C++学习曲线陡峭,对很多初学者来说很不友好,不适合用来入门。本人编译了原生CTP Python API,这一系列文章将以此Python版API来讲解调试,所有代码完全开源。
 Python版接口函数使用方法及数据结构与C++版完全一致,用法也是一样的,所以使用C++的读者也可以按方法直接使用C++版API。
 公众号后台回复"PyCTP"可以直接获得Python版本API、demo及使用说明下载链接。

二、程序化登录信息

客户如果需要调用API接入柜台进行程序化交易,登录时需要一些基本信息,如下:
1.BrokerID
简称期商编码,是指该期货公司在CTP系统上的编码,为四位数。例如海通期货是8000。
2.TradeFront, MarketFront
TradeFront是指CTP系统的交易前置IP地址,客户用来连接下单撤单等;MarketFront是指行情前置IP地址,用来订阅收取行情。
3.InvestorID(UserID,InvestUnitID)
投资者代码,是指该客户在CTP系统上的唯一ID,在期货公司开户后由期货公司分配得到。UserID是操作员代码,InvestUnitID是投资单元代码,普通投资者遇到要填这两个值的,直接填InvestorID即可。
4.Password
开户时设置的密码。需要注意的是开户完首次登录CTP系统需要修改密码,在期货公司官网上下载快期客户端登录,点修改密码就可以。
5.AppID
客户终端软件代码。
6.AuthCode
客户终端软件认证码。
 以上1和2对于一家期货公司同一套系统的所有客户都是一样的。开户时在哪家期货公司就用哪家期货公司的信息,如果开户时没有得到,可以查看期货公司页面或咨询客服得到。也可以后台回复"地址"得到市场上主要期货公司的期商编码及前置地址。
 5和6信息是为了配合穿透式监管,如何获得请参考公众号文章《什么是穿透式监管,需要投资者做什么?》3.2.1章节。

三、模拟仿真

仿真系统有两种,一种是期货公司提供的,这类后台基本是连接对应的交易所的测试环境,可以询问期货公司是否提供;
 另一种是上期技术提供的产品simnow。这一系列文章中我们主要用simnow测试。参考图1,Simnow仿真环境主要分为两部分:
第一部分是CTP柜台系统,与生产环境相同。客户可以直接使用官网下载得到的CTP API在simnow测试,然后无缝对接到期货公司生产环境;
第二部分是模拟交易所系统,目前这是上期技术基于上期所系统自己开发的模拟交易所,并非真正的对应的五个交易所的测试环境。
 在simnow上仿真交易也需要上述第二节中提到的登录信息。
 1和2可以从simnow主页产品与服务页面获取。这里有两套环境,注意看下面的服务时间,第一套与实际生产同步,只在交易日交易时间段提供服务。
 3和4可以从simnow主页右上角注册账号,注册成功后即可收到短信获取。
 5和6在simnow是默认统一的,即APPID为simnow_client_test,认证码为0000000000000000(16个0)。

提示:
1.填写账号信息时,柜台选择选“标准CTP”。
2.收到的短信中的账号密码即登录系统的InvestorID和Password,首次登录时需要修改密码,可以在simnow主页上点击修改密码。
3.注册成功后将会得到100万模拟资金,如果资金亏完后可以去官网上入金。
simnow常见问题:
1.连接不上,没有反应
注意simnow提供了两套环境,服务时间在产品页面都已经写得很清楚。第一套与正式生产环境保持一致,一般来说是早8点开,下午4点停,晚上20:00开,凌晨2:30停。另外因为用户太多,有时前置会因为负载过大而宕机,可以换其他组IP测试,如果还是不行,那就只能联系上期技术客服了。
2.simnow的行情哪里来
第一套正式环境行情是直接转发的生产行情,也就是说客户报单成交对simnow的行情没有影响。第二套7*24环境是不间断重播上一交易日的行情。
3.支不支持市价单,套利单,部分成交等
因为simnow后台连接的是模拟交易所,功能待开发中。目前还不支持这些。
4.其他
可以先参考页面http://www.simnow.com.cn/static/SimNowFAQ.action查看常见问题,如果找不到请咨询客服。
好了,有了API,及测试的地址账号密码等信息,就可以开启程序化交易之路了!

标签:CTP,入门,系统,API,期货,simnow,程序化
From: https://www.cnblogs.com/andy0816/p/17160638.html

相关文章

  • JSP环境搭建及入门 和 虚拟路径和虚拟主机
    Jsp:是一个动态网页,而不是静态网页html,css,js,Jquery:是静态网页动态网页是随着,时间,地点,用户操作,而改变静态不需要jsp动态是需要的 BS可以通过浏览器直接访问......
  • Vue急速入门-6
    纯净的Vue项目#安装依赖cnpminstall#做成纯净的vue项目-第一步:在router的index.js中删除about的路由-第二步:删除所有小组件和about页面组件-第三步:App.vue只留......
  • 外汇天眼:如何辨别优秀程序化交易模型?
    程序化的理解程序化一般分为两类模型,一类是趋势模型,一类是震荡模型,如果你想两者结合起来就要看自己的本事了,我的建议是程序化需要不停的去完善,但千万不能追求完美,以下所说模......
  • JS入门随笔
    1.DOM简单实例1.通过onclick="changeImage()"调用changeImage()方法2.通过element=document.getElementById('myimage')获取id="myimage"控件的值3.element.src.match("......
  • Makefile入门(超详细一文读懂)
    原文:https://blog.csdn.net/ZBraveHeart/article/details/123187908 1、Makefile编译过程在这里插入图片描述  Makefile文件中的命令有一定规范,一旦该文件编写好以......
  • .Net6 微服务之Ocelot+IdentityServer4入门看这篇就够了
    前言.Net6使用Consul实现服务注册与发现看这篇就够了.Net6使用Ocelot+Consul看这篇就够了.Net6微服务之Polly入门看这篇就够了书接上文,本文将继续建立在.N......
  • 虚幻引擎5 学习 入门 1Day
    虚幻引擎是国内外知名度很高的游戏开发引擎它有自己独有的蓝图功能可以通过蓝图来实现很多功能可以完全通过蓝图来实现开发出一个游戏今日学习内容:虚幻引擎的命名规范......
  • Turtlebot4入门教程-电子-功率预算
    说明:介绍Turtlebot4的功率相关设备:Turtlebot4机器人套件:​​采购地址​​功率Create3输出电源适配器提供的总功率为28.8W。这提供了与RaspberryPi配对的USB-C连接......
  • Turtlebot4入门教程-演示-控制turtlebot4
    说明:介绍如何控制turtlebot4有几种方法可以让您的TurtleBot4移动。相关设备:Turtlebot4机器人套件:​​采购地址​​驱动turtlebot4必须先设置机器人并连接到Wi-Fi,然后才......
  • ros2与Python入门教程-新建ros2工作空间
    ROS2与Python入门教程-新建ros2工作空间说明:介绍如何创建ros2工作空间概念:工作空间是包含ROS2软件包的目录。在使用ROS2之前,有必要在计划使用的终端中提供ROS2安装工作区。......