#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct TradeCondition {
pub code: i32,
pub name: &'static str,
pub cancel: bool,
pub late_report: bool,
pub auto_executed: bool,
pub open_report: bool,
pub volume: bool,
pub high: bool,
pub low: bool,
pub last: bool,
}
pub const TRADE_CONDITIONS: [TradeCondition; 149] = [
TradeCondition {
code: 0,
name: "REGULAR",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 1,
name: "FORMT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 2,
name: "OUTOFSEQ",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 3,
name: "AVGPRC",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 4,
name: "AVGPRC_NASDAQ",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 5,
name: "OPENREPORTLATE",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 6,
name: "OPENREPORTOUTOFSEQ",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 7,
name: "OPENREPORTINSEQ",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 8,
name: "PRIORREFERENCEPRICE",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 9,
name: "NEXTDAYSALE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 10,
name: "BUNCHED",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 11,
name: "CASHSALE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 12,
name: "SELLER",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 13,
name: "SOLDLAST",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 14,
name: "RULE127",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 15,
name: "BUNCHEDSOLD",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 16,
name: "NONBOARDLOT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 17,
name: "POSIT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 18,
name: "AUTOEXECUTION",
cancel: false,
late_report: false,
auto_executed: true,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 19,
name: "HALT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 20,
name: "DELAYED",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 21,
name: "REOPEN",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 22,
name: "ACQUISITION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 23,
name: "CASHMARKET",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 24,
name: "NEXTDAYMARKET",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 25,
name: "BURSTBASKET",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 26,
name: "OPENDETAIL",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 27,
name: "INTRADETAIL",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 28,
name: "BASKETONCLOSE",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 29,
name: "RULE155",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 30,
name: "DISTRIBUTION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 31,
name: "SPLIT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 32,
name: "REGULARSETTLE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 33,
name: "CUSTOMBASKETCROSS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 34,
name: "ADJTERMS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 35,
name: "SPREAD",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 36,
name: "STRADDLE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 37,
name: "BUYWRITE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 38,
name: "COMBO",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 39,
name: "STPD",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 40,
name: "CANC",
cancel: true,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 41,
name: "CANCLAST",
cancel: true,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 42,
name: "CANCOPEN",
cancel: true,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 43,
name: "CANCONLY",
cancel: true,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 44,
name: "CANCSTPD",
cancel: true,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 45,
name: "MATCHCROSS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 46,
name: "FASTMARKET",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 47,
name: "NOMINAL",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 48,
name: "CABINET",
cancel: false,
late_report: false,
auto_executed: false,
open_report: true,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 49,
name: "BLANKPRICE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 50,
name: "NOTSPECIFIED",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 51,
name: "MCOFFICIALCLOSE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 52,
name: "SPECIALTERMS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 53,
name: "CONTINGENTORDER",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 54,
name: "INTERNALCROSS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 55,
name: "STOPPEDREGULAR",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 56,
name: "STOPPEDSOLDLAST",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 57,
name: "STOPPEDOUTOFSEQ",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: false,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 58,
name: "BASIS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 59,
name: "VWAP",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 60,
name: "SPECIALSESSION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 61,
name: "NANEXADMIN",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 62,
name: "OPENREPORT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 63,
name: "MARKETONCLOSE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 64,
name: "SETTLEPRICE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 65,
name: "OUTOFSEQPREMKT",
cancel: false,
late_report: true,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 66,
name: "MCOFFICIALOPEN",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 67,
name: "FUTURESSPREAD",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 68,
name: "OPENRANGE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 69,
name: "CLOSERANGE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 70,
name: "NOMINALCABINET",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 71,
name: "CHANGINGTRANS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 72,
name: "CHANGINGTRANSCAB",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 73,
name: "NOMINALUPDATE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 74,
name: "PITSETTLEMENT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 75,
name: "BLOCKTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 76,
name: "EXGFORPHYSICAL",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 77,
name: "VOLUMEADJUSTMENT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 78,
name: "VOLATILITYTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 79,
name: "YELLOWFLAG",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 80,
name: "FLOORPRICE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 81,
name: "OFFICIALPRICE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 82,
name: "UNOFFICIALPRICE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 83,
name: "MIDBIDASKPRICE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 84,
name: "ENDSESSIONHIGH",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: true,
low: false,
last: false,
},
TradeCondition {
code: 85,
name: "ENDSESSIONLOW",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: true,
last: false,
},
TradeCondition {
code: 86,
name: "BACKWARDATION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 87,
name: "CONTANGO",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 88,
name: "HOLIDAY",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 89,
name: "PREOPENING",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 90,
name: "POSTFULL",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 91,
name: "POSTRESTRICTED",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 92,
name: "CLOSINGAUCTION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 93,
name: "BATCH",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 94,
name: "TRADING",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 95,
name: "INTERMARKETSWEEP",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 96,
name: "DERIVATIVE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 97,
name: "REOPENING",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 98,
name: "CLOSING",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 99,
name: "CAPELECTION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 100,
name: "SPOTSETTLEMENT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 101,
name: "BASISHIGH",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 102,
name: "BASISLOW",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 103,
name: "YIELD",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 104,
name: "PRICEVARIATION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 105,
name: "CONTINGENTTRADEFORMERLYSTOCKOPTION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 106,
name: "STOPPEDIM",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: false,
},
TradeCondition {
code: 107,
name: "BENCHMARK",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 108,
name: "TRADETHRUEXEMPT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: true,
},
TradeCondition {
code: 109,
name: "IMPLIED",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 110,
name: "OTC",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 111,
name: "MKTSUPERVISION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 112,
name: "RESERVED_77",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 113,
name: "RESERVED_91",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 114,
name: "CONTINGENTUTP",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 115,
name: "ODDLOT",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 116,
name: "RESERVED_89",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 117,
name: "CORRECTEDCSLAST",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 118,
name: "OPRAEXTHOURS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 119,
name: "RESERVED_78",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 120,
name: "RESERVED_81",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 121,
name: "RESERVED_84",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 122,
name: "RESERVED_878",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 123,
name: "RESERVED_90",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: false,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 124,
name: "QUALIFIEDCONTINGENTTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 125,
name: "SINGLELEGAUCTIONNONISO",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 126,
name: "SINGLELEGAUCTIONISO",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 127,
name: "SINGLELEGCROSSNONISO",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 128,
name: "SINGLELEGCROSSISO",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 129,
name: "SINGLELEGFLOORTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 130,
name: "MULTILEGAUTOELECTRONICTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 131,
name: "MULTILEGAUCTION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 132,
name: "MULTILEGCROSS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 133,
name: "MULTILEGFLOORTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 134,
name: "MULTILEGAUTOELECTRADEAGAINSTSINGLELEG",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 135,
name: "STOCKOPTIONSAUCTION",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 136,
name: "MULTILEGAUCTIONAGAINSTSINGLELEG",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 137,
name: "MULTILEGFLOORTRADEAGAINSTSINGLELEG",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 138,
name: "STOCKOPTIONSAUTOELECTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 139,
name: "STOCKOPTIONSCROSS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 140,
name: "STOCKOPTIONSFLOORTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 141,
name: "STOCKOPTIONSAUTOELECTRADEAGAINSTSINGLELEG",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 142,
name: "STOCKOPTIONSAUCTIONAGAINSTSINGLELEG",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 143,
name: "STOCKOPTIONSFLOORTRADEAGAINSTSINGLELEG",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 144,
name: "MULTILEGFLOORTRADEOFPROPRIETARYPRODUCTS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 145,
name: "BIDAGGRESSOR",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 146,
name: "ASKAGGRESSOR",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: true,
low: true,
last: true,
},
TradeCondition {
code: 147,
name: "MULTILATERALCOMPRESSIONTRADEOFPROPRIETARYDATAPRODUCTS",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
TradeCondition {
code: 148,
name: "EXTENDEDHOURSTRADE",
cancel: false,
late_report: false,
auto_executed: false,
open_report: false,
volume: true,
high: false,
low: false,
last: false,
},
];
#[inline]
pub fn condition_name(code: i32) -> &'static str {
if code >= 0 && (code as usize) < TRADE_CONDITIONS.len() {
TRADE_CONDITIONS[code as usize].name
} else {
"UNKNOWN"
}
}
#[inline]
pub fn is_cancel(code: i32) -> bool {
if code >= 0 && (code as usize) < TRADE_CONDITIONS.len() {
TRADE_CONDITIONS[code as usize].cancel
} else {
false
}
}
#[inline]
pub fn updates_volume(code: i32) -> bool {
if code >= 0 && (code as usize) < TRADE_CONDITIONS.len() {
TRADE_CONDITIONS[code as usize].volume
} else {
false
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct QuoteCondition {
pub code: i32,
pub name: &'static str,
pub firm: bool,
pub halted: bool,
}
pub const QUOTE_CONDITIONS: [QuoteCondition; 75] = [
QuoteCondition {
code: 0,
name: "REGULAR",
firm: true,
halted: false,
},
QuoteCondition {
code: 1,
name: "BID_ASK_AUTO_EXEC",
firm: true,
halted: false,
},
QuoteCondition {
code: 2,
name: "ROTATION",
firm: false,
halted: false,
},
QuoteCondition {
code: 3,
name: "SPECIALIST_ASK",
firm: true,
halted: false,
},
QuoteCondition {
code: 4,
name: "SPECIALIST_BID",
firm: true,
halted: false,
},
QuoteCondition {
code: 5,
name: "LOCKED",
firm: true,
halted: false,
},
QuoteCondition {
code: 6,
name: "FAST_MARKET",
firm: false,
halted: false,
},
QuoteCondition {
code: 7,
name: "SPECIALIST_BID_ASK",
firm: true,
halted: false,
},
QuoteCondition {
code: 8,
name: "ONE_SIDE",
firm: true,
halted: false,
},
QuoteCondition {
code: 9,
name: "OPENING_QUOTE",
firm: false,
halted: false,
},
QuoteCondition {
code: 10,
name: "CLOSING_QUOTE",
firm: false,
halted: false,
},
QuoteCondition {
code: 11,
name: "MARKET_MAKER_CLOSED",
firm: false,
halted: false,
},
QuoteCondition {
code: 12,
name: "DEPTH_ON_ASK",
firm: true,
halted: false,
},
QuoteCondition {
code: 13,
name: "DEPTH_ON_BID",
firm: true,
halted: false,
},
QuoteCondition {
code: 14,
name: "DEPTH_ON_BID_ASK",
firm: true,
halted: false,
},
QuoteCondition {
code: 15,
name: "TIER_3",
firm: true,
halted: false,
},
QuoteCondition {
code: 16,
name: "CROSSED",
firm: true,
halted: false,
},
QuoteCondition {
code: 17,
name: "HALTED",
firm: false,
halted: true,
},
QuoteCondition {
code: 18,
name: "OPERATIONAL_HALT",
firm: false,
halted: true,
},
QuoteCondition {
code: 19,
name: "NEWS_OUT",
firm: false,
halted: true,
},
QuoteCondition {
code: 20,
name: "NEWS_PENDING",
firm: false,
halted: true,
},
QuoteCondition {
code: 21,
name: "NON_FIRM",
firm: false,
halted: false,
},
QuoteCondition {
code: 22,
name: "DUE_TO_RELATED",
firm: false,
halted: true,
},
QuoteCondition {
code: 23,
name: "RESUME",
firm: false,
halted: false,
},
QuoteCondition {
code: 24,
name: "NO_MARKET_MAKERS",
firm: false,
halted: true,
},
QuoteCondition {
code: 25,
name: "ORDER_IMBALANCE",
firm: false,
halted: true,
},
QuoteCondition {
code: 26,
name: "ORDER_INFLUX",
firm: false,
halted: true,
},
QuoteCondition {
code: 27,
name: "INDICATED",
firm: false,
halted: true,
},
QuoteCondition {
code: 28,
name: "PRE_OPEN",
firm: false,
halted: false,
},
QuoteCondition {
code: 29,
name: "IN_VIEW_OF_COMMON",
firm: false,
halted: true,
},
QuoteCondition {
code: 30,
name: "RELATED_NEWS_PENDING",
firm: false,
halted: true,
},
QuoteCondition {
code: 31,
name: "RELATED_NEWS_OUT",
firm: false,
halted: true,
},
QuoteCondition {
code: 32,
name: "ADDITIONAL_INFO",
firm: false,
halted: true,
},
QuoteCondition {
code: 33,
name: "RELATED_ADD_INFO",
firm: false,
halted: true,
},
QuoteCondition {
code: 34,
name: "NO_OPEN_RESUME",
firm: false,
halted: true,
},
QuoteCondition {
code: 35,
name: "DELETED",
firm: false,
halted: true,
},
QuoteCondition {
code: 36,
name: "REGULATORY_HALT",
firm: false,
halted: true,
},
QuoteCondition {
code: 37,
name: "SEC_SUSPENSION",
firm: false,
halted: true,
},
QuoteCondition {
code: 38,
name: "NON_COMLIANCE",
firm: false,
halted: true,
},
QuoteCondition {
code: 39,
name: "FILINGS_NOT_CURRENT",
firm: false,
halted: true,
},
QuoteCondition {
code: 40,
name: "CATS_HALTED",
firm: false,
halted: true,
},
QuoteCondition {
code: 41,
name: "CATS",
firm: false,
halted: false,
},
QuoteCondition {
code: 42,
name: "EX_DIV_OR_SPLIT",
firm: true,
halted: false,
},
QuoteCondition {
code: 43,
name: "UNASSIGNED",
firm: false,
halted: false,
},
QuoteCondition {
code: 44,
name: "INSIDE_OPEN",
firm: false,
halted: false,
},
QuoteCondition {
code: 45,
name: "INSIDE_CLOSED",
firm: false,
halted: false,
},
QuoteCondition {
code: 46,
name: "OFFER_WANTED",
firm: false,
halted: false,
},
QuoteCondition {
code: 47,
name: "BID_WANTED",
firm: false,
halted: false,
},
QuoteCondition {
code: 48,
name: "CASH",
firm: true,
halted: false,
},
QuoteCondition {
code: 49,
name: "INACTIVE",
firm: true,
halted: false,
},
QuoteCondition {
code: 50,
name: "NATIONAL_BBO",
firm: true,
halted: false,
},
QuoteCondition {
code: 51,
name: "NOMINAL",
firm: true,
halted: false,
},
QuoteCondition {
code: 52,
name: "CABINET",
firm: true,
halted: false,
},
QuoteCondition {
code: 53,
name: "NOMINAL_CABINET",
firm: true,
halted: false,
},
QuoteCondition {
code: 54,
name: "BLANK_PRICE",
firm: true,
halted: false,
},
QuoteCondition {
code: 55,
name: "SLOW_BID_ASK",
firm: false,
halted: false,
},
QuoteCondition {
code: 56,
name: "SLOW_LIST",
firm: true,
halted: false,
},
QuoteCondition {
code: 57,
name: "SLOW_BID",
firm: false,
halted: false,
},
QuoteCondition {
code: 58,
name: "SLOW_ASK",
firm: false,
halted: false,
},
QuoteCondition {
code: 59,
name: "BID_OFFER_WANTED",
firm: false,
halted: false,
},
QuoteCondition {
code: 60,
name: "SUBPENNY",
firm: false,
halted: false,
},
QuoteCondition {
code: 61,
name: "NON_BBO",
firm: false,
halted: false,
},
QuoteCondition {
code: 62,
name: "SPECIAL_OPEN",
firm: false,
halted: false,
},
QuoteCondition {
code: 63,
name: "BENCHMARK",
firm: false,
halted: false,
},
QuoteCondition {
code: 64,
name: "IMPLIED",
firm: false,
halted: false,
},
QuoteCondition {
code: 65,
name: "EXCHANGE_BEST",
firm: false,
halted: false,
},
QuoteCondition {
code: 66,
name: "MKT_WIDE_HALT_1",
firm: false,
halted: true,
},
QuoteCondition {
code: 67,
name: "MKT_WIDE_HALT_2",
firm: false,
halted: true,
},
QuoteCondition {
code: 68,
name: "MKT_WIDE_HALT_3",
firm: false,
halted: true,
},
QuoteCondition {
code: 69,
name: "ON_DEMAND_AUCTION",
firm: false,
halted: false,
},
QuoteCondition {
code: 70,
name: "NON_FIRM_BID",
firm: false,
halted: false,
},
QuoteCondition {
code: 71,
name: "NON_FIRM_ASK",
firm: false,
halted: false,
},
QuoteCondition {
code: 72,
name: "RETAIL_BID",
firm: false,
halted: false,
},
QuoteCondition {
code: 73,
name: "RETAIL_ASK",
firm: false,
halted: false,
},
QuoteCondition {
code: 74,
name: "RETAIL_QTE",
firm: false,
halted: false,
},
];
#[inline]
pub fn quote_condition_name(code: i32) -> &'static str {
if code >= 0 && (code as usize) < QUOTE_CONDITIONS.len() {
QUOTE_CONDITIONS[code as usize].name
} else {
"UNKNOWN"
}
}
#[inline]
pub fn is_firm(code: i32) -> bool {
if code >= 0 && (code as usize) < QUOTE_CONDITIONS.len() {
QUOTE_CONDITIONS[code as usize].firm
} else {
false
}
}
#[inline]
pub fn is_halted(code: i32) -> bool {
if code >= 0 && (code as usize) < QUOTE_CONDITIONS.len() {
QUOTE_CONDITIONS[code as usize].halted
} else {
false
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn trade_condition_name_valid() {
assert_eq!(condition_name(0), "REGULAR");
assert_eq!(condition_name(40), "CANC");
assert_eq!(condition_name(148), "EXTENDEDHOURSTRADE");
}
#[test]
fn trade_condition_name_out_of_range() {
assert_eq!(condition_name(-1), "UNKNOWN");
assert_eq!(condition_name(149), "UNKNOWN");
assert_eq!(condition_name(9999), "UNKNOWN");
}
#[test]
fn trade_is_cancel() {
assert!(!is_cancel(0));
assert!(is_cancel(40));
assert!(is_cancel(41));
assert!(is_cancel(42));
assert!(is_cancel(43));
assert!(is_cancel(44));
assert!(!is_cancel(45));
}
#[test]
fn trade_updates_volume() {
assert!(updates_volume(0));
assert!(updates_volume(1));
assert!(!updates_volume(40));
}
#[test]
fn trade_array_codes_contiguous() {
for (i, tc) in TRADE_CONDITIONS.iter().enumerate() {
assert_eq!(
tc.code as usize, i,
"Trade condition at index {} has code {}",
i, tc.code
);
}
}
#[test]
fn quote_condition_name_valid() {
assert_eq!(quote_condition_name(0), "REGULAR");
assert_eq!(quote_condition_name(17), "HALTED");
assert_eq!(quote_condition_name(50), "NATIONAL_BBO");
assert_eq!(quote_condition_name(74), "RETAIL_QTE");
}
#[test]
fn quote_condition_name_out_of_range() {
assert_eq!(quote_condition_name(-1), "UNKNOWN");
assert_eq!(quote_condition_name(75), "UNKNOWN");
}
#[test]
fn quote_is_firm() {
assert!(is_firm(0));
assert!(!is_firm(17));
}
#[test]
fn quote_is_halted() {
assert!(!is_halted(0));
assert!(is_halted(17));
assert!(is_halted(18));
}
#[test]
fn quote_array_codes_contiguous() {
for (i, qc) in QUOTE_CONDITIONS.iter().enumerate() {
assert_eq!(
qc.code as usize, i,
"Quote condition at index {} has code {}",
i, qc.code
);
}
}
}