pub struct CtpForm {
pub broker_id: String,
pub td_addr: String,
pub td_user: String,
pub td_password: String,
pub td_auth_code: String,
pub td_app_id: String,
pub md_addr: String,
pub md_user: String,
pub md_password: String,
pub symbols: String,
pub accept_futures: bool,
pub accept_options: bool,
}Expand description
CTP 网关配置表单(S6 测试面;界面手工输入源 → UiCmd::CtpConfigure →
ask ctp.configure。零配置口径:界面不读文件,值全部人敲;密码位掩码)。
Fields§
§broker_id: String§td_addr: String§td_user: String§td_password: String§td_auth_code: String§td_app_id: String§md_addr: String§md_user: String§md_password: String§symbols: String订阅标的(逗号分隔;订阅行情 钮解析)。
accept_futures: bool收录勾选(ek-ctp 0.6.0 D-PC-FILTER):网关收录哪些产品类。 缺省只勾期货 —— 期权默认不勾,因为默认口径与改动前一致(只期货上抛)。
accept_options: boolImplementations§
Source§impl CtpForm
impl CtpForm
Sourcepub fn product_classes(&self) -> Vec<String>
pub fn product_classes(&self) -> Vec<String>
勾选 → CTP 产品类码表(期货 '1'、期权 '2')。
两个都不勾交空表给插件:插件侧归一化一律回落默认期货 —— 空不等于全丢
(共享合约表为空会让网关的持仓查询整条被跳过)。
Sourcepub fn to_configure_req(&self) -> ConfigureReq
pub fn to_configure_req(&self) -> ConfigureReq
表单 → 线上契约(字段直映;md 回落由插件侧裁决,表单不预处理)。
Sourcepub fn validate(&self) -> Result<(), String>
pub fn validate(&self) -> Result<(), String>
添加/连接前的形制校验(规划 U7:旧口径是“前置为空照样建账户并下发两令“)。
判据:tcp://host:port 形制(host 非空、端口为 1..=65535 的十进制)、
broker/账号非空、AppID/AuthCode 非空(CTP 登录必需,空值只会换来一次注定失败的登录)。
md 前置允许为空 = 纯 TD 账户(单源纪律:非行情源不建 MD 会话)。
返回 Err(第一条原因) —— 界面红字呈现,不当『添加』按钮的硬拦截前置条件之外的东西
(校验只在『添加』『连接』两条入口上跑,低层口 add_account 不重复校验)。
Trait Implementations§
Source§impl Default for CtpForm
手写 Default(不能 derive:accept_futures 必须为 true,derive 会给 false,
而两个都 false 在语义上是「什么都不收录」)。
impl Default for CtpForm
手写 Default(不能 derive:accept_futures 必须为 true,derive 会给 false,
而两个都 false 在语义上是「什么都不收录」)。
impl StructuralPartialEq for CtpForm
Auto Trait Implementations§
impl Freeze for CtpForm
impl RefUnwindSafe for CtpForm
impl Send for CtpForm
impl Sync for CtpForm
impl Unpin for CtpForm
impl UnsafeUnpin for CtpForm
impl UnwindSafe for CtpForm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.