笔记小总结2

win +D 显示桌面
 ps aux | grep "test" |grep -v grep| cut -c 9-15 | xargs kill -9


断开连接 封装成TCP的形式
tcp断开连接 会发送通知

问题:
1. 初始化共享内存的时候 创建的共享内存 如果已存在 需要删除掉。
2.消息量传不进去

交易登陆个数:同时登陆的柜台个数
前置缓存的数据,实时更新和维护,前置粗了许多映射的map。
3.返回的BUF值,不确定类型和长度。

另 优化数据库查询PM_Deal_TradeDataForTrade

OnConnect
OnDisconnect
send
receive

\n是换行,英文是New line
\r是回车,英文是Carriage return
机械打字机有回车和换行两个键作用分别是:
1、换行就是把滚筒卷一格,不改变水平位置。
2、回车就是把水平位置复位,不卷动滚筒。

编译成一个库,写一个接口出来。这样只需要引用头文件,在编译的时候-l这个库即可。


共享内存双缓冲的问题:没办法在两块共享内存之间通信。


json:自我描述性
key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
key 和 value 中使用冒号(:)分割。
每个 key/value 对使用逗号(,)分割。
JSON.parse()
JSON 通常用于与服务端交换数据。
在接收服务器数据时一般是字符串。
我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串

xml的生成
托管机房的作用
信号量

GUID 全部局唯一标识符

客户信息审核。点击审核通过之后,会发给后台多条请求,先是一个审核信息表更改请求,然后是多个表的修改请求。
affect 存储过程
strncpy(CashData->Remark, data->Remark, sizeof(data->Remark) -1);即 char[]类型在strncpy拷贝时候需要sizeof-1


解决方法:申请一块心跳内存
socket将tcp封装起来
tcp连接  一边挂了,另一边会知道吗
会 KEEPALIVE设置了 一段时间没数据则自动发送探测字节检测 ,用于双进程
说如果是多进程的话 会比较复杂。
因为是多进程间的通信,所以心跳可能也会没用

一个服务器现在一般的都只有一个服务。
前置放到上海 走专线接香港的交易中心。
                
内存赋值具有覆盖性
群发消息 作为心跳。
共享进程也可以做一个环形缓冲区

实时成交是柜台过滤吗

send receive connect disconnect

数据库中的股票信息调整并不写入表中 只是显示给管理。

机械键盘拿过来

xml协议文件 结算保证金  参数是比例还是定额

PS_Add_THisPosition改为PT_Add_HisPosition 好一些?
交易接收管理的应答 和通知。管理自身不接受通知和应答

操作员交易会员:一个操作员也可能会是交易所的交易会员。

底层已经实现了epoll的对端断开连接的检测,还需要心跳吗?有些地方进不去epoll,所以需要心跳,暂时没有找到哪里不进入epoll,心跳断开还是很麻烦
void TEventLoop::task_add(TClientMgr::ClientCell* client)
{
    //获取ClientCell
    client->Events = (EPOLLET | EPOLLIN | EPOLLPRI | EPOLLRDHUP | EPOLLERR);//边缘触发,普通数据,带外数据,对端断开,本地错误
    m_Clients.insert(TClientMapType::value_type(client->ClientId, client));
    

void ventLoop::do_active(TClientMgr::ClientCell* client, uint32_t events)
{
    if (events & (EPOLLHUP | EPOLLERR | EPOLLRDHUP))
    {
        task_del(client->ClientId);
        return;
    }

心跳就是一个业务包,断开的情况更为普遍:
1.假死,连接还在,但是什么都处理不了了
2.单个线程、进程死了,程序能运行
3.心跳更高级,更独立,TCP更底层。可能底层能运行,上层运行不了了
TCP的epoll对断开的检测,相当于是一个事件。
EPOLLRDHUP:对端断开
1.检测这个事件,就进入了disconnect踢掉连接
2.tcp

上载 \ /改变  string  .h

2018.10.30

win +D 显示桌面
 ps aux | grep "test" |grep -v grep| cut -c 9-15 | xargs kill -9


xml的生成
托管机房的作用

strcpy与memcpy的区别:
1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy
前者拷贝时候 赋值给一个数组 可能数组长度不够 但是还是会复制成功。

机械键盘拿过来

xml协议文件 结算保证金  参数是比例还是定额

PS_Add_THisPosition改为PT_Add_HisPosition 好一些?


上载 \ /改变  string  .h

内存字节对齐根本没用 直接sizeof就好了

 //前置被Kill或异常,发送登出指令(LinkID=0)
发出指令是做不到的 。管理可以通过epoll检测到断开或者心跳超时进行断开。

C++无法处理MYSQL穿回来的date型数据,需要在存储过程之中转换为char类型。

可用1  可用2  质押资金 

找点写代码的活干干。

交易时候到底用了啥币种?交易不同交易所 是不是要用不同的币种?

币种组:一个交易所的相关币种

主管理怎么同步数据到子管理?

本币外币标识 ?是否联动是汇率一起变

是否只有通知 子管理 才能同步?

改手机号百度

柜台查询public.xml文件 是系统设置文件

发的通知都是给子管理发的吗

pop()返回值为弹出的值。append()为push
remove()没有返回值。
原地操作没有返回值
python有垃圾回收机制 非常好
需要换行对齐
元组:(1,2,4,)字典:{‘2’:1,‘t':2}
字典可以传递关键字参数。
函数也是一种抽象


一个数据头 一个会话头之后多个数据data
主发的通知 子管理收到,进行 同步。
密码修改时。子管理发通知,主管理收到后,判断是不是子管理发过来的,如果是则修改完成之后不发应答和通知。
如果子管理收到修改密码请求  则处理完成后linkid设为9999发送通知,发给自身的socket
如果子管改了密码  主管理怎么收到通知?

子管理会收到通知后转为请求
由于通知也在协议中 所以主管理也会收通知和应答。接收通知和应答会不会处理?
主管理不接受通知 子管理也不发送通知 server收到改密请求,判断自己开没开client,如果开了就调用了client的send,转发请求。clinet单独创建了一个连接主管理的socket,调用其发送进行转发

期权行权,权利金方式,期货方式,现金方式,期货方式。
股指期权都是现金交割方式
PS_OptionIntoMatch将期权行权写入持仓形成持仓
PS_Deal_Delivery处理期权时候 先将现金和实物方式行权写入持仓,嘴鸥胡还有持仓的期权行权进行弃权
到期后期货和期权会自动进行交割 期权行权要手工录入
PS_Deal_Delivery写入TemDelivery信息
PS_Count_FrozenMargin中 把TemDelivery写入到了TDelivery。
PS_Count_DeliveryFee中计算了交割手续费
PS_Qry_AccountDeliveryFeeParam计算了交割手续费参数
fundsettle中统计了交割盈亏。TemAccountFund关联TDelivery进行了统计。


PS_OptionIntoMatch temposion中增加字段 FOpenCloseMode开平类型 品种层
FPositionEffect开平方式  单一持仓
平今的只有大连上海之类的交易搜 品种不一样

carry单:调期交易分两种:
A) Borrow:买入近期合约卖出远期合约(相当于空头往后移仓或者多头往前移仓)

B) Lend :卖出近期合约买入远期合约(相当于多头往后移仓或者空头往前移仓)
.调期的费用即升贴水,升贴水的报价有两种:
A) Contango (远期升水) :即到期日靠前的合约价格比到期日较远的价格要低。

B) Backwardation (远期贴水) :即到期日靠前的合约价格比到期日较远的价格要高。

未交收盈亏严格来讲LME的合约没有平仓的概念,即使你通过做调期把开仓头寸和平仓头寸把到期日调到同一天,这样也只是将合约对冲。所以,这些对冲的合约所产生的盈亏都只是未交收的盈亏,这一部分的盈亏必须要在合约到期之后才会实现。如果有未交收盈利则这部分的盈利在合约到期前不能提取,但这部分盈利可以用来开新的头寸。
即 不可提 但是可用。

usr 指 Unix System Resource

买一本linux内核的书
期货从业资格考试书

汇率变更:应答只有操作员号、
数据会发送通知。在最后操作完成后只发送一个应答。数据不超过最大数据报数 不发送通知
只发通知不发应答?
可以进Onframe而不是分发

结果集做连接查询 非常慢因为没有索引
将结果集插入临时表中,临时表建立索引,则速度变快。有索引之后提速60倍。

带茶叶回来。
CME(芝加哥商品交易所的简写) 外汇1972.5
CBOT芝加哥期货交易所_利率
 NYMEX纽约商业交易所 
ICE 伦敦洲际交易所
COMEX 纽约商品交易所隶芝加哥集团?
纽约金属交易所分为NYMEX及COMEX两大分部,NYMEX负责能源、铂金及钯金交易,在NYMEX分部,通过公开竞价来进行交易的期货和期权合约有原油、汽油、燃油、天然气
- 芝商所旗下拥有四个交易中心CME, CBOT, NYMEX 和COMEX
合约标准化 场内集中竞价交易 苏杭向交易 对冲了解 当日无负债结算 保证金交易

给所有有邮件权限的角色分配50008、9、10
给所有角色分配权限50007

服务器8888端口 监听一个连接 同时  从这个端口发送一个连接

打印学信网认证

请求的errorcode有啥用?为啥不能放版本号?心跳到底怎么判断超时的?

tcp 一个端口建立多个链接和监听。

日内有开平 为日内手续费 先开后平

DCE:dalian
ZCE:zhengzhou

流控怎么控?serialid=0 有啥用?柜台知道后,serialid=0 pacage++什么意思,根本不会++啊


测试函数是否可行
自动锁,继承类线程,内存池(内存块多次分配)

TCP穿透

if 和while后面多了个分号
理发洗澡
serialid:没用
没有filecount?
不按照package判断组包发送,按照datahead->FieldCount >= FIELD_MAX_SIZE(datahead->FieldSize)进行组包发送。
解决了假死的问题,但是不能解决线程持续被占用的问题。

2018.11.8

tcp五元素重复问题。,
sleep 毫秒

mysql的内存表的大小在my.cnf文件中有定义,需要通过修改配置来修改临时表的大小限制:
[mysqld] ##内存表容量 max_heap_table_size=1024M
问题:1.varchar最大长度
2.AUTO_INCREMENT支持,<>也支持
3.HOFT_Match可以做一个联合索引
可以通过explain 来分析

多交易中心优化,多中心接入服务,

本币外币标识:客户在香港开户银行卡 本币为人民币 外币为港元
公司在美国开银行卡 本币为美元 外币为人民币或其他

主键不能修改,也不能进行先删除后修改

心跳怎么弄得
收20次 发一次?

卖期权 收回保证金

套期保值

升级说明说明 银行信息不能有主键重复的

where执行顺序是从左往右执行的,在数据量小的时候不用考虑,但数据量多的时候要考虑条件的先后顺序,此时应遵守一个原则:排除越多的条件放在第一个。

新平台网关是ES 协议  协议不同
新网关内外盘一样
主管理同步到子管理  子管理返回应答 在主管理分发 直接转发。子管理收到主管理转发的请求之后,操作完之后调用manageclient的发送发给主管理,主管理disturbut接收应答,返回给前置

linkid 前置为连接分配的id 1234
frontid 管理2为前置分批额的id 1234

哪些要通知 同步的。标准 组合方向
组合方向:买一手价差合约。根据组合方向确定买的是哪一腿。
套期保值:需要标准仓单。那我要卖出套期保值,需要什么仓单?
选不选这个选项都可以进行套期保值 这个选项有啥用?如果是卖现货的套期保值,保证金会有优惠。需要提供仓单。如果买现货选择套机保值 感觉没啥用

HK T+1 选择了之后当天下的单子 进入T+1时段排队
T+1时段必须要选择这个选项。
此外 国内的交易所 T和T+1(夜盘)之间就已经切了交易日。但是港交所T+1相当于是当日额外交易时段,交易算作今日。但是结算算作明天。即今天下的一笔T+1单子没成交明天就没了。

交易所跨期合约:一个跨期单是否按照交易所内部设定的跨期套利品种进行下单。
K线是系统自己做的.

代码审查结束了。

流控 回多个数据应答一个应答判断chain 查完了就是end

用IP就能找到吗 不会是局域网吗

审核信息
出入金开户支行
存储过程rent 

or  and不能够并列
 

2018-12-06

可用1  可用2  质押资金 

买一本linux内核的书
带茶叶回来。

流控怎么控?serialid=0 有啥用?柜台知道后,serialid=0 pacage++什么意思,根本不会++啊

自动锁,继承类线程,内存池(内存块多次分配)

流控 回多个数据应答一个应答判断chain 查完了就是end

审核信息
出入金开户支行
存储过程rent 

new(buf) 在指定的内存上创建对象

协议要同步银行信息
无用的审核
独立币种组
手续费模板增删改权限没用 不支持的审核 保留
交易消息增加

为什么之前加了 后来又去掉了

CheckPassword 没有记录密码验证日志

PM_SecondCertification

需求细化完成
手续费参数完成
无用的权限完成
需求细化等待中

底层架构库 设计中

币种组独立 意义?

查询为什么查空
客户端为什么要错误码

1.创建几个serviceoper 是预先设计好的?还是来一个创建一个
2.激活进程,怎么激活?
3.notify谁来写? 这个库的功能 mger放到notify缓存里??
4.接收时候的Position Dest,指明了谁的service?

4.oper用来互相之间通信

find_in_set

vi翻页 contrl+f
20181119存今天全部 E存每一次的。
 

PC端 、手机端 登陆请求 写一个标识自己是什么,或者填写应用程序编号

怎么设置需要二次认证?

IP地址按机构申请 不在准确所属地

希求细化 还要继续细化这个IP异地登录。暂时的方法:登录时候关联PI地址表,显示IP所属地区、

怎么制定库的路径

队列是一个模板,需要指定队列中存的是什么类型的成员
new创建的对象 需要手动delete 
其余创建的局部变量 生存期结束就被析构了
进程终止时,会自动解除映射
主子进程 匿名映射 进程结束 自动解除

xlxs格式最多35565行 csv格式就没有行数限制。

手工录入期货的实物和现金交割 没有用 

UNIX的信号和管道已经是古老的了
linux支持 system V iIPC
.System  V引入了三种高级进程间的通信机制:消息队列、共享内寸和信号量
shmget也是共享的 如同mmap。
进程是写时赋值,不改变值 就不复制。
vforK 主进程挂起。并且子进程修改全局变量 主进程也会改变。

我们创建的内存表和MySQL内部临时表有所不同:内存表的数据存放在内存中,而内部临时表(我们的query语句产生的)在恰当的时候存放在内存中,当内部临时表变得很大时,MySQL会自动地把它转化为 在磁盘上存储的表,而我们创建的内存表,却不会自动转换。

area

select cast(num as decimal(10, 2)) as num from table2
 CAST(FMonthFirstType AS SIGNED INTEGER)
品种组:市场

新的革命即将到来,那就是,人类 将不再是从前的人类。

学会夸赞别人

关于IG夺冠的感想。

慎用if exists/not exists

高版本navicate不支持 select FUpperNo  ,'   ',0
from TUnExpClose 低版本支持
同时 高版本不支持  ‘’ 作为结果集表头

加了主键之后 
  UNIQUE KEY `FUpperNo` (`FUpperNo`,`FUpperExchangeNo`,`FUpperCommodityNo`,`FInsideCommodityType`) USING BTREE这个用不用改。

D:\THING\itap\iTap9.2\SourceCode\iTapProtocol
D:\THING\itap\iTap9.1\SourceCode\EsProtocol


  `FCurrencyNo` varchar(10) COLLATE utf8_bin NOT NULL DEFAULT '',
  `FInitalMargin` decimal(38,8) NOT NULL DEFAULT '0.00000000',
可见:varchar需要指定字符集,decimal不需要

问一下增加汇总之后柜台是否需要修改

对于otl中要插入char类型,必须指定char的长度,即在otl中对于char类型的操作皆按上述的字符数组的规则,即绑定的长度应为2。否则会出现Incompatible data types in stream operation的错误

order by的时候 要注意 order的列名  一定要是临时表(结果集)的列名

不填起止日期 就不会汇总了
结算前删除当日数据。

上手品种映射的协议提交了 xml生成了
span的协议还没提交,SPAN应该要加主键吧

链接信息和登陆通知记录了IP所属地?是否要在登录日志和操作日志中记录IP所属地?
link是当前的 logininfo是历史的。
其实不用加字段,可以就放到登陆信息里。
加字段更明显一点。
登录日志是否要记录?
0.1s 匹配所属地    刷脚本30s
把TCP书借过来看看
多沟通
汇总 不按照客户汇总吗

为什么利率下下周发布
为什么要按照流水号

只有期货的FOpenCloseMode LME的是U,不区分,LME期权并不是U。
field是为了让基币放在最后。

2018-12-14


LME清算模型 和这个span参数 有没有关系
VM:盈亏、追保金额
IM:初始保证金
卖期权市值是负的

启动 管理 交易  前置
注释掉守护进程 开始调试
bash  就是一个shell 用来和内核进行通讯。

期权交易的权利金=成交价 * 成交数量 * 每手乘数
期权市值=最新价(最新价为0用持仓价) * 持仓量 * 每手乘数(买入为正,卖出为负)
结存=昨结存+出入金-手续费+权利金出入+持仓/交割盈亏+资金调整
权益=结存+授信+浮盈
可用=权益-保证金-冻结+卖期权市值(卖为负数)
SPAN可用=权益-保证金-冻结-期权市值(市值抵保证金)
可提1=(可用,结存)
2=可用-LME盈亏-非LME盈亏*0.3
3=可用-授信-浮盈-LME平盈
4=可用-授信-(LME平盈+LME浮盈)+MIN(LME平盈+LME浮盈,保证金)
账户市值=权益+期权市值
资金和权益需要在平仓之后才会改变

周五CME美国没有T+1 港交所有

TMATCH的FDATE就是结算日

注:TIPRegion刷入脚本执行较慢,大约35s左右。
问题:1 IP记录登录日志?
2.链接信息、登录日志,只记录中文。
3只有用户语言是中文时候,才写入链接信息?
3

@UserNo(777)@Time(2018-12-10 10:22:32)@IP(192.168.23.232)@LoginInfo()@Area(局域网)

'@UserNo(777)'
'@Area(局域网)'
select LENGTH('亚美尼亚')中文占3位
SELECT    RIGHT('亚美尼亚',4)中文占1位
解决方法一:将中文长度/3
二:right取值时候,取到@Area(,而不是@Area

NULL长度为NULL
【XX期货】尊敬的@UserNo{4,2}(@AccountName),欢迎登录 前4位+****+后2位

ctrl+y重做
http://fanyi.youdao.com/translate?&i="&C20&"&doctype=xml&version

合约行情 结算价

25端口(SMTP):25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务所开放的,是用于发送邮件。 465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放的

length():Return the length of a string in bytes.返回字符串所占的字节数(受编码影响).
char_length():Return number of characters in argument.返回字符串中的字符数.

原来curl的方式已经弃用,现在有两种发送方式,一种是配置url的强哥中转邮件,一种是mail.py,前者修订7之后渐渐弃用

数据库中表char(10)=10个字符,无论中英文。
存储过程中,同样。
柜台中,协议中,char(10)长度为英文长度,中文会少。
例如权限名称类型
typedef TapChar_t    TapRightNameType[21];
只能存10个汉字,多了会显示不出来。

修改前置交易中心地址

发件箱抄送地址:收到的人可回可不回邮件,比如我发给客户,同时要抄送给上司一份。抄送就是将邮件同时发送给收信人以外的人,用户所写的邮件抄送一份给别人
登陆柜台不进行二次认证
更新设计文档,增加二次认证部分。


20分钟答辩ppt
加字段,改协议,改XML
登陆过程根据权限判断是交易员还是操作员。给予对应的权限,给与对应的登陆身份。

IP所属地
为啥前置也要处理?不就是加了个主键

性格内向不是不好,只是要适度,不要“太”内向,哪怕不爱说话,对人基本的尊重还是要有的。人心都是肉长的,只有你对人真诚、热情、友善、微笑,别人才会对你这样。过多的冷漠只会换来冷漠,再狂热的一颗心也禁不住长期的冷淡。.

聊聊孟晚舟事件
蝙蝠侠大战超人

富人越富,穷人越穷,夫人的孩子岳父,穷人的孩子越穷

发送方IP、发送方Port、接收方IP、接收方Port、通信协议(Tcp/Udp),这也被称为五元素。五元素是相对于一个操作系统而言的

猜你喜欢

转载自blog.csdn.net/baidu_39486224/article/details/83279093