融资融券或QFII系统建设思路DOC 40页.docx
- 文档编号:15495868
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:42
- 大小:111.48KB
融资融券或QFII系统建设思路DOC 40页.docx
《融资融券或QFII系统建设思路DOC 40页.docx》由会员分享,可在线阅读,更多相关《融资融券或QFII系统建设思路DOC 40页.docx(42页珍藏版)》请在冰点文库上搜索。
融资融券或QFII系统建设思路DOC40页
融资融券或QFII系统建设思路(DOC40页)
廉价融资融券或QFII系统建设思路
1.题记
把看似复杂的事情想透彻了,就会变得很简单。
我没事喜欢将一件事情研究透彻,证券市场平台是我突发灵感,感觉一向神秘的证券平台或许门槛没有这么高,如是开始着手研究,我研究证券平台有三个目的:
1.证券平台一向神秘,没有工作经验的人很难窥其真容,这对我是一个诱惑,我想从网上搜集资料,整理一下。
2.一直认为技术大数据的分析可以降低投资风险,如果拥有这个大数据,加上先进的分析模型,肯定可以大幅降低理财风险,形成群狼效应。
3.互联网资源丰富,依靠廉价的互联网自建为大家服务是我的爱好。
历时接近三个月的测试,已经形成一部分成果:
一种小型、实用的A股融资融券平台搭建思路。
可以很少量的投资就可以窥探证券动向,并可以对外提供一些增值服务。
2.总体构想
总部
代理分部
客户
客户
代理分部
客户
客户
客户
系统是一个小规模的生态,有三种用户:
总部、代理分部和客户。
总部负责运维整个系统,包括股票设置、用户账号管理、虚拟资金统计分析、真实资金管理等;代理商可以依靠这个平台搭建小型的运营生态,包括开设自己下面的客户账号、归属自己的资金分析、和总部进行真实资金结算等;客户就是股民了,可以在平台开仓、平仓、资金转账等等。
平台建成之后,“总部”可以按照自己的“运作”特点,精选一些股票,在平台设置一下,客户就可以放心的按照我们的“指导”够买了。
总部贡献技巧,代理商做大市场,客户分享收益,一个良好的生态。
3.搭建思路
3.1总思路
总后台
服务端
PC
客户端
安卓
客户端
IOS
客户端
股价监听器
PC代理端
商城
有人可能会说,你个大骗子,不是说好的廉价平台吗?
则么搞这么多东东?
道理很简单:
您误会我了。
据我了解,一套成熟的融资融券系统,造价在1000多万甚至几千万,而且是在中国的价格,现在美国的很多系统都交给中国开发,因为中国开发便宜。
这样的整个系统互相依托运作,笔者估计大概仅需要30-60万,是不是很“廉价”呢?
那么我们看看每一个系统都是干什么的吧?
3.2平台定位
⏹服务端
整个系统的中心,位于我们的中心机房为各个系统提供网络服务,让我们的总后台、代理端和客户端都能在它的服务下互相协作。
⏹总后台
顾名思义是整个系统的最高权力机构,负责管理整个系统的运作,这个程序运行在运行这个平台的个人电脑上面,依靠服务端进行设置,整个系统在这个总后台的指导下运作。
⏹PC代理端
代理端负责发展客户,给自己的客户开户,开户以后客户端就可以立即使用客户端了,但这个时候是不能立即开仓的,需要客户自己登录到PC客户端进行充值,有了资金以后客户可以开仓了。
客户操作所收取的费用,代理端可以查看自己的利润。
⏹PC客户端
PC客户端提供给客户使用,客户进行股票查询、开仓、留仓股票查询、平仓、资金转账等操作。
⏹Android客户端
功能参照PC客户端,去掉了资金转账功能,因为移动支付开发相对麻烦,我没有做相关研究。
⏹IOS客户端
功能参照PC客户端,去掉了资金转账功能,因为移动支付开发相对麻烦,我没有做相关研究。
⏹监听器
这也是系统的重点之一。
首先因为我们整个系统需要实时股价作为支撑,这个监听器就负责从网上拉取最新股价信息放到我们系统,供开仓、平仓和风险控制等操作;其次我们系统作为指导性强的系统,应该指导用户操作,包括是否当日留仓、股价波动到一定幅度自动平仓等等,因为这些操作需要我们的客户端不打开也能够做到的。
⏹商城
之所以要建立一个商城是因为我们的平台资金账号,因为这样的系统,即使是玩票,估计也很难申请到,但是商城就比较容易申请了,建议公司开通一个商城,利用商城的资金账号进行模拟交易。
4.具体功能
终于到了重点,这样一个系统是怎么实现的呢?
我们先分析系统的特点和特色,然后根据这个脉络继续向下分析。
4.1系统特点
⏹一种独立的系统
它不依靠大型券商系统,形成自己的交易生态,所有交易规则自己来定
⏹独立的用户体系
账号管理是独立的,系统和第三方支付平台对接实现资金转账
⏹高价值用户服务
包括优选股票、开仓和平仓风险控制、股价波动风险控制、T+0等服务项目。
⏹双向
支持开多仓和开空仓。
⏹透明灵活的计费
计费是运营的基础,系统应该计费透明而且合理才更有竞争力。
⏹杠杆
可以放大可用资金,用户以小博大。
⏹快速
这是所有系统的共性了,股价瞬息万变,股民肯定要求根据最新的股价操作,我们不是大券商,股价数据比大券商言辞1-2秒还是很靠谱的吧。
⏹广泛
支持沪深股票、股指期货、贵金属交易。
⏹安全可靠
整个系统并不是基于网页实现,而是基于客户端服务器技术,客户、代理商、总后台的功能均通过安装包安装应用程序实现,和服务器通信快速,安全可靠,整个实现和大券商客户端相同。
4.2系统功能
4.2.1总后台功能
融资融券总后台
客户管理
代理商管理
留仓股票查询
交割单查询
股票设置
财务管理
总账查询
资金变动查询
管理员设置
4.2.1.1客户管理
客户管理负责对所有客户账号进行管理,主要功能有客户列表、客户统计、资金调整、账号冻结和解冻、客户信息修改等。
⏹客户列表
显示所有客户的信息,可以根据客户姓名、账号、所属代理商、注册时间来查询某些客户信息。
⏹客户统计
可以按照区域、代理商、注册时段、开户行来统计客户分布情况。
⏹资金调整
修改某一个客户的账户资金,该功能是为了系统机动处理某些特殊账户资金的预留功能。
⏹账号冻结、解冻
冻结一个客户,冻结后该客户将不能使用客户端功能,包括交易。
解冻是指恢复一个客户账号的正常状态。
⏹客户信息修改
修改客户的信息,包括银行账号、初始化密码等。
4.2.1.2代理商管理
该模块负责代理商所有管理功能,开设代理商账号、冻结代理商账号、代理商资金结算等。
⏹开设代理商账号
开设一个代理商账号,将可以使用该账号登录PC代理端。
⏹冻结代理商账号
冻结代理商账号的功能是指关闭该代理商的管理功能,冻结以后该代理商无法开设账号,其下面的客户仍然可以使用客户端交易。
⏹代理商资金结算
平台结算给代理商利润是分期结算的,平台提供简单的结算功能即可:
平台实时计算应计算的金额,并可以根据时间查询应结算总额,总后台不提供网银转账结算功能,通过网银直接转账或线下方式结算,完成以后到平台标记结算金额,下次结算的时候系统统计待结算金额(扣除以前结算的金额),直接结算即可。
4.2.1.3留仓股票查询
查询所有客户当前持仓的股票信息,包括客户信息、股票信息、购买时间、当前盈亏、各种费用收取和待收取情况等,可以强平客户的持仓股票,强平客户持仓股票是指在任意时间点,后台可以指定一个价格强行将该股票售出。
4.2.1.4交割清单查询
查询客户已经平仓的股票信息,包括客户信息、股票信息、购买时的股票价格,售出时的股票价格,盈利情况,平台费用收取情况等信息。
4.2.1.5股票设置
设置系统支持操作的股票,在此登记的股票,在客户端才可以进行交易。
功能包括添加股票信息、删除股票信息、快速导入多支股票信息、导出股票信息、设置是否允许开多仓或开空仓、是否禁止交易、是否启用风险控制。
股票设置的信息会立即体现在每一个客户的客户端,当禁止交易或者修改了股票信息,客户端要立即禁止相关操作或显示最新内容。
股票设置的基本信息仅仅包括股票代码和股票名称即可,信息一定要和A股一定要一致,否则后面提到的获取股价功能将无法实现。
4.2.1.6财务管理
该功能实际值出入金的管理,用于财务查看客户入金的明细情况、按月统计入金报表,财务出金转账登记,出金汇总等。
⏹入金管理
客户转账到平台称为入金,系统可以开通资金账号,PC客户端直接调用网银功能实现立即转账,平台可以收到转账成功后的各种信息。
入金管理是指统计客户转账到平台的时间、资金情况等信息。
⏹出金管理
平台转账给客户称为出金。
出金不通过平台,客户从PC客户端发起出金请求,平台审核通过以后,在当日将资金通过其他平台转账,系统只需登记即可,登记完成后,用户的可用资金将减少。
4.2.1.7总账查询
查询平台目前的资金情况、客户的收益情况、平台的收益情况、客户预期收益情况、平台预期收益情况、代理商收益和预期收益情况等信息。
4.2.1.8资金变动查询
用于查看客户的资金变动历史,包括客户的各种操作引发的资金变动:
入金、出金、开仓、平仓、后台强制平仓、系统自动平仓、后台修改资金等。
4.2.1.9管理员设置
包括开通管理员账号、修改管理员账号等功能。
4.2.2PC代理商功能
PC代理端
用户管理
交割清单
出入金记录
总账查询
PC代理端提供给代理商使用,包括代理商管理自己的客户、交割清单、出入金记录、总账查询。
4.2.2.1用户管理
用户管理包括客户管理负责对所有客户账号进行管理,主要功能有客户列表、客户统计、资金调整、账号冻结和解冻、客户信息修改等。
⏹客户列表
显示所有客户的信息,可以根据客户姓名、账号、所属代理商、注册时间来查询某些客户信息。
⏹账号冻结、解冻
冻结一个客户,冻结后该客户将不能使用客户端功能,包括交易。
解冻是指恢复一个客户账号的正常状态。
⏹客户信息修改
修改客户的信息,包括银行账号、初始化密码等。
4.2.1.2交割清单
查询所有客户当前持仓的股票信息,包括客户信息、股票信息、购买时间、当前盈亏、各种费用收取和待收取情况等。
4.2.1.3出入金记录
该功能实际值出入金的管理,用于财务查看客户入金的明细情况、按月统计入金报表,财务出金转账登记,出金汇总等。
⏹入金管理
统计该代理商的客户转账到平台的时间、资金情况等信息。
⏹出金管理
统计该代理商的客户从平台提取资金的时间、资金情况等信息。
4.2.2.4总账查询
查询平台目前的资金情况、客户的收益情况、平台的收益情况、客户预期收益情况、平台预期收益情况、代理商收益和预期收益情况等信息。
4.2.3PC客户端功能
PC客户端是客户进行股票交易的客户端软件。
包括股票查询、股票交易、资金转账、修改密码、留仓查询、交割单查询等功能。
PC客户端
股票查询
股票交易
资金转账
修改密码
留仓查询
交割单查询
4.2.3.1股票查询
股票查询功能是指为客户端提供可以交易的股票列表,用户可以按照股票代码和股票名称查询某一只股票。
股票查询所包括的信息包括股票代码、股票名称、是否允许多开、是否允许空开、是否禁止交易等。
4.2.3.2股票交易
股票交易是指进行股票开仓和交割两类操作。
⏹开仓
开仓是指用户购入某一只股票,包括股票查询、购买和刷新留仓四个环节。
股票查询负责从服务器查询股票信息,包括获取股票代码、股票名称、多空开仓限制、是否禁止交易、根据开盘停盘时间停止交易、根据节假日停止交易、根据股价波动停止交易、查询最新的股价信息、显示平台规定的交易价格等信息。
购买包括对用户输入的手数进行判断是否允许交易,执行购买同时扣除用户的资金。
刷新留仓是指刷新客户端的留仓信息,看到自己的开仓成功,开仓后30分钟不允许交易,防止客户频繁刷单。
开仓分为开多仓和开空仓,开多仓是指股价涨的时候盈利,开空仓是指股价跌的时候盈利。
⏹交割
交割是指出售一只股票交割的交割的操作包括出售股票和返还资金两部分。
4.2.3.3资金转账
资金转账包括银证转账和证银转账。
⏹银证转账
银证转账是指从客户的银行账号到平台的资金账号转账,客户发起银证转账以后,系统调用平台开通的网银页面,用户输入转账的金额,将客户的银行资金转入到平台,转账成功后用户的信用资金立即增加。
⏹证银转账
证银转账是指平台资金转入到客户的银行账号,用户从客户端发起证银转账,后台收到转账请求以后,财务通过其他渠道转给用户资金,转出以后在系统中确认订单完成,客户的使用资金降低。
4.2.3.4留仓查询
留仓查询用于查询留仓信息,所查询信息包括自己所留仓的股票,信息包括股票基本信息、当前股价、当前盈亏、费用收取情况、即将收取的费用情况、是否允许平仓等。
可以对留仓股票出仓。
4.2.3.5交割单查询
交割单查询用于查询已经交割的股票情况,包括股票基本信息、交割盈亏情况、费用收取情况等信息。
4.2.3.6其他功能
包括修改密码、锁定客户端等功能。
4.3.4安卓客户端
参见PC客户端功能。
比客户端少了资金转账功能。
4.2.5IOS客户端
参见PC客户端功能。
比客户端少了资金转账功能。
4.2.6商城
商城负责在申请平台的资金账号的时候使用,用户银证转账的时候也可以使用商城的商品名称进行交易,这里没有什么技术含量。
4.2.7股价监听程序
股价监听程序负责从互联网拉取最新的股价信息,供平台所用,并且提供平台服务端自动化处理的功能。
4.2.7.1自动监听股价
自动监听股价的功能是根据系统设定的股价范围,从互联网拉取股价,提供给系统使用。
我们优先选用新浪财经的股价接口,因为这个接口包含的信息是相当齐全的,而且响应速度快,非常稳定。
据我测试2000只股票,获取时间最长2秒,当然如果我们的服务器够好,应该能做到1秒以内,这就完全够我们使用了。
4.2.7.2采集历史股价数据
前面提到我们希望平台具有“分析功能”,根据股价波动来分析风险,从而自动平仓或者自动禁止开仓,这个新浪接口不能直接帮我们实现,因为它没有查询历史股价的能力,我们系统可以做一个补偿设计,就是每日扫描一次股价信息,保存在我们系统中,供查询使用,这也是“大数据”哦。
我们可以采集的信息包括“最近一周的最高价波动情况”、“近期开盘就涨停情况”,“近期涨停和跌停次数”等等。
4.2.7.3根据股价波动自动平仓
系统有一个功能:
当股价波动到一定幅度以后,系统会自动止损或者止盈平仓。
该功能是平台自动的,因此需要靠监听程序来实现。
监听程序首先遍历所有留仓中的股票,然后对比当前的股价,如果股价波动超过一定的比例,自动按照当前的股价出仓,并且将利润返回给当前账号。
4.2.7.4自动收取过夜费
如果平台开启收取过夜费的收费项目,那么过夜费在第一个交易日结束或者第一日收盘的时候开始自动收取。
该功能也是系统主动+主动的行为,按照行规,过夜费收取的时候,如果用户的账户资金不够,则自动出售该股票,将该股票的资金用于过夜费,如果股票卖出以后仍然不够,则出售其他股票收取。
4.2.7.5超过六个工作日自动售出股票
如果系统系统中的留仓股票超过6个工作日仍未手动出仓,系统将强制自动出仓。
5.技术要点
既然需求已经分析,我们一起看看要完成这样的系统所需要的技术。
5.1开发技术和语言
前端技术是为操作本系统的人提供的交互界面开发技术。
包括PC客户端、代理商客户端、总后台和股价监听系统的界面,考虑数据交换的及时性、系统安全性和交互体验,系统需要采用C/S的架构,这也是绝大多数大型券商系统的通用格式。
那么我们应该采用什么技术实现呢?
目前主流的服务端技术有java、.net等,其中java不适合做前端开发,因此我们应该选用.net作为开发语言,前端采用Winform技术开发,后台采用.netWebAPI技术。
Winform研发所用到的技术包括控件技术、排版布局技术,当然如果要做得更好,需要用到自定义控件技术、多线程预加载技术、进度条交互技术。
5.2服务端接口技术
服务端接口技术主要是服务端的处理业务逻辑以及和客户端API对接的技术,刚讲到主要是使用.netWEBAPI技术,建议接口采用restful规范,主要约束如下:
由于系统接口不多,建议只使用get和post两类接口方式,一般向服务端上报数据采用post方式,从服务端拉取数据采用get方式。
服务端收到客户端的请求以后,开始进行业务处理,完毕以后返回数据,举例:
webAPI首先需要初始化一些参数,对WebAPIConfig改造一下。
usingCacheCow.Server;
usingNewtonsoft.Json.Serialization;
usingSystem.Linq;
usingSystem.Net.Http.Formatting;
usingSystem.Web.Http;
namespaceFundAPI
{
publicstaticclassWebApiConfig
{
publicstaticvoidRegister(HttpConfigurationconfig)
{
//去掉json序列化时的循环引用
varjson=config.Formatters.JsonFormatter;
json.SerializerSettings.ReferenceLoopHandling=Newtonsoft.Json.ReferenceLoopHandling.Ignore;
config.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandling=Newtonsoft.Json.DateTimeZoneHandling.Utc;
//去掉XML序列化器
config.Formatters.Remove(config.Formatters.XmlFormatter);
varjsonFormatter=config.Formatters.OfType
jsonFormatter.SerializerSettings.ContractResolver=newCamelCasePropertyNamesContractResolver();
//服务端缓存器
GlobalConfiguration.Configuration.MessageHandlers.Add(newCachingHandler(GlobalConfiguration.Configuration));
//WebAPI路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name:
"DefaultApi",
routeTemplate:
"fstock/v2/api/{controller}/{action}/{id}",
defaults:
new{id=RouteParameter.Optional}
);
}
}
}
然后在API层进行接口代码编写,首先一个API的代码文件存放一块业务逻辑,例如节假日设置的API,我们可以按照如下编写:
usingFundAPI.Models;
usingFundAPI.Models.vo;
usingFundAPI.Services;
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Web.Http;
namespaceFundAPI.Controllers
{
publicclassSyslogController:
ApiController
{
///
///获取一个客户在指定日期的操作资金变动日志
///
///
///
[HttpPost]
publicIHttpActionResultAllSyslogByCustomerAndDate(DeliveryQueryVOvo)
{
DateTimedtBegin=DateTime.Parse(vo.begindate);
DateTimedtEnd=DateTime.Parse(vo.enddate);
List
ret.Add(newSyslogService().GetByCustomerId(vo.u_loginname));
ret.Add(newInfo("获取成功"));
returnOk(ret);
}
///
///获取该日所有用户的资金变动日志
///
///
///
[HttpPost]
publicIHttpActionResultAllSyslogByDate(DeliveryQueryVOvo)
{
DateTimedtBegin=DateTime.Parse(vo.begindate);
DateTimedtEnd=DateTime.Parse(vo.enddate);
List
ret.Add(newSyslogService().GetAllByDate(dtBegin,dtEnd));
ret.Add(newInfo("获取成功"));
returnOk(ret);
}
///
///所有客户的总变动日志
///
///
[HttpPost]
publicIHttpActionResultAllSyslog()
{
List
ret.Add(newSyslogService().SelectAll());
ret.Add(newInfo("获取成功"));
returnOk(ret);
}
}
}
在服务层,我们需要书写具体的实现代码:
usingFundAPI.commons;
usingFundAPI.Models;
usingFundDB;
usingMongoDB;
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
namespaceFundAPI.Services
{
publicclassSyslogService
{
publicvoidADD(SysLogitem)
{
using(FundMongoDBmdb=newFundMongoDB())
{
varcollection=mdb.GetCollection
collection.Insert(item);
}
}
publicIEnumerable
{
using(FundMongoDBmdb=newFundMongoDB())
{
varcollection=mdb.GetCollection
var
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 融资融券或QFII系统建设思路DOC 40页 融资 QFII 系统 建设 思路 DOC 40
![提示](https://static.bingdoc.com/images/bang_tan.gif)