#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct ErrorField {
pub error_id: i32,
pub error_msg: String,
}
impl ErrorField {
pub fn ok() -> Self {
Self {
error_id: 0,
error_msg: String::new(),
}
}
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct DepthMarketData {
pub instrument_id: String,
pub exchange_id: String,
pub last_price: f64,
pub volume: f64,
pub turnover: f64,
pub open_interest: f64,
pub upper_limit_price: f64,
pub lower_limit_price: f64,
pub open_price: f64,
pub highest_price: f64,
pub lowest_price: f64,
pub pre_close_price: f64,
pub bid_price1: f64,
pub bid_price2: f64,
pub bid_price3: f64,
pub bid_price4: f64,
pub bid_price5: f64,
pub ask_price1: f64,
pub ask_price2: f64,
pub ask_price3: f64,
pub ask_price4: f64,
pub ask_price5: f64,
pub bid_volume1: f64,
pub bid_volume2: f64,
pub bid_volume3: f64,
pub bid_volume4: f64,
pub bid_volume5: f64,
pub ask_volume1: f64,
pub ask_volume2: f64,
pub ask_volume3: f64,
pub ask_volume4: f64,
pub ask_volume5: f64,
pub update_time: String,
pub update_millisec: i64,
pub trading_day: String,
pub action_day: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct InstrumentField {
pub instrument_id: String,
pub exchange_id: String,
pub instrument_name: String,
pub product_class: String,
pub volume_multiple: f64,
pub price_tick: f64,
pub max_limit_order_volume: f64,
pub min_limit_order_volume: f64,
pub max_market_order_volume: f64,
pub min_market_order_volume: f64,
pub delivery_year: i64,
pub delivery_month: i64,
pub product_id: String,
pub is_trading: i64,
pub open_date: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct OrderField {
pub instrument_id: String,
pub exchange_id: String,
pub order_ref: String,
pub front_id: i64,
pub session_id: i64,
pub order_sys_id: String,
pub direction: String,
pub comb_offset_flag: String,
pub order_price_type: String,
pub time_condition: String,
pub volume_condition: String,
pub limit_price: f64,
pub volume_total_original: f64,
pub volume_total: f64,
pub volume_traded: f64,
pub order_status: String,
pub insert_date: String,
pub insert_time: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TradeField {
pub instrument_id: String,
pub exchange_id: String,
pub order_sys_id: String,
pub trade_id: String,
pub direction: String,
pub offset_flag: String,
pub price: f64,
pub volume: f64,
pub trade_date: String,
pub trade_time: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct InvestorPositionField {
pub instrument_id: String,
pub exchange_id: String,
pub posi_direction: String,
pub yd_position: f64,
pub position: f64,
pub today_position: f64,
pub position_cost: f64,
pub position_profit: f64,
pub short_frozen: f64,
pub long_frozen: f64,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TradingAccountField {
pub account_id: String,
pub balance: f64,
pub frozen_margin: f64,
pub frozen_cash: f64,
pub frozen_commission: f64,
pub available: f64,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct InputOrder {
pub instrument_id: String,
pub exchange_id: String,
pub limit_price: f64,
pub volume_total_original: i64,
pub order_price_type: String,
pub direction: String,
pub comb_offset_flag: String,
pub order_ref: String,
pub investor_id: String,
pub user_id: String,
pub broker_id: String,
pub comb_hedge_flag: String,
pub contingent_condition: String,
pub force_close_reason: String,
pub is_auto_suspend: i32,
pub time_condition: String,
pub volume_condition: String,
pub min_volume: i64,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct InputOrderAction {
pub instrument_id: String,
pub exchange_id: String,
pub order_ref: String,
pub front_id: i64,
pub session_id: i64,
pub action_flag: String,
pub broker_id: String,
pub investor_id: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct InstrumentMarginRateField {
pub investor_range: String,
pub broker_id: String,
pub investor_id: String,
pub hedge_flag: String,
pub long_margin_ratio_by_money: f64,
pub long_margin_ratio_by_volume: f64,
pub short_margin_ratio_by_money: f64,
pub short_margin_ratio_by_volume: f64,
pub is_relative: i32,
pub exchange_id: String,
pub invest_unit_id: String,
pub instrument_id: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct InstrumentCommissionRateField {
pub investor_range: String,
pub broker_id: String,
pub investor_id: String,
pub open_ratio_by_money: f64,
pub open_ratio_by_volume: f64,
pub close_ratio_by_money: f64,
pub close_ratio_by_volume: f64,
pub close_today_ratio_by_money: f64,
pub close_today_ratio_by_volume: f64,
pub exchange_id: String,
pub biz_type: String,
pub invest_unit_id: String,
pub instrument_id: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct InstrumentStatusField {
pub exchange_id: String,
pub settlement_group_id: String,
pub instrument_status: String,
pub trading_segment_sn: i32,
pub enter_time: String,
pub enter_reason: String,
pub exchange_inst_id: String,
pub instrument_id: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct QryInstrumentMarginRate {
pub broker_id: String,
pub investor_id: String,
pub hedge_flag: String,
pub exchange_id: String,
pub invest_unit_id: String,
pub instrument_id: String,
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct QryInstrumentCommissionRate {
pub broker_id: String,
pub investor_id: String,
pub exchange_id: String,
pub invest_unit_id: String,
pub instrument_id: String,
}