###########################################
############   参数填写说明    ##############
###########################################
# 必需变更项：
# ManagerURL和QueryURL最少需要填写一个，填写ManagerURL字段表示通过manager模块连接柜台系统，只填写QueryURL字段表示直连柜台系统
# 非必需变更项：
# 其余字段为非必需变更项，需要根据券商特殊要求及个人功能需求变更配置
# 若不想替换新配置文件，则可使用>=3.2.518的版本
# 若需要替换新配置文件，则只需将老配置文件中对应参数值重新配置到新配置文件中对应参数即可，其他新增参数按需配置，若保持默认值不变，则等价于使用老配置文件

###########################################
############  Api Parameter  ##############
###########################################

#当需要修改Api支持版本时，请确认当前艾科柜台版本
#随意修改版本，或者格式异常时，可能会导致无法连接至艾科柜台或无法向艾科柜台报单
DependentCounterVersion=2

###########################################
########  Network configurations  #########
###########################################
# 以下URL至少需要选择ManagerURL或者QueryURL其中之一进行配置，若两个都不配置则会报错。
# 在满足以上条件之后，其余的配置组合方式以是否填写值进行区分，若不为空则使用配置的值，若为空则使用默认值。

# 艾科管理中心地址，使用统一的格式tcp://地址:端口号
# 示例1：tcp://192.168.4.216:55555;tcp://192.168.4.214:55554
# 示例2：tcp://192.168.4.216:50000
# Api用来连接管理中心的参数，可以配置多个manager参数,使用;来分隔,多个地址表示逐个轮询连接
ManagerURL=tcp://192.168.4.216:55555;tcp://192.168.4.214:55554

# 艾科柜台查询链路连接地址，使用统一的格式tcp://地址:端口号
# 此参数为空，使用管理中心默认分配的地址，此参数为合法地址时，使用配置的值。地址、端口映射同理。配置格式如下示例：
# 示例1：tcp://192.168.4.67:30000
# 示例2：tcp://192.168.4.67:30000;tcp://192.168.4.68:30000
# 支持配置主备柜台地址，使用;来分隔，当主柜台连接失败会轮询连接备柜台
# Api自动重连也会轮询连接主备柜台
# 当同时配置了ManagerURL和QueryURL的情况下，Api连接manager成功之后会以配置项为准来连接柜台查询链路
# 在连接QFII柜台时，只需要配置该Url，ManagerURL和TradeURL配置为空即可
QueryURL=

# 艾科报单链路连接地址，使用统一的格式tcp://地址:端口号
# 若此参数为空，则使用柜台查询链路登录返回的地址，若此参数为合法地址时，则使用配置的值。地址、端口映射同理。配置格式如下示例：
# 示例：tcp://10.128.123.209:30005
# 场景：例如原报单链路连接地址为tcp://10.128.123.209:30005，由于组网限制，需要将该地址映射为tcp://192.168.0.100:33333
#       此时，将TradeURL参数改为：TradeURL=tcp://192.168.0.100:33333；如果没有此种情况只需要如下不填即可。
# 场景：例如从管理中心查询到的地址为tcp://192.168.4.67:29999，现需要修改默认地址，
#       此时，将TradeURL参数改为：TradeURL=tcp://192.168.4.216:29999，如果没有这种需求，不填即可。
TradeURL=

# 艾科UDP报单地址，使用统一的格式udp://地址:端口号
# 若此参数为空，则使用柜台查询链路登录返回的地址，若此参数为合法地址时，则使用配置的值。地址、端口映射同理。配置格式如下示例：
# 示例：udp://10.128.123.209:30005
# 场景：例如原报单链路连接地址为udp://10.128.123.209:30005，由于组网限制，需要将该地址映射为udp://192.168.0.100:33333
#       此时，将UdpTradeURL参数改为：UdpTradeURL=udp://192.168.0.100:33333；如果没有此种情况只需要如下不填即可。
# 场景：例如从管理中心查询到的地址为udp://192.168.4.67:29999，现需要修改默认地址，
#       此时，将UdpTradeURL参数改为：UdpTradeURL=udp://192.168.4.216:29999，如果没有这种需求，不填即可。
# 一般情况下，可以不用显式设置该配置选项。
# 当且仅当 TradeProtocol=2 时，该选项生效。
UdpTradeURL=

# 交易使用的协议类型，目前支持TCP和UDP两种协议：
# =1：表示启用TCP交易
# =2：表示启用UDP交易
# 启用UDP交易之后，还需要根据柜台是否支持UDP交易，来决定是否生效；
# 如果柜台不支持UDP方式，将默认使用TCP进行报单，并记录日志；
# 默认值：1-TCP交易
TradeProtocol=1

# 是否启用EFVI方式进行UDP交易，默认为不启用（0）
# 该选项依赖于TradeProtocol选项，只有启用了UDP交易之后（TradeProtocol=2），该选项的值才生效，否则不生效（默认不启用）。
# 若启用EFVI方式进行报单，需要配置SolarfareTradeEthName参数，以指定网卡。
# =0：表示不启用EFVI方式的UDP交易
# =1：表示启用EFVI方式的UDP交易
# 默认值：0
EnableUdpEfviTrade=0

# API是否建立交易链路
# =0 不建立交易链路
# =1 建立交易链路
# 默认为=1
# 不建立交易链路时的注意事项：
# 1）如果不建立交易链路，用户需要自己负责交易链路的建立操作，建立交易链路成功后，按约定发送心跳。
# 2）如果不建立交易链路，用户成功建立交易链路后，若发生断链；此时，柜台不再允许二次建立交易链路。
# 需要调用reqLogout()接口退出后，重新调用reqLogin()接口，才允许建立交易链路；
# 3）如果不建立交易链路，且使用FPGA通道交易（SubClientIndex=0）
# 用户成功建立交易链路后，需要调用reqInitTrader()接口初始化交易链路；
# 4）如果不建立交易链路，且使用软通道交易（SubClientIndex!=0）
# 用户成功建立交易链路后，需要自己构造InitTrader请求消息，初始化交易链路，否则不允许通过软通道进行交易；
EstablishTradeLink=1

###########################################
##############  Api Parameter  ############
###########################################

# Api与艾科柜台心跳间隔，此参数无特殊需求，不要进行修改
# 当API没有登录成功的时候使用此值，登录成功后使用柜台和manager返回的心跳时间
# 示例：=6表示Api与柜台间每6s发送进行一次心跳交互,默认值，当api登录成功后以柜台的配置为主
HeartBeatInterval=6

# Api与艾科柜台心跳超时判定次数，此参数无特殊需求，不要进行修改
# 当API没有登录成功的时候使用此值，登录成功后使用柜台和manager返回的心跳间隔和心跳超时时间为准
# 示例：=3表示Api与柜台间超过三次心跳未收到，就判定tcp超时断连，需要重新登录
HeartBeatTimeOutCnt=3

# Api报单链路warm开关，默认关闭，关闭此参数时，冷态报单时延可能会产生抖动
# 此参数在sfc网卡上使用会减轻链路数据处理压力，在其他网卡上使用时，会增加网卡数据处理压力，建议使用sfc网卡
# 示例 :=1表示默认打开，=0表示关闭
# OrderWarm开关开启后,软件发送warm单,warm单能够使cpu处于活跃状态.
# 在发送正式的报单时,cpu可以尽量高的命中,以此提高报单的速度.
OrderWarm=0

# Api报单发送、报单回报线程绑定核心，在配置此参数前，需要先进行隔核操作，RecvSendDetach打开时，CpuCore的第一个参数无效，同时节省一个报单发送线程核心的占用；
# 绑核只能在Api初始化的过程中进行修改，在单次登录、登出操作中无法修改绑定核心
# 示例：
# =-1,-1表示不进行绑核操作
# =3,4表示Api报单发送线程绑定核心3，报单回报线程绑定核心4
# 以上参数可以选择其中一个进行绑定(例如：=3,-1)，也可以选择都不绑定(例如：=-1,-1)，都不绑定会影响Api性能.
# 如果可用核心数不够，请尽量选择Api的报单发送线程进行绑定，这样可以尽可能保证报单速率
CpuCore=-1,-1

# Api登录软件节点后是否接收其他节点的回报信息，默认不接收
# 此参数对登录硬件节点的Api不生效
# 示例:
# =0表示默认关闭，=1表示打开
SoftRspRcv=0

# Api登录硬件节点后是否接收其他节点的回报信息，默认接收
# 此参数对登录软件节点的Api不生效
# 示例:
# =0表示关闭，=1表示打开, 默认打开
# 仅部分券商支持配置为不抄送
FpgaRspRcv=1

# Api回报接收socket是否阻塞标记(无用，改用ApiMode参数)
# =0表示非阻塞socket，该模式下，cpu占用率高，时延相对较低
# =1表示阻塞socket，该模式下，cpu占用率低，时延相对较高
SocketBlockFlag=0

# Api运行模式（高性能模式、普通模式）
# =0表示普通模式，在该模式下，api内存的消耗会有明显降低，同时报单的速率会受到影响
# =1表示高性能模式，在该模式下，api会占用较多内存，同时报单的速率会有提升
# 默认Api运行在高性能模式下，如果没有特殊需求，不需要进行修改
# 修改了此参数后，需要重启Api
# 如果RecvSendDetach=1，则该参数不生效。
ApiMode=1

# 是否详细打印Api日志（详细日志包括请求的输入值、响应接口的输出值以及必要的Api日志，非详细的日志只有必要的Api日志），其中必要的Api日志不会影响Api性能
# =0表示非详细打印
# =1表示详细打印
# 此参数默认关闭
# 注意：详细的Api日志会影响Api性能，建议在调试或者定位时打开此参数
SuperLog=0

# Api是否使用rtnTrade报文构造rtnOrder报文
# 该参数开启时，首先要保证柜台系统参数表第一百零四个参数处于关闭状态，这时柜台不会在回rtnTrade报文时先推送rtnOrder报文，Api端在收到rtnTrade报文时会在Api端构造rtnOrder报文进行推送
# =0表示关闭
# =1表示开启
# 此参数默认关闭
# 注意：当开启该参数时，会对Api的性能产生影响；开启参数时如果柜台的参数没有关闭，会导致Api端收到两条同样的rtnOrder报文，可能会对客户程序产生影响
CreateRtnOrderByRtnTrade=0

# Api收发线程是否分开, 追求超低性能，使用低延迟网卡时配置1，否则建议配置0
# 参数开启时，api的收发线程分离，用户调用报撤单接口所发送的消息会直接通过网卡发往柜台，OrderWarm、ApiMode无效，以及CpuCore的第一个参数无效，同时节省一个报单发送线程核心的占用；
# 参数关闭时，用户调用报撤单接口所发送的消息，会先放入发送队列，由CpuCore的第一个参数绑核的发送线程通过网卡发往柜台；
# 需要高性能报撤单时，建议开启此配置，客户需要自己隔核并将调用reqInsertOrder、reqCancelOrder接口的线程绑核，另外使用CpuCore参数的第二个变量将回报线程绑核，这样能保证api高性能运行。
# 此参数重启生效
# 示例：
# =0表示关闭，=1表示开启；默认关闭
RecvSendDetach=0

# Api是否只连管理中心(Manager)
# =0表示否定
# =1表示肯定
# 说明：正常情况下，此参数无需修改，若有特殊情况，需要只连接管理中心(Manager)，则修改为1
IsJustConnectManager=0

# 是否捕获异常，默认捕获
# =0表示不捕获异常
# =1表示捕获异常
# 说明，此处的异常是指程序中抛出的信号，Api中捕获SIGSEGV和SIGABRT两个信号，当关闭时，Api不处理任何信号
CaptureSignal=1

# 是否支持线程安全，默认不支持，注意当开启线程安全时会影响api的报单性能
# =0表示非线程安全
# =1表示线程安全
# 多线程使用同一个api实例且用户未对实例加锁时需开启，api内部保证功能接口的正常使用，部分系统接口不提供线程安全。
# 线程安全只能保证同一个api对象在多线程调用功能接口时不会出现线程冲突，部分系统接口在调用时无法保证安全性。
# 具体接口见头文件注释。
ThreadSafe=0

#交易链路sfc网卡名称,用于报单加速
#若不配置或环境异常采用原生socket通讯
#若启用了TCP报单，RecvSendDetach配置为1时，此参数不生效
#若启用了UDP报单且使用EFVI方式，此参数也需要指定。
#此参数使用时请与it确认TcpDirect/EFVI版本
SolarfareTradeEthName=

###########################################
######### Login configurations  ###########
###########################################

# 交易终端软件名称及版本，中信证券最大支持长度40，其他券商最大支持长度29，超过按券商所支持最大值截取
AppID=

# 流水重构标志，期权使用，上交和深交柜台不使用该字段，无需做修改
# =0表示不进行流水重构
# =1表示只进行资金流水重构;
# =2表示只进行报文流水重构;
# =3表示资金和报文流水重构;
FlowRebuildFlag=0

# 委托方式校验字段
# 当有报单委托方式校验需求时填写，没有时无需修改(填写时具体取值需要和券商沟通)
OperWay=1

# 正式站点前缀，目前中信用(填写时具体取值需要和券商沟通)，其他券商不配置
PcPrefix=

# 机构编码，目前国泰证券使用
BusinessCode=

#当链接断开后是否需要重连 0=不自动重连 1=自动重连
#同交易日内有效，跨交易日不会自动重连
AutoReLogin=0

# 自动重连后是否触发相关回调函数，配置自动重连后此参数生效
# =0 不返回， =1 返回， 默认为0
AutoReLoginRspSwitch=0

# 第一次登录manager如果连接失败是否需要一直重复连接manager
# =0 不会一直连接manager，连接主备manager3秒之后结束
# =1 会一直循环的连接主备manager，直到手动结束进程
LoopRepeatConnect=0

#是否开启登录的时候进行用户名和密码加密
#api登录manger和柜台的时候是否发送的账户和密码是密文
# =0 表示关闭
# =1 表示打开
# 默认关闭
#仅部分券商支持，使用前请确认
openEncryption=0

#公网信息
#使用;号进行分割
#目前支持配置公网IP为IIP，和端口号为IPORT
#例如SuperviseExtraInfo=IIP=127.0.0.1;IPORT=50318
#需要按照规定的格式来填写,IP和PORT要是正确的IP和PORT
#IIP=127.0.0.1;IPORT=50318或者IPORT=50318;IIP=127.0.0.1都行
#字段支持最大长度为128位
#仅部分券商支持，使用前请确认
SuperviseExtraInfo=

#版本校验, XeleSecuritiesTraderApi.h头文件位置
#校验当前.so内的版本是否和头文件中的版本号匹配
#填写值了会去获取指定目录下的相关文件,为空不校验
#填写绝对路径, 默认值为空
#例如 TraderApiPath=/home/xele/api/
ApiIncludePath=

#此字段填写后,PcPrefix, APPID, SuperviseExtraInfo配置项均不生效
#客户登录时填写的完整监管信息,此信息不做校验,直接透传至柜台落库
#最大支持到384字节,不支持中文格式字符,默认为空
#柜台默认支持长度255，若超过则需要跟券商确认柜台是否支持
#仅部分券商支持，使用前请确认
AllSuperviseInfo=
