diff --git a/vn.ksgold/README.md b/vn.ksgold/README.md new file mode 100644 index 00000000..f775b729 --- /dev/null +++ b/vn.ksgold/README.md @@ -0,0 +1,10 @@ +# vn.ksgold + +金仕达黄金T+D接口(浦发银行)的Python封装,需要把SLEdll文件夹复制到python.exe所在的文件夹下才可以使用。 + +本接口看起来和CTP类似很简单,其实坑相当多: +1. 有每秒最多5笔操作的流控(作者测试似乎3笔就会触发流控),同时似乎底层采用的是同步模式,意味着如果用户调用委托函数遭遇流控限制,则在委托等待的过程中当前线程会阻塞,导致程序出现界面卡死的情况(因为主线程被卡住了) +2. OnRtnOrder返回的数据字段极少,仅包括委托号和当前状态,且仅在委托下达和委托撤销时会推送,委托成交时没有推送,需要用户自己结合OnRtnTrade的数据还原当前委托的最新状态 +3. 登录后不提供当日历史成交和委托的主动推送,需要用户自行查询,查询还有流控(1秒/次) + +如果打算自己开发建议参考vn.trader里的ksgoldGateway,可以少踩点坑。 \ No newline at end of file diff --git a/vn.ksgold/ksgoldapi/Constant.h b/vn.ksgold/ksgoldapi/Constant.h index 21b9f11a..2fd0f9ef 100644 --- a/vn.ksgold/ksgoldapi/Constant.h +++ b/vn.ksgold/ksgoldapi/Constant.h @@ -40,6 +40,32 @@ #define BUY '0' // #define SELL '1' // +//ί +#define SPOT_ENTRUST '0' //ֻ +#define TN_ENTRUST '4' //ֻT+N +#define DEFER_ENTRUST '1' //ֻ +#define DELIVERY_ENTRUST '2' // +#define MIDDLE_ENTRUST '3' // +// +#define COUNTER_CHANNEL '1' //̨ +#define TEL_CHANNEL '2' //绰 +#define NET_CHANNEL '3' // +#define TRADER_CHANNEL '4' //Ա +#define SELF_CHANNEL '5' //ն +#define PHONE_CHANNEL '6' //ֻ +#define TRADEAPI_CHANNEL '7' //API + +//ͻ +#define CLIENT_SPOT '0' //ֻ +#define CLIENT_FUTURE '1' //ڻ +#define CLIENT_GENERAL '2' //ͨ + +//¼ +#define BANKACC_TYPE "1" //˺ŵ¼ +#define TRADECODE_TYPE "2" //ױ¼ + +//Ծ־ +#define ACTIVITY_ON '1' //ѯۺԼ #endif _NEWCONSTANT_H diff --git a/vn.ksgold/ksgoldapi/GoldTradeApi.h b/vn.ksgold/ksgoldapi/GoldTradeApi.h index b078b818..746752c9 100644 --- a/vn.ksgold/ksgoldapi/GoldTradeApi.h +++ b/vn.ksgold/ksgoldapi/GoldTradeApi.h @@ -18,6 +18,7 @@ class CGoldTradeSpi //صӿ { public: + virtual ~CGoldTradeSpi(){}; //ӽ֪ͨ virtual void OnFrontConnected(){}; @@ -48,10 +49,10 @@ class CGoldTradeSpi // virtual void OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo) {}; ///֪ͨ - virtual void OnRtnOrder(CThostFtdcOrderField *pOrder) {}; + virtual void OnRtnOrder(CThostFtdcOrderRtnField *pOrder) {}; //ǿ֪ͨ - virtual void OnForceLogout(CThostFtdcUserLogoutField *pLogout) {}; + virtual void OnForceLogout(CThostFtdcUserLogoutField *pLogout) {}; //Ӧ ///Ӧ(ϵͳذ˴ʹϢ) diff --git a/vn.ksgold/ksgoldapi/KSInterMG.dll b/vn.ksgold/ksgoldapi/KSInterMG.dll index 0cf5d7a3..36aebbeb 100644 Binary files a/vn.ksgold/ksgoldapi/KSInterMG.dll and b/vn.ksgold/ksgoldapi/KSInterMG.dll differ diff --git a/vn.ksgold/ksgoldapi/KSRsaCrypto.dll b/vn.ksgold/ksgoldapi/KSRsaCrypto.dll index ba114488..bcf9cffb 100644 Binary files a/vn.ksgold/ksgoldapi/KSRsaCrypto.dll and b/vn.ksgold/ksgoldapi/KSRsaCrypto.dll differ diff --git a/vn.ksgold/ksgoldapi/KSUserApiStructEx.h b/vn.ksgold/ksgoldapi/KSUserApiStructEx.h index 526e26e2..77edb536 100644 --- a/vn.ksgold/ksgoldapi/KSUserApiStructEx.h +++ b/vn.ksgold/ksgoldapi/KSUserApiStructEx.h @@ -20,68 +20,26 @@ struct CThostFtdcReqUserLoginField TThostFtdcMemberIDType memberID; //Ա TThostFtdcPasswordType password; // TThostFtdcDateType tradeDate; // - TThostFtdcIPAddressType ipGatewayAddress; //ڵIP - TThostFtdcServerPortType portGateway; //ö˿ - TThostFtdcOrderRefType localOrderNo; //󱾵ر - TThostFtdcMachineIDType machineID; //ǰû - TThostFtdcLoginBatchType loginbatch; //¼ - TThostFtdcCSRCInvestorNameType clientName; //ͻ - TThostFtdcIPAddressType lastLoginIp; //ϴε¼IPַ - TThostFtdcDateType lastLoginDate; //ϴε¼ - TThostFtdcTimeType lastLoginTime; //ϴε¼ʱ - TThostFtdcGateWayCurLinkNumType gateWayCurLinkNum; //صǰ - TThostFtdcGateWayYYBDBType gateWayYYBDB; //صӪҵ - TThostFtdcObligateType obligate; //Ԥֶ - TThostFtdcMSGType msg; //Ϣ - - }; ///û¼Ӧ struct CThostFtdcRspUserLoginField { - TThostFtdcTraderIDType traderID; //Ա - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcPasswordType password; // TThostFtdcDateType tradeDate; // - TThostFtdcIPAddressType ipAddress; //IPַ - TThostFtdcOrderRefType localOrderNo; //󱾵ر - TThostFtdcMachineIDType machineID; //ǰû - TThostFtdcLoginBatchType loginbatch; //¼ - TThostFtdcCSRCInvestorNameType clientName; //ͻ + TThostFtdcOrderRefType localOrderNo; //󱾵ر + TThostFtdcLoginBatchType loginbatch; //¼ + TThostFtdcClientIDType tradeCode; //ױ + TThostFtdcClientIDType clientID; //ͻ + TThostFtdcSeatIDType SeatNo ; //ϯλ + TThostFtdcCSRCInvestorNameType clientName; //ͻ TThostFtdcIPAddressType lastLoginIp; //ϴε¼IPַ TThostFtdcDateType lastLoginDate; //ϴε¼ TThostFtdcTimeType lastLoginTime; //ϴε¼ʱ - TThostFtdcGateWayCurLinkNumType gateWayCurLinkNum; //صǰ - TThostFtdcGateWayYYBDBType gateWayYYBDB; //صӪҵ - TThostFtdcObligateType obligate; //Ԥֶ - TThostFtdcMSGType msg; //Ϣ - TThostFtdcSeatIDType SeatNo ; //ϯλ - TThostFtdcClientIDType tradeCode; //ױ - TThostFtdcClientIDType clientID; //ͻ - - }; ///ûdz struct CThostFtdcUserLogoutField { - TThostFtdcTraderIDType traderID; //Ա - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcPasswordType password; // - TThostFtdcDateType tradeDate; // - TThostFtdcIPAddressType ipAddress; //IPַ - TThostFtdcOrderRefType localOrderNo; //󱾵ر - TThostFtdcMachineIDType machineID; //ǰû - TThostFtdcLoginBatchType loginbatch; //¼ - TThostFtdcCSRCInvestorNameType clientName; //ͻ - TThostFtdcIPAddressType lastLoginIp; //ϴε¼IPַ - TThostFtdcDateType lastLoginDate; //ϴε¼ - TThostFtdcTimeType lastLoginTime; //ϴε¼ʱ - TThostFtdcGateWayCurLinkNumType gateWayCurLinkNum; //صǰ - TThostFtdcGateWayYYBDBType gateWayYYBDB; //صӪҵ - TThostFtdcObligateType obligate; //Ԥֶ - TThostFtdcMSGType msg; //Ϣ - + TThostFtdcTraderIDType traderID; //ͻ }; @@ -111,13 +69,7 @@ struct CThostFtdcInstrumentField //ѯʽ˻ struct CThostFtdcQryTradingAccountField { - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcAccountType accountType; //ʻ - - TThostFtdcTraderIDType traderID; //Ա - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMarketIDType marketID; //г - + TThostFtdcMSGType remian; //ֶ }; ///ʽ˻ @@ -146,9 +98,6 @@ struct CThostFtdcTradingAccountField ///Ͷֲ߳ struct CThostFtdcInvestorPositionField { - TThostFtdcClientIDType clientID; //1 ͻ - //2 Ԥλ - //3 Ԥλ TThostFtdcInstrumentIDType instID; //4 Լ TThostFtdcVolumeType longPosi; //5 ֲ TThostFtdcPriceType longPosiAvgPrice; //6 ־ @@ -205,14 +154,14 @@ struct CThostFtdcDepthMarketDataField TThostFtdcVolumeType BidLot3 ; /**< */ TThostFtdcPriceType Ask3 ; /**< */ TThostFtdcVolumeType AskLot3 ; /**< */ - TThostFtdcPriceType Bid4 ; /**< */ - TThostFtdcVolumeType BidLot4 ; /**< */ - TThostFtdcPriceType Ask4 ; /**< */ - TThostFtdcVolumeType AskLot4 ; /**< */ - TThostFtdcPriceType Bid5 ; /**< */ - TThostFtdcVolumeType BidLot5 ; /**< */ - TThostFtdcPriceType Ask5 ; /**< */ - TThostFtdcVolumeType AskLot5 ; /**< */ + TThostFtdcPriceType Bid4 ; /**< */ + TThostFtdcVolumeType BidLot4 ; /**< */ + TThostFtdcPriceType Ask4 ; /**< */ + TThostFtdcVolumeType AskLot4 ; /**< */ + TThostFtdcPriceType Bid5 ; /**< */ + TThostFtdcVolumeType BidLot5 ; /**< */ + TThostFtdcPriceType Ask5 ; /**< */ + TThostFtdcVolumeType AskLot5 ; /**< */ TThostFtdcVolumeType Volume ; /**<ɽ˫ߣ */ TThostFtdcVolumeType OpenInt ; /**<ֲ˫ߣ */ TThostFtdcPriceType UpDown ; /**<ǵ */ @@ -234,39 +183,23 @@ struct CThostFtdcDepthMarketDataField struct CThostFtdcInputOrderField { TThostFtdcSeatIDType seatID; //2 ϯλ - TThostFtdcClientIDType clientID; //3 ױ - TThostFtdcExchangeIDType exchangeID; //4 + TThostFtdcClientIDType tradeCode; //3 ױ TThostFtdcInstrumentIDType instID; //5 Ʒִ - TThostFtdcBsFlagType buyOrSell; //6 + TThostFtdcBsFlagType buyOrSell; //6 TThostFtdcOffsetFlagType offsetFlag; //7 ƽ־ TThostFtdcVolumeType amount; //8 ί - TThostFtdcWeightType weight; //10 ί Ϊ0 - TThostFtdcByteType middleFlag; //9 ֱ־ Ϊ0 - TThostFtdcByteType orderFlag; //10 ίб־ + TThostFtdcByteType middleFlag; //9 ֱ־ Ϊ0 TThostFtdcByteType priceFlag; //11 ίм۸ TThostFtdcPriceType price; //12 Ԥίм۸ TThostFtdcPriceType trigPrice; //13 Ԥίд۸ TThostFtdcMarketIDType marketID; //14 г - TThostFtdcDateType validDate; //15 Ч - TThostFtdcOrderNoType orderNo; //1 ϵͳ - TThostFtdcOrderRefType LocalOrderNo;//ر - TThostFtdcVolumeType matchQty; //12 ɽ - TThostFtdcWeightType matchWeight; //13 ɽ - TThostFtdcOrderStatusType status; //14 ί״̬ - TThostFtdcTimeType entrustTime; //15 ίʱ - TThostFtdcByteType forceoffset_flag; //16 ǿƽ־ - TThostFtdcVolumeType cancelQty; //17 - TThostFtdcTimeType cancelTime; //18ʱ - TThostFtdcVolumnCheck volumnCheck; //־ - TThostFtdcTradeWayType tradeWay; //19 - - + TThostFtdcOrderRefType LocalOrderNo; // ر + TThostFtdcTradeWayType tradeWay; //19 }; /// struct CThostFtdcOrderField { - TThostFtdcOrderNoType orderNo; //1 ϵͳ TThostFtdcOrderRefType localOrderNo;; //2 ر TThostFtdcMarketIDType marketID; //4 г @@ -284,19 +217,24 @@ struct CThostFtdcOrderField TThostFtdcVolumeType cancelQty; //17 TThostFtdcTimeType cancelTime; //18ʱ TThostFtdcTradeWayType tradeWay; //19 +}; - +///ر +struct CThostFtdcOrderRtnField +{ + TThostFtdcOrderNoType orderNo; //1 ϵͳ + TThostFtdcOrderRefType localOrderNo;; //2 ر + TThostFtdcOrderStatusType status; //14 ί״̬ + TThostFtdcVolumeType cancelQty; //17 }; ///뱨(cancel order) struct CThostFtdcInputOrderActionField { - TThostFtdcOrderRefType localOrderNo; //1 ر - TThostFtdcByteType orderFlag; //2 ίб־ - TThostFtdcMarketIDType marketID; //3 г - TThostFtdcTraderIDType traderID; //6 Ա - TThostFtdcTradeWayType tradeWay; //7 ί д"5" + TThostFtdcOrderRefType localOrderNo; //1 ر + TThostFtdcMarketIDType marketID; //2 г + TThostFtdcOrderStatusType status; //14 ί״̬ }; /// @@ -313,7 +251,6 @@ struct CThostFtdcOrderActionField ///ɽ struct CThostFtdcTradeField { - TThostFtdcOrderNoType orderNo; //1 ϵͳ TThostFtdcMatchNoType matchNo; //2 ɽ TThostFtdcInstrumentIDType instID; //3 Լ @@ -330,10 +267,8 @@ struct CThostFtdcTradeField TThostFtdcMarketIDType marketID; //15 г TThostFtdcMoneyType trade_fee; //16 TThostFtdcByteType forceoffset_flag; //17 ǿƽ־ - TThostFtdcVolumeType forcebatchnum ; //18 ǿƽκ - TThostFtdcTradeWayType tradeWay; //19 ־ - - + TThostFtdcVolumeType forcebatchnum ; //18 ǿƽκ + TThostFtdcTradeWayType tradeWay; //־ }; ///ѯԼ @@ -349,17 +284,10 @@ struct CThostFtdcQryInstrumentField ///ѯɽ struct CThostFtdcQryTradeField { + TThostFtdcMatchNoType matchNo; //ɽ TThostFtdcInstrumentIDType instID; //Լ TThostFtdcMarketIDType marketID; //г - TThostFtdcOrderNoType orderNo; // - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcMatchNoType matchNo; //ɽ - TThostFtdcExchangeIDType exchangeID; //(wph) - TThostFtdcOrderRefType localOrderNo; //ر - TThostFtdcTraderIDType traderID; //Ա(wph) - - + TThostFtdcOrderRefType localOrderNo; //ر }; @@ -368,16 +296,7 @@ struct CThostFtdcQryOrderField { TThostFtdcInstrumentIDType instID; //Լ TThostFtdcMarketIDType marketID; //г - TThostFtdcOrderNoType orderNo; // - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcOffsetFlagType offsetFlag; //ƽ־ - TThostFtdcTraderIDType traderID; //Ա(wph) - TThostFtdcOrderStatusType status; //״̬ - TThostFtdcExchangeIDType exchangeID; //(wph) - TThostFtdcOrderRefType localOrderNo; //ر - - + TThostFtdcOrderRefType localOrderNo; //ر }; @@ -386,21 +305,15 @@ struct CThostFtdcQryOrderField ///ѯͶֲ߳ struct CThostFtdcQryInvestorPositionField { - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcMarketIDType marketID; //г - TThostFtdcInstrumentIDType instID; //Լ - TThostFtdcTraderIDType traderID; //Ա(wph) - + TThostFtdcMarketIDType marketID; //г + TThostFtdcInstrumentIDType instID; //Լ }; ///ѯ struct CThostFtdcQryStorageField { - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcTraderIDType traderID; //Ա(wph) + TThostFtdcVarietyIDType varietyID; //Ʒִ }; //Ӧ @@ -422,20 +335,18 @@ struct CThostFtdcStorageField TThostFtdcWeightType lawFrozen; //17 ɶ TThostFtdcWeightType bankFrozen; //18 ж TThostFtdcByteType customType; //19 ͻ - TThostFtdcWeightType storageCost; //20 ɱ + TThostFtdcWeightType storageCost; //20 ɱ TThostFtdcWeightType impawnFrozen ; //22 Ѻ }; - -//г״̬ //г״̬ struct CThostFtdcMarketStatusField { TThostFtdcMktStatusType MktStatus; /*г״̬*/ TThostFtdcMarketIDType marketID ; /*г*/ - TThostFtdcExchCodeType ExchCode; /**/ - TThostFtdcMktChgTimeType MktChgTime; /*״̬ʱ*/ + //TThostFtdcExchCodeType ExchCode; /**/ + //TThostFtdcMktChgTimeType MktChgTime; /*״̬ʱ*/ }; ///ָĺԼ diff --git a/vn.ksgold/ksgoldapi/goldtradeapi.dll b/vn.ksgold/ksgoldapi/goldtradeapi.dll index 6112e85e..08026d07 100644 Binary files a/vn.ksgold/ksgoldapi/goldtradeapi.dll and b/vn.ksgold/ksgoldapi/goldtradeapi.dll differ diff --git a/vn.ksgold/ksgoldapi/goldtradeapi.lib b/vn.ksgold/ksgoldapi/goldtradeapi.lib index f6efeeb3..abb3f415 100644 Binary files a/vn.ksgold/ksgoldapi/goldtradeapi.lib and b/vn.ksgold/ksgoldapi/goldtradeapi.lib differ diff --git a/vn.ksgold/ksgoldapi/old/goldtradeapi.dll b/vn.ksgold/ksgoldapi/old/goldtradeapi.dll new file mode 100644 index 00000000..82b3c48b Binary files /dev/null and b/vn.ksgold/ksgoldapi/old/goldtradeapi.dll differ diff --git a/vn.ksgold/ksgoldapi/old/goldtradeapi.lib b/vn.ksgold/ksgoldapi/old/goldtradeapi.lib new file mode 100644 index 00000000..04975ea4 Binary files /dev/null and b/vn.ksgold/ksgoldapi/old/goldtradeapi.lib differ diff --git a/vn.ksgold/pyscript/GoldTradeApi.h b/vn.ksgold/pyscript/GoldTradeApi.h index b078b818..b91cbace 100644 --- a/vn.ksgold/pyscript/GoldTradeApi.h +++ b/vn.ksgold/pyscript/GoldTradeApi.h @@ -18,6 +18,7 @@ class CGoldTradeSpi //صӿ { public: + virtual ~CGoldTradeSpi(){}; //ӽ֪ͨ virtual void OnFrontConnected(){}; @@ -48,7 +49,7 @@ class CGoldTradeSpi // virtual void OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo) {}; ///֪ͨ - virtual void OnRtnOrder(CThostFtdcOrderField *pOrder) {}; + virtual void OnRtnOrder(CThostFtdcOrderRtnField *pOrder) {}; //ǿ֪ͨ virtual void OnForceLogout(CThostFtdcUserLogoutField *pLogout) {}; diff --git a/vn.ksgold/pyscript/KSUserApiStructEx.h b/vn.ksgold/pyscript/KSUserApiStructEx.h index 4dd035d5..29efa846 100644 --- a/vn.ksgold/pyscript/KSUserApiStructEx.h +++ b/vn.ksgold/pyscript/KSUserApiStructEx.h @@ -20,63 +20,26 @@ struct CThostFtdcReqUserLoginField TThostFtdcMemberIDType memberID; //Ա TThostFtdcPasswordType password; // TThostFtdcDateType tradeDate; // - TThostFtdcIPAddressType ipGatewayAddress; //ڵIP - TThostFtdcServerPortType portGateway; //ö˿ - TThostFtdcOrderRefType localOrderNo; //󱾵ر - TThostFtdcMachineIDType machineID; //ǰû - TThostFtdcLoginBatchType loginbatch; //¼ - TThostFtdcCSRCInvestorNameType clientName; //ͻ - TThostFtdcIPAddressType lastLoginIp; //ϴε¼IPַ - TThostFtdcDateType lastLoginDate; //ϴε¼ - TThostFtdcTimeType lastLoginTime; //ϴε¼ʱ - TThostFtdcGateWayCurLinkNumType gateWayCurLinkNum; //صǰ - TThostFtdcGateWayYYBDBType gateWayYYBDB; //صӪҵ - TThostFtdcObligateType obligate; //Ԥֶ - TThostFtdcMSGType msg; //Ϣ }; ///û¼Ӧ struct CThostFtdcRspUserLoginField { - TThostFtdcTraderIDType traderID; //Ա - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcPasswordType password; // TThostFtdcDateType tradeDate; // - TThostFtdcIPAddressType ipAddress; //IPַ - TThostFtdcOrderRefType localOrderNo; //󱾵ر - TThostFtdcMachineIDType machineID; //ǰû - TThostFtdcLoginBatchType loginbatch; //¼ - TThostFtdcCSRCInvestorNameType clientName; //ͻ + TThostFtdcOrderRefType localOrderNo; //󱾵ر + TThostFtdcLoginBatchType loginbatch; //¼ + TThostFtdcClientIDType tradeCode; //ױ + TThostFtdcClientIDType clientID; //ͻ + TThostFtdcSeatIDType SeatNo ; //ϯλ + TThostFtdcCSRCInvestorNameType clientName; //ͻ TThostFtdcIPAddressType lastLoginIp; //ϴε¼IPַ TThostFtdcDateType lastLoginDate; //ϴε¼ TThostFtdcTimeType lastLoginTime; //ϴε¼ʱ - TThostFtdcGateWayCurLinkNumType gateWayCurLinkNum; //صǰ - TThostFtdcGateWayYYBDBType gateWayYYBDB; //صӪҵ - TThostFtdcObligateType obligate; //Ԥֶ - TThostFtdcMSGType msg; //Ϣ - TThostFtdcSeatIDType SeatNo ; //ϯλ - TThostFtdcClientIDType tradeCode; //ױ - TThostFtdcClientIDType clientID; //ͻ }; ///ûdz struct CThostFtdcUserLogoutField { - TThostFtdcTraderIDType traderID; //Ա - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcPasswordType password; // - TThostFtdcDateType tradeDate; // - TThostFtdcIPAddressType ipAddress; //IPַ - TThostFtdcOrderRefType localOrderNo; //󱾵ر - TThostFtdcMachineIDType machineID; //ǰû - TThostFtdcLoginBatchType loginbatch; //¼ - TThostFtdcCSRCInvestorNameType clientName; //ͻ - TThostFtdcIPAddressType lastLoginIp; //ϴε¼IPַ - TThostFtdcDateType lastLoginDate; //ϴε¼ - TThostFtdcTimeType lastLoginTime; //ϴε¼ʱ - TThostFtdcGateWayCurLinkNumType gateWayCurLinkNum; //صǰ - TThostFtdcGateWayYYBDBType gateWayYYBDB; //صӪҵ - TThostFtdcObligateType obligate; //Ԥֶ - TThostFtdcMSGType msg; //Ϣ + TThostFtdcTraderIDType traderID; //ͻ }; @@ -105,11 +68,7 @@ struct CThostFtdcInstrumentField //ѯʽ˻ struct CThostFtdcQryTradingAccountField { - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcAccountType accountType; //ʻ - TThostFtdcTraderIDType traderID; //Ա - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMarketIDType marketID; //г + TThostFtdcMSGType remian; //ֶ }; ///ʽ˻ @@ -136,7 +95,6 @@ struct CThostFtdcTradingAccountField ///Ͷֲ߳ struct CThostFtdcInvestorPositionField { - TThostFtdcClientIDType clientID; //1 ͻ TThostFtdcInstrumentIDType instID; //4 Լ TThostFtdcVolumeType longPosi; //5 ֲ TThostFtdcPriceType longPosiAvgPrice; //6 ־ @@ -191,14 +149,14 @@ struct CThostFtdcDepthMarketDataField TThostFtdcVolumeType BidLot3 ; /**< */ TThostFtdcPriceType Ask3 ; /**< */ TThostFtdcVolumeType AskLot3 ; /**< */ - TThostFtdcPriceType Bid4 ; /**< */ - TThostFtdcVolumeType BidLot4 ; /**< */ - TThostFtdcPriceType Ask4 ; /**< */ - TThostFtdcVolumeType AskLot4 ; /**< */ - TThostFtdcPriceType Bid5 ; /**< */ - TThostFtdcVolumeType BidLot5 ; /**< */ - TThostFtdcPriceType Ask5 ; /**< */ - TThostFtdcVolumeType AskLot5 ; /**< */ + TThostFtdcPriceType Bid4 ; /**< */ + TThostFtdcVolumeType BidLot4 ; /**< */ + TThostFtdcPriceType Ask4 ; /**< */ + TThostFtdcVolumeType AskLot4 ; /**< */ + TThostFtdcPriceType Bid5 ; /**< */ + TThostFtdcVolumeType BidLot5 ; /**< */ + TThostFtdcPriceType Ask5 ; /**< */ + TThostFtdcVolumeType AskLot5 ; /**< */ TThostFtdcVolumeType Volume ; /**<ɽ˫ߣ */ TThostFtdcVolumeType OpenInt ; /**<ֲ˫ߣ */ TThostFtdcPriceType UpDown ; /**<ǵ */ @@ -218,37 +176,23 @@ struct CThostFtdcDepthMarketDataField struct CThostFtdcInputOrderField { TThostFtdcSeatIDType seatID; //2 ϯλ - TThostFtdcClientIDType clientID; //3 ױ - TThostFtdcExchangeIDType exchangeID; //4 + TThostFtdcClientIDType tradeCode; //3 ױ TThostFtdcInstrumentIDType instID; //5 Ʒִ - TThostFtdcBsFlagType buyOrSell; //6 + TThostFtdcBsFlagType buyOrSell; //6 TThostFtdcOffsetFlagType offsetFlag; //7 ƽ־ TThostFtdcVolumeType amount; //8 ί - TThostFtdcWeightType weight; //10 ί Ϊ0 - TThostFtdcByteType middleFlag; //9 ֱ־ Ϊ0 - TThostFtdcByteType orderFlag; //10 ίб־ + TThostFtdcByteType middleFlag; //9 ֱ־ Ϊ0 TThostFtdcByteType priceFlag; //11 ίм۸ TThostFtdcPriceType price; //12 Ԥίм۸ TThostFtdcPriceType trigPrice; //13 Ԥίд۸ TThostFtdcMarketIDType marketID; //14 г - TThostFtdcDateType validDate; //15 Ч - TThostFtdcOrderNoType orderNo; //1 ϵͳ - TThostFtdcOrderRefType LocalOrderNo;//ر - TThostFtdcVolumeType matchQty; //12 ɽ - TThostFtdcWeightType matchWeight; //13 ɽ - TThostFtdcOrderStatusType status; //14 ί״̬ - TThostFtdcTimeType entrustTime; //15 ίʱ - TThostFtdcByteType forceoffset_flag; //16 ǿƽ־ - TThostFtdcVolumeType cancelQty; //17 - TThostFtdcTimeType cancelTime; //18ʱ - TThostFtdcVolumnCheck volumnCheck; //־ - TThostFtdcTradeWayType tradeWay; //19 + TThostFtdcOrderRefType LocalOrderNo; // ر + TThostFtdcTradeWayType tradeWay; //19 }; /// struct CThostFtdcOrderField { - TThostFtdcOrderNoType orderNo; //1 ϵͳ TThostFtdcOrderRefType localOrderNo;; //2 ر TThostFtdcMarketIDType marketID; //4 г @@ -268,15 +212,22 @@ struct CThostFtdcOrderField TThostFtdcTradeWayType tradeWay; //19 }; +///ر +struct CThostFtdcOrderRtnField +{ + TThostFtdcOrderNoType orderNo; //1 ϵͳ + TThostFtdcOrderRefType localOrderNo;; //2 ر + TThostFtdcOrderStatusType status; //14 ί״̬ + TThostFtdcVolumeType cancelQty; //17 +}; + ///뱨(cancel order) struct CThostFtdcInputOrderActionField { - TThostFtdcOrderRefType localOrderNo; //1 ر - TThostFtdcByteType orderFlag; //2 ίб־ - TThostFtdcMarketIDType marketID; //3 г - TThostFtdcTraderIDType traderID; //6 Ա - TThostFtdcTradeWayType tradeWay; //7 ί д"5" + TThostFtdcOrderRefType localOrderNo; //1 ر + TThostFtdcMarketIDType marketID; //2 г + TThostFtdcOrderStatusType status; //14 ί״̬ }; /// @@ -291,7 +242,6 @@ struct CThostFtdcOrderActionField ///ɽ struct CThostFtdcTradeField { - TThostFtdcOrderNoType orderNo; //1 ϵͳ TThostFtdcMatchNoType matchNo; //2 ɽ TThostFtdcInstrumentIDType instID; //3 Լ @@ -308,8 +258,8 @@ struct CThostFtdcTradeField TThostFtdcMarketIDType marketID; //15 г TThostFtdcMoneyType trade_fee; //16 TThostFtdcByteType forceoffset_flag; //17 ǿƽ־ - TThostFtdcVolumeType forcebatchnum ; //18 ǿƽκ - TThostFtdcTradeWayType tradeWay; //19 ־ + TThostFtdcVolumeType forcebatchnum ; //18 ǿƽκ + TThostFtdcTradeWayType tradeWay; //־ }; ///ѯԼ @@ -323,15 +273,10 @@ struct CThostFtdcQryInstrumentField ///ѯɽ struct CThostFtdcQryTradeField { + TThostFtdcMatchNoType matchNo; //ɽ TThostFtdcInstrumentIDType instID; //Լ TThostFtdcMarketIDType marketID; //г - TThostFtdcOrderNoType orderNo; // - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcMatchNoType matchNo; //ɽ - TThostFtdcExchangeIDType exchangeID; //(wph) - TThostFtdcOrderRefType localOrderNo; //ر - TThostFtdcTraderIDType traderID; //Ա(wph) + TThostFtdcOrderRefType localOrderNo; //ر }; @@ -340,14 +285,7 @@ struct CThostFtdcQryOrderField { TThostFtdcInstrumentIDType instID; //Լ TThostFtdcMarketIDType marketID; //г - TThostFtdcOrderNoType orderNo; // - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcOffsetFlagType offsetFlag; //ƽ־ - TThostFtdcTraderIDType traderID; //Ա(wph) - TThostFtdcOrderStatusType status; //״̬ - TThostFtdcExchangeIDType exchangeID; //(wph) - TThostFtdcOrderRefType localOrderNo; //ر + TThostFtdcOrderRefType localOrderNo; //ر }; @@ -356,20 +294,15 @@ struct CThostFtdcQryOrderField ///ѯͶֲ߳ struct CThostFtdcQryInvestorPositionField { - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcMarketIDType marketID; //г - TThostFtdcInstrumentIDType instID; //Լ - TThostFtdcTraderIDType traderID; //Ա(wph) + TThostFtdcMarketIDType marketID; //г + TThostFtdcInstrumentIDType instID; //Լ }; ///ѯ struct CThostFtdcQryStorageField { - TThostFtdcClientIDType clientID; //ͻ - TThostFtdcMemberIDType memberID; //Ա - TThostFtdcTraderIDType traderID; //Ա(wph) + TThostFtdcVarietyIDType varietyID; //Ʒִ }; //Ӧ @@ -391,19 +324,15 @@ struct CThostFtdcStorageField TThostFtdcWeightType lawFrozen; //17 ɶ TThostFtdcWeightType bankFrozen; //18 ж TThostFtdcByteType customType; //19 ͻ - TThostFtdcWeightType storageCost; //20 ɱ - TThostFtdcWeightType impawnFrozen ; //22 Ѻ + TThostFtdcWeightType storageCost; //20 ɱ + TThostFtdcWeightType impawnFrozen; //22 Ѻ }; - -//г״̬ //г״̬ struct CThostFtdcMarketStatusField { TThostFtdcMktStatusType MktStatus; /*г״̬*/ - TThostFtdcMarketIDType marketID ; /*г*/ - TThostFtdcExchCodeType ExchCode; /**/ - TThostFtdcMktChgTimeType MktChgTime; /*״̬ʱ*/ + TThostFtdcMarketIDType marketID; /*г*/ }; ///ָĺԼ struct CThostFtdcSpecificInstrumentField diff --git a/vn.ksgold/pyscript/ksgold_struct.py b/vn.ksgold/pyscript/ksgold_struct.py index 60d722a8..6e606632 100644 --- a/vn.ksgold/pyscript/ksgold_struct.py +++ b/vn.ksgold/pyscript/ksgold_struct.py @@ -22,63 +22,26 @@ CThostFtdcReqUserLoginField["loginType"] = "int" CThostFtdcReqUserLoginField["memberID"] = "string" CThostFtdcReqUserLoginField["password"] = "string" CThostFtdcReqUserLoginField["tradeDate"] = "string" -CThostFtdcReqUserLoginField["ipGatewayAddress"] = "string" -CThostFtdcReqUserLoginField["portGateway"] = "int" -CThostFtdcReqUserLoginField["localOrderNo"] = "string" -CThostFtdcReqUserLoginField["machineID"] = "int" -CThostFtdcReqUserLoginField["loginbatch"] = "int" -CThostFtdcReqUserLoginField["clientName"] = "string" -CThostFtdcReqUserLoginField["lastLoginIp"] = "string" -CThostFtdcReqUserLoginField["lastLoginDate"] = "string" -CThostFtdcReqUserLoginField["lastLoginTime"] = "string" -CThostFtdcReqUserLoginField["gateWayCurLinkNum"] = "int" -CThostFtdcReqUserLoginField["gateWayYYBDB"] = "string" -CThostFtdcReqUserLoginField["obligate"] = "string" -CThostFtdcReqUserLoginField["msg"] = "string" structDict['CThostFtdcReqUserLoginField'] = CThostFtdcReqUserLoginField #用户登录应答 CThostFtdcRspUserLoginField = {} -CThostFtdcRspUserLoginField["traderID"] = "string" -CThostFtdcRspUserLoginField["memberID"] = "string" -CThostFtdcRspUserLoginField["password"] = "string" CThostFtdcRspUserLoginField["tradeDate"] = "string" -CThostFtdcRspUserLoginField["ipAddress"] = "string" CThostFtdcRspUserLoginField["localOrderNo"] = "string" -CThostFtdcRspUserLoginField["machineID"] = "int" CThostFtdcRspUserLoginField["loginbatch"] = "int" +CThostFtdcRspUserLoginField["tradeCode"] = "string" +CThostFtdcRspUserLoginField["clientID"] = "string" +CThostFtdcRspUserLoginField["SeatNo"] = "string" CThostFtdcRspUserLoginField["clientName"] = "string" CThostFtdcRspUserLoginField["lastLoginIp"] = "string" CThostFtdcRspUserLoginField["lastLoginDate"] = "string" CThostFtdcRspUserLoginField["lastLoginTime"] = "string" -CThostFtdcRspUserLoginField["gateWayCurLinkNum"] = "int" -CThostFtdcRspUserLoginField["gateWayYYBDB"] = "string" -CThostFtdcRspUserLoginField["obligate"] = "string" -CThostFtdcRspUserLoginField["msg"] = "string" -CThostFtdcRspUserLoginField["SeatNo"] = "string" -CThostFtdcRspUserLoginField["tradeCode"] = "string" -CThostFtdcRspUserLoginField["clientID"] = "string" structDict['CThostFtdcRspUserLoginField'] = CThostFtdcRspUserLoginField #用户登出请求 CThostFtdcUserLogoutField = {} CThostFtdcUserLogoutField["traderID"] = "string" -CThostFtdcUserLogoutField["memberID"] = "string" -CThostFtdcUserLogoutField["password"] = "string" -CThostFtdcUserLogoutField["tradeDate"] = "string" -CThostFtdcUserLogoutField["ipAddress"] = "string" -CThostFtdcUserLogoutField["localOrderNo"] = "string" -CThostFtdcUserLogoutField["machineID"] = "int" -CThostFtdcUserLogoutField["loginbatch"] = "int" -CThostFtdcUserLogoutField["clientName"] = "string" -CThostFtdcUserLogoutField["lastLoginIp"] = "string" -CThostFtdcUserLogoutField["lastLoginDate"] = "string" -CThostFtdcUserLogoutField["lastLoginTime"] = "string" -CThostFtdcUserLogoutField["gateWayCurLinkNum"] = "int" -CThostFtdcUserLogoutField["gateWayYYBDB"] = "string" -CThostFtdcUserLogoutField["obligate"] = "string" -CThostFtdcUserLogoutField["msg"] = "string" structDict['CThostFtdcUserLogoutField'] = CThostFtdcUserLogoutField @@ -107,11 +70,7 @@ structDict['CThostFtdcInstrumentField'] = CThostFtdcInstrumentField CThostFtdcQryTradingAccountField = {} -CThostFtdcQryTradingAccountField["memberID"] = "string" -CThostFtdcQryTradingAccountField["accountType"] = "string" -CThostFtdcQryTradingAccountField["traderID"] = "string" -CThostFtdcQryTradingAccountField["clientID"] = "string" -CThostFtdcQryTradingAccountField["marketID"] = "string" +CThostFtdcQryTradingAccountField["remian"] = "string" structDict['CThostFtdcQryTradingAccountField'] = CThostFtdcQryTradingAccountField @@ -138,7 +97,6 @@ structDict['CThostFtdcTradingAccountField'] = CThostFtdcTradingAccountField #投资者持仓 CThostFtdcInvestorPositionField = {} -CThostFtdcInvestorPositionField["clientID"] = "string" CThostFtdcInvestorPositionField["instID"] = "string" CThostFtdcInvestorPositionField["longPosi"] = "int" CThostFtdcInvestorPositionField["longPosiAvgPrice"] = "float" @@ -220,37 +178,23 @@ structDict['CThostFtdcDepthMarketDataField'] = CThostFtdcDepthMarketDataField #输入报单 CThostFtdcInputOrderField = {} CThostFtdcInputOrderField["seatID"] = "string" -CThostFtdcInputOrderField["clientID"] = "string" -CThostFtdcInputOrderField["exchangeID"] = "string" +CThostFtdcInputOrderField["tradeCode"] = "string" CThostFtdcInputOrderField["instID"] = "string" CThostFtdcInputOrderField["buyOrSell"] = "string" CThostFtdcInputOrderField["offsetFlag"] = "string" CThostFtdcInputOrderField["amount"] = "int" -CThostFtdcInputOrderField["weight"] = "float" CThostFtdcInputOrderField["middleFlag"] = "string" -CThostFtdcInputOrderField["orderFlag"] = "string" CThostFtdcInputOrderField["priceFlag"] = "string" CThostFtdcInputOrderField["price"] = "float" CThostFtdcInputOrderField["trigPrice"] = "float" CThostFtdcInputOrderField["marketID"] = "string" -CThostFtdcInputOrderField["validDate"] = "string" -CThostFtdcInputOrderField["orderNo"] = "string" CThostFtdcInputOrderField["LocalOrderNo"] = "string" -CThostFtdcInputOrderField["matchQty"] = "int" -CThostFtdcInputOrderField["matchWeight"] = "float" -CThostFtdcInputOrderField["status"] = "string" -CThostFtdcInputOrderField["entrustTime"] = "string" -CThostFtdcInputOrderField["forceoffset_flag"] = "string" -CThostFtdcInputOrderField["cancelQty"] = "int" -CThostFtdcInputOrderField["cancelTime"] = "string" -CThostFtdcInputOrderField["volumnCheck"] = "int" CThostFtdcInputOrderField["tradeWay"] = "string" structDict['CThostFtdcInputOrderField'] = CThostFtdcInputOrderField #报单 CThostFtdcOrderField = {} - CThostFtdcOrderField["orderNo"] = "string" CThostFtdcOrderField["localOrderNo"] = "string" CThostFtdcOrderField["marketID"] = "string" @@ -271,14 +215,21 @@ CThostFtdcOrderField["tradeWay"] = "string" structDict['CThostFtdcOrderField'] = CThostFtdcOrderField +#报单撤单回报 +CThostFtdcOrderRtnField = {} +CThostFtdcOrderRtnField["orderNo"] = "string" +CThostFtdcOrderRtnField["localOrderNo"] = "string" +CThostFtdcOrderRtnField["status"] = "string" +CThostFtdcOrderRtnField["cancelQty"] = "int" +structDict['CThostFtdcOrderRtnField'] = CThostFtdcOrderRtnField + + #输入报单操作(cancel order) CThostFtdcInputOrderActionField = {} CThostFtdcInputOrderActionField["localOrderNo"] = "string" -CThostFtdcInputOrderActionField["orderFlag"] = "string" CThostFtdcInputOrderActionField["marketID"] = "string" -CThostFtdcInputOrderActionField["traderID"] = "string" -CThostFtdcInputOrderActionField["tradeWay"] = "string" +CThostFtdcInputOrderActionField["status"] = "string" structDict['CThostFtdcInputOrderActionField'] = CThostFtdcInputOrderActionField @@ -293,7 +244,6 @@ structDict['CThostFtdcOrderActionField'] = CThostFtdcOrderActionField #成交 CThostFtdcTradeField = {} - CThostFtdcTradeField["orderNo"] = "string" CThostFtdcTradeField["matchNo"] = "string" CThostFtdcTradeField["instID"] = "string" @@ -325,15 +275,10 @@ structDict['CThostFtdcQryInstrumentField'] = CThostFtdcQryInstrumentField #查询成交 CThostFtdcQryTradeField = {} +CThostFtdcQryTradeField["matchNo"] = "string" CThostFtdcQryTradeField["instID"] = "string" CThostFtdcQryTradeField["marketID"] = "string" -CThostFtdcQryTradeField["orderNo"] = "string" -CThostFtdcQryTradeField["clientID"] = "string" -CThostFtdcQryTradeField["memberID"] = "string" -CThostFtdcQryTradeField["matchNo"] = "string" -CThostFtdcQryTradeField["exchangeID"] = "string" CThostFtdcQryTradeField["localOrderNo"] = "string" -CThostFtdcQryTradeField["traderID"] = "string" structDict['CThostFtdcQryTradeField'] = CThostFtdcQryTradeField @@ -342,13 +287,6 @@ structDict['CThostFtdcQryTradeField'] = CThostFtdcQryTradeField CThostFtdcQryOrderField = {} CThostFtdcQryOrderField["instID"] = "string" CThostFtdcQryOrderField["marketID"] = "string" -CThostFtdcQryOrderField["orderNo"] = "string" -CThostFtdcQryOrderField["clientID"] = "string" -CThostFtdcQryOrderField["memberID"] = "string" -CThostFtdcQryOrderField["offsetFlag"] = "string" -CThostFtdcQryOrderField["traderID"] = "string" -CThostFtdcQryOrderField["status"] = "string" -CThostFtdcQryOrderField["exchangeID"] = "string" CThostFtdcQryOrderField["localOrderNo"] = "string" structDict['CThostFtdcQryOrderField'] = CThostFtdcQryOrderField @@ -358,20 +296,15 @@ structDict['CThostFtdcQryOrderField'] = CThostFtdcQryOrderField #查询投资者持仓 CThostFtdcQryInvestorPositionField = {} -CThostFtdcQryInvestorPositionField["clientID"] = "string" -CThostFtdcQryInvestorPositionField["memberID"] = "string" CThostFtdcQryInvestorPositionField["marketID"] = "string" CThostFtdcQryInvestorPositionField["instID"] = "string" -CThostFtdcQryInvestorPositionField["traderID"] = "string" structDict['CThostFtdcQryInvestorPositionField'] = CThostFtdcQryInvestorPositionField #查询库存 CThostFtdcQryStorageField = {} -CThostFtdcQryStorageField["clientID"] = "string" -CThostFtdcQryStorageField["memberID"] = "string" -CThostFtdcQryStorageField["traderID"] = "string" +CThostFtdcQryStorageField["varietyID"] = "string" structDict['CThostFtdcQryStorageField'] = CThostFtdcQryStorageField @@ -399,13 +332,9 @@ structDict['CThostFtdcStorageField'] = CThostFtdcStorageField - - CThostFtdcMarketStatusField = {} CThostFtdcMarketStatusField["MktStatus"] = "string" CThostFtdcMarketStatusField["marketID"] = "string" -CThostFtdcMarketStatusField["ExchCode"] = "string" -CThostFtdcMarketStatusField["MktChgTime"] = "string" structDict['CThostFtdcMarketStatusField'] = CThostFtdcMarketStatusField #指定的合约 diff --git a/vn.ksgold/pyscript/ksgold_td_function.cpp b/vn.ksgold/pyscript/ksgold_td_function.cpp index 7d1e1a77..01c403ff 100644 --- a/vn.ksgold/pyscript/ksgold_td_function.cpp +++ b/vn.ksgold/pyscript/ksgold_td_function.cpp @@ -2,23 +2,10 @@ int TdApi::reqUserLogin(dict req, int nRequestID) { CThostFtdcReqUserLoginField myreq = CThostFtdcReqUserLoginField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "lastLoginTime", myreq.lastLoginTime); + getChar(req, "password", myreq.password); getChar(req, "tradeDate", myreq.tradeDate); - getChar(req, "ipGatewayAddress", myreq.ipGatewayAddress); - getChar(req, "localOrderNo", myreq.localOrderNo); - getInt(req, "loginbatch", &myreq.loginbatch); getChar(req, "memberID", myreq.memberID); getInt(req, "loginType", &myreq.loginType); - getInt(req, "portGateway", &myreq.portGateway); - getChar(req, "obligate", myreq.obligate); - getInt(req, "gateWayCurLinkNum", &myreq.gateWayCurLinkNum); - getChar(req, "lastLoginDate", myreq.lastLoginDate); - getInt(req, "machineID", &myreq.machineID); - getChar(req, "msg", myreq.msg); - getChar(req, "lastLoginIp", myreq.lastLoginIp); - getChar(req, "password", myreq.password); - getChar(req, "gateWayYYBDB", myreq.gateWayYYBDB); - getChar(req, "clientName", myreq.clientName); getChar(req, "accountID", myreq.accountID); int i = this->api->ReqUserLogin(&myreq, nRequestID); return i; @@ -28,22 +15,7 @@ int TdApi::reqUserLogout(dict req, int nRequestID) { CThostFtdcUserLogoutField myreq = CThostFtdcUserLogoutField(); memset(&myreq, 0, sizeof(myreq)); - getInt(req, "loginbatch", &myreq.loginbatch); - getChar(req, "gateWayYYBDB", myreq.gateWayYYBDB); - getChar(req, "tradeDate", myreq.tradeDate); - getInt(req, "machineID", &myreq.machineID); - getChar(req, "localOrderNo", myreq.localOrderNo); getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "obligate", myreq.obligate); - getInt(req, "gateWayCurLinkNum", &myreq.gateWayCurLinkNum); - getChar(req, "lastLoginDate", myreq.lastLoginDate); - getChar(req, "lastLoginTime", myreq.lastLoginTime); - getChar(req, "msg", myreq.msg); - getChar(req, "lastLoginIp", myreq.lastLoginIp); - getChar(req, "password", myreq.password); - getChar(req, "ipAddress", myreq.ipAddress); - getChar(req, "clientName", myreq.clientName); int i = this->api->ReqUserLogout(&myreq, nRequestID); return i; }; @@ -63,31 +35,18 @@ int TdApi::reqOrderInsert(dict req, int nRequestID) CThostFtdcInputOrderField myreq = CThostFtdcInputOrderField(); memset(&myreq, 0, sizeof(myreq)); getChar(req, "offsetFlag", myreq.offsetFlag); - getChar(req, "offsetFlag", myreq.offsetFlag); - getChar(req, "entrustTime", myreq.entrustTime); - getChar(req, "LocalOrderNo", myreq.LocalOrderNo); - getChar(req, "marketID", myreq.marketID); - getChar(req, "orderNo", myreq.orderNo); - getChar(req, "tradeWay", myreq.tradeWay); getChar(req, "buyOrSell", myreq.buyOrSell); + getChar(req, "middleFlag", myreq.middleFlag); + getChar(req, "tradeCode", myreq.tradeCode); getChar(req, "instID", myreq.instID); + getChar(req, "instID", myreq.instID); + getChar(req, "marketID", myreq.marketID); + getChar(req, "marketID", myreq.marketID); + getInt(req, "amount", &myreq.amount); getChar(req, "seatID", myreq.seatID); - getChar(req, "status", myreq.status); - getChar(req, "cancelTime", myreq.cancelTime); - getChar(req, "middleFlag", myreq.middleFlag); - getChar(req, "middleFlag", myreq.middleFlag); - getChar(req, "validDate", myreq.validDate); - getInt(req, "matchQty", &myreq.matchQty); - getChar(req, "clientID", myreq.clientID); - getChar(req, "clientID", myreq.clientID); - getChar(req, "forceoffset_flag", myreq.forceoffset_flag); - getChar(req, "orderFlag", myreq.orderFlag); - getInt(req, "volumnCheck", &myreq.volumnCheck); - getInt(req, "cancelQty", &myreq.cancelQty); getChar(req, "priceFlag", myreq.priceFlag); - getChar(req, "exchangeID", myreq.exchangeID); - getInt(req, "amount", &myreq.amount); - getInt(req, "amount", &myreq.amount); + getChar(req, "LocalOrderNo", myreq.LocalOrderNo); + getChar(req, "tradeWay", myreq.tradeWay); int i = this->api->ReqOrderInsert(&myreq, nRequestID); return i; }; @@ -96,11 +55,9 @@ int TdApi::reqOrderAction(dict req, int nRequestID) { CThostFtdcInputOrderActionField myreq = CThostFtdcInputOrderActionField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "tradeWay", myreq.tradeWay); + getChar(req, "status", myreq.status); getChar(req, "localOrderNo", myreq.localOrderNo); getChar(req, "marketID", myreq.marketID); - getChar(req, "traderID", myreq.traderID); - getChar(req, "orderFlag", myreq.orderFlag); int i = this->api->ReqOrderAction(&myreq, nRequestID); return i; }; @@ -110,9 +67,6 @@ int TdApi::reqQryInvestorPosition(dict req, int nRequestID) CThostFtdcQryInvestorPositionField myreq = CThostFtdcQryInvestorPositionField(); memset(&myreq, 0, sizeof(myreq)); getChar(req, "instID", myreq.instID); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); getChar(req, "marketID", myreq.marketID); int i = this->api->ReqQryInvestorPosition(&myreq, nRequestID); return i; @@ -122,11 +76,7 @@ int TdApi::reqQryTradingAccount(dict req, int nRequestID) { CThostFtdcQryTradingAccountField myreq = CThostFtdcQryTradingAccountField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "clientID", myreq.clientID); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "accountType", myreq.accountType); - getChar(req, "marketID", myreq.marketID); + getChar(req, "remian", myreq.remian); int i = this->api->ReqQryTradingAccount(&myreq, nRequestID); return i; }; @@ -135,15 +85,10 @@ int TdApi::reqQryTrade(dict req, int nRequestID) { CThostFtdcQryTradeField myreq = CThostFtdcQryTradeField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "exchangeID", myreq.exchangeID); getChar(req, "instID", myreq.instID); getChar(req, "localOrderNo", myreq.localOrderNo); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); - getChar(req, "marketID", myreq.marketID); getChar(req, "matchNo", myreq.matchNo); - getChar(req, "orderNo", myreq.orderNo); + getChar(req, "marketID", myreq.marketID); int i = this->api->ReqQryTrade(&myreq, nRequestID); return i; }; @@ -152,16 +97,9 @@ int TdApi::reqQryOrder(dict req, int nRequestID) { CThostFtdcQryOrderField myreq = CThostFtdcQryOrderField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "status", myreq.status); - getChar(req, "exchangeID", myreq.exchangeID); - getChar(req, "offsetFlag", myreq.offsetFlag); getChar(req, "instID", myreq.instID); getChar(req, "localOrderNo", myreq.localOrderNo); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); getChar(req, "marketID", myreq.marketID); - getChar(req, "orderNo", myreq.orderNo); int i = this->api->ReqQryOrder(&myreq, nRequestID); return i; }; @@ -170,9 +108,7 @@ int TdApi::reqQryStorage(dict req, int nRequestID) { CThostFtdcQryStorageField myreq = CThostFtdcQryStorageField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); + getChar(req, "varietyID", myreq.varietyID); int i = this->api->ReqQryStorage(&myreq, nRequestID); return i; }; diff --git a/vn.ksgold/pyscript/ksgold_td_process.cpp b/vn.ksgold/pyscript/ksgold_td_process.cpp index 423aef13..5c3acf61 100644 --- a/vn.ksgold/pyscript/ksgold_td_process.cpp +++ b/vn.ksgold/pyscript/ksgold_td_process.cpp @@ -15,24 +15,15 @@ void TdApi::processRspUserLogin(Task task) PyLock lock; CThostFtdcRspUserLoginField task_data = any_cast(task.task_data); dict data; - data["loginbatch"] = task_data.loginbatch; data["SeatNo"] = task_data.SeatNo; - data["gateWayYYBDB"] = task_data.gateWayYYBDB; data["tradeDate"] = task_data.tradeDate; data["tradeCode"] = task_data.tradeCode; - data["machineID"] = task_data.machineID; data["localOrderNo"] = task_data.localOrderNo; - data["traderID"] = task_data.traderID; - data["memberID"] = task_data.memberID; + data["loginbatch"] = task_data.loginbatch; data["clientID"] = task_data.clientID; - data["obligate"] = task_data.obligate; - data["gateWayCurLinkNum"] = task_data.gateWayCurLinkNum; data["lastLoginDate"] = task_data.lastLoginDate; data["lastLoginTime"] = task_data.lastLoginTime; - data["msg"] = task_data.msg; data["lastLoginIp"] = task_data.lastLoginIp; - data["password"] = task_data.password; - data["ipAddress"] = task_data.ipAddress; data["clientName"] = task_data.clientName; CThostFtdcRspInfoField task_error = any_cast(task.task_error); @@ -48,22 +39,7 @@ void TdApi::processRspUserLogout(Task task) PyLock lock; CThostFtdcUserLogoutField task_data = any_cast(task.task_data); dict data; - data["loginbatch"] = task_data.loginbatch; - data["gateWayYYBDB"] = task_data.gateWayYYBDB; - data["tradeDate"] = task_data.tradeDate; - data["machineID"] = task_data.machineID; - data["localOrderNo"] = task_data.localOrderNo; data["traderID"] = task_data.traderID; - data["memberID"] = task_data.memberID; - data["obligate"] = task_data.obligate; - data["gateWayCurLinkNum"] = task_data.gateWayCurLinkNum; - data["lastLoginDate"] = task_data.lastLoginDate; - data["lastLoginTime"] = task_data.lastLoginTime; - data["msg"] = task_data.msg; - data["lastLoginIp"] = task_data.lastLoginIp; - data["password"] = task_data.password; - data["ipAddress"] = task_data.ipAddress; - data["clientName"] = task_data.clientName; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -165,31 +141,18 @@ void TdApi::processRspOrderInsert(Task task) CThostFtdcInputOrderField task_data = any_cast(task.task_data); dict data; data["offsetFlag"] = task_data.offsetFlag; - data["weight"] = task_data.weight; - data["entrustTime"] = task_data.entrustTime; - data["LocalOrderNo"] = task_data.LocalOrderNo; - data["marketID"] = task_data.marketID; - data["orderNo"] = task_data.orderNo; - data["tradeWay"] = task_data.tradeWay; data["buyOrSell"] = task_data.buyOrSell; - data["instID"] = task_data.instID; - data["seatID"] = task_data.seatID; - data["status"] = task_data.status; - data["cancelTime"] = task_data.cancelTime; data["middleFlag"] = task_data.middleFlag; + data["tradeCode"] = task_data.tradeCode; + data["instID"] = task_data.instID; data["price"] = task_data.price; - data["validDate"] = task_data.validDate; - data["matchQty"] = task_data.matchQty; - data["clientID"] = task_data.clientID; + data["marketID"] = task_data.marketID; data["trigPrice"] = task_data.trigPrice; - data["forceoffset_flag"] = task_data.forceoffset_flag; - data["orderFlag"] = task_data.orderFlag; - data["volumnCheck"] = task_data.volumnCheck; - data["cancelQty"] = task_data.cancelQty; - data["priceFlag"] = task_data.priceFlag; - data["exchangeID"] = task_data.exchangeID; data["amount"] = task_data.amount; - data["matchWeight"] = task_data.matchWeight; + data["seatID"] = task_data.seatID; + data["priceFlag"] = task_data.priceFlag; + data["LocalOrderNo"] = task_data.LocalOrderNo; + data["tradeWay"] = task_data.tradeWay; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -205,31 +168,18 @@ void TdApi::processErrRtnOrderInsert(Task task) CThostFtdcInputOrderField task_data = any_cast(task.task_data); dict data; data["offsetFlag"] = task_data.offsetFlag; - data["weight"] = task_data.weight; - data["entrustTime"] = task_data.entrustTime; - data["LocalOrderNo"] = task_data.LocalOrderNo; - data["marketID"] = task_data.marketID; - data["orderNo"] = task_data.orderNo; - data["tradeWay"] = task_data.tradeWay; data["buyOrSell"] = task_data.buyOrSell; - data["instID"] = task_data.instID; - data["seatID"] = task_data.seatID; - data["status"] = task_data.status; - data["cancelTime"] = task_data.cancelTime; data["middleFlag"] = task_data.middleFlag; + data["tradeCode"] = task_data.tradeCode; + data["instID"] = task_data.instID; data["price"] = task_data.price; - data["validDate"] = task_data.validDate; - data["matchQty"] = task_data.matchQty; - data["clientID"] = task_data.clientID; + data["marketID"] = task_data.marketID; data["trigPrice"] = task_data.trigPrice; - data["forceoffset_flag"] = task_data.forceoffset_flag; - data["orderFlag"] = task_data.orderFlag; - data["volumnCheck"] = task_data.volumnCheck; - data["cancelQty"] = task_data.cancelQty; - data["priceFlag"] = task_data.priceFlag; - data["exchangeID"] = task_data.exchangeID; data["amount"] = task_data.amount; - data["matchWeight"] = task_data.matchWeight; + data["seatID"] = task_data.seatID; + data["priceFlag"] = task_data.priceFlag; + data["LocalOrderNo"] = task_data.LocalOrderNo; + data["tradeWay"] = task_data.tradeWay; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -242,25 +192,12 @@ void TdApi::processErrRtnOrderInsert(Task task) void TdApi::processRtnOrder(Task task) { PyLock lock; - CThostFtdcOrderField task_data = any_cast(task.task_data); + CThostFtdcOrderRtnField task_data = any_cast(task.task_data); dict data; data["status"] = task_data.status; - data["cancelTime"] = task_data.cancelTime; - data["offsetFlag"] = task_data.offsetFlag; - data["buyOrSell"] = task_data.buyOrSell; - data["instID"] = task_data.instID; - data["localOrderNo"] = task_data.localOrderNo; - data["matchQty"] = task_data.matchQty; - data["weight"] = task_data.weight; - data["marketID"] = task_data.marketID; - data["amount"] = task_data.amount; - data["forceoffset_flag"] = task_data.forceoffset_flag; - data["entrustTime"] = task_data.entrustTime; data["orderNo"] = task_data.orderNo; + data["localOrderNo"] = task_data.localOrderNo; data["cancelQty"] = task_data.cancelQty; - data["matchWeight"] = task_data.matchWeight; - data["price"] = task_data.price; - data["tradeWay"] = task_data.tradeWay; this->onRtnOrder(data); }; @@ -270,22 +207,7 @@ void TdApi::processForceLogout(Task task) PyLock lock; CThostFtdcUserLogoutField task_data = any_cast(task.task_data); dict data; - data["loginbatch"] = task_data.loginbatch; - data["gateWayYYBDB"] = task_data.gateWayYYBDB; - data["tradeDate"] = task_data.tradeDate; - data["machineID"] = task_data.machineID; - data["localOrderNo"] = task_data.localOrderNo; data["traderID"] = task_data.traderID; - data["memberID"] = task_data.memberID; - data["obligate"] = task_data.obligate; - data["gateWayCurLinkNum"] = task_data.gateWayCurLinkNum; - data["lastLoginDate"] = task_data.lastLoginDate; - data["lastLoginTime"] = task_data.lastLoginTime; - data["msg"] = task_data.msg; - data["lastLoginIp"] = task_data.lastLoginIp; - data["password"] = task_data.password; - data["ipAddress"] = task_data.ipAddress; - data["clientName"] = task_data.clientName; this->onForceLogout(data); }; @@ -295,11 +217,9 @@ void TdApi::processRspOrderAction(Task task) PyLock lock; CThostFtdcInputOrderActionField task_data = any_cast(task.task_data); dict data; - data["tradeWay"] = task_data.tradeWay; + data["status"] = task_data.status; data["localOrderNo"] = task_data.localOrderNo; data["marketID"] = task_data.marketID; - data["traderID"] = task_data.traderID; - data["orderFlag"] = task_data.orderFlag; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -460,7 +380,6 @@ void TdApi::processRspQryInvestorPosition(Task task) data["todayOffsetLong"] = task_data.todayOffsetLong; data["shortPosiFrozen"] = task_data.shortPosiFrozen; data["instID"] = task_data.instID; - data["clientID"] = task_data.clientID; data["lastShort"] = task_data.lastShort; data["todayOffsetShort"] = task_data.todayOffsetShort; data["longPosiAvgPrice"] = task_data.longPosiAvgPrice; diff --git a/vn.ksgold/pyscript/ksgold_td_task.cpp b/vn.ksgold/pyscript/ksgold_td_task.cpp index 58906cb9..6faff51e 100644 --- a/vn.ksgold/pyscript/ksgold_td_task.cpp +++ b/vn.ksgold/pyscript/ksgold_td_task.cpp @@ -202,7 +202,7 @@ void TdApi::OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFt this->task_queue.push(task); }; -void TdApi::OnRtnOrder(CThostFtdcOrderField *pOrder) +void TdApi::OnRtnOrder(CThostFtdcOrderRtnField *pOrder) { Task task = Task(); task.task_name = ONRTNORDER; @@ -213,7 +213,7 @@ void TdApi::OnRtnOrder(CThostFtdcOrderField *pOrder) } else { - CThostFtdcOrderField empty_data = CThostFtdcOrderField(); + CThostFtdcOrderRtnField empty_data = CThostFtdcOrderRtnField(); memset(&empty_data, 0, sizeof(empty_data)); task.task_data = empty_data; } diff --git a/vn.ksgold/vnksgoldtd/Visual Studio 2013/settings/Windows Azure Subscriptions.xml b/vn.ksgold/vnksgoldtd/Visual Studio 2013/settings/Windows Azure Subscriptions.xml new file mode 100644 index 00000000..b3770e0d --- /dev/null +++ b/vn.ksgold/vnksgoldtd/Visual Studio 2013/settings/Windows Azure Subscriptions.xml @@ -0,0 +1,5 @@ + + + + AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAtT6l7mFaOE6IUjoFpngY+wAAAAACAAAAAAAQZgAAAAEAACAAAAC3lvUQB5CD6dZv3KbSkrwYzgnYSLlRPtx/2QGEeHWhigAAAAAOgAAAAAIAACAAAACChdhEc9CeUlA2e2ACUzUAG8Zbt7bIMRNk7rLbZ37WwhAAAADWtmtxkWmKACLpqlrYubjZQAAAAOjWOwvVDo3lgRFGGBh0zQ5rZ4EfOCkm5vgKXT9eylzt+mO7Dy5G+5IkzzKuYvX8zZefUMk7Ia7eQN0Po8A+DJs= + \ No newline at end of file diff --git a/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.cpp b/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.cpp index b2b512d7..ebca620c 100644 --- a/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.cpp +++ b/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.cpp @@ -277,7 +277,7 @@ void TdApi::OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFt this->task_queue.push(task); }; -void TdApi::OnRtnOrder(CThostFtdcOrderField *pOrder) +void TdApi::OnRtnOrder(CThostFtdcOrderRtnField *pOrder) { Task task = Task(); task.task_name = ONRTNORDER; @@ -288,7 +288,7 @@ void TdApi::OnRtnOrder(CThostFtdcOrderField *pOrder) } else { - CThostFtdcOrderField empty_data = CThostFtdcOrderField(); + CThostFtdcOrderRtnField empty_data = CThostFtdcOrderRtnField(); memset(&empty_data, 0, sizeof(empty_data)); task.task_data = empty_data; } @@ -541,6 +541,9 @@ void TdApi::OnRspQryClientStorage(CThostFtdcStorageField *pStorage, CThostFtdcRs memset(&empty_error, 0, sizeof(empty_error)); task.task_error = empty_error; } + + task.task_id = nRequestID; + task.task_last = bIsLast; this->task_queue.push(task); }; @@ -728,24 +731,15 @@ void TdApi::processRspUserLogin(Task task) PyLock lock; CThostFtdcRspUserLoginField task_data = any_cast(task.task_data); dict data; - data["loginbatch"] = task_data.loginbatch; data["SeatNo"] = task_data.SeatNo; - data["gateWayYYBDB"] = task_data.gateWayYYBDB; data["tradeDate"] = task_data.tradeDate; data["tradeCode"] = task_data.tradeCode; - data["machineID"] = task_data.machineID; data["localOrderNo"] = task_data.localOrderNo; - data["traderID"] = task_data.traderID; - data["memberID"] = task_data.memberID; + data["loginbatch"] = task_data.loginbatch; data["clientID"] = task_data.clientID; - data["obligate"] = task_data.obligate; - data["gateWayCurLinkNum"] = task_data.gateWayCurLinkNum; data["lastLoginDate"] = task_data.lastLoginDate; data["lastLoginTime"] = task_data.lastLoginTime; - data["msg"] = task_data.msg; data["lastLoginIp"] = task_data.lastLoginIp; - data["password"] = task_data.password; - data["ipAddress"] = task_data.ipAddress; data["clientName"] = task_data.clientName; CThostFtdcRspInfoField task_error = any_cast(task.task_error); @@ -761,22 +755,7 @@ void TdApi::processRspUserLogout(Task task) PyLock lock; CThostFtdcUserLogoutField task_data = any_cast(task.task_data); dict data; - data["loginbatch"] = task_data.loginbatch; - data["gateWayYYBDB"] = task_data.gateWayYYBDB; - data["tradeDate"] = task_data.tradeDate; - data["machineID"] = task_data.machineID; - data["localOrderNo"] = task_data.localOrderNo; data["traderID"] = task_data.traderID; - data["memberID"] = task_data.memberID; - data["obligate"] = task_data.obligate; - data["gateWayCurLinkNum"] = task_data.gateWayCurLinkNum; - data["lastLoginDate"] = task_data.lastLoginDate; - data["lastLoginTime"] = task_data.lastLoginTime; - data["msg"] = task_data.msg; - data["lastLoginIp"] = task_data.lastLoginIp; - data["password"] = task_data.password; - data["ipAddress"] = task_data.ipAddress; - data["clientName"] = task_data.clientName; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -793,8 +772,6 @@ void TdApi::processNtyMktStatus(Task task) dict data; data["mktStatus"] = task_data.MktStatus; data["marketID"] = task_data.marketID; - data["exchCode"] = task_data.ExchCode; - data["mktChgTime"] = task_data.MktChgTime; this->onNtyMktStatus(data); }; @@ -884,32 +861,20 @@ void TdApi::processRspOrderInsert(Task task) PyLock lock; CThostFtdcInputOrderField task_data = any_cast(task.task_data); dict data; - data["offsetFlag"] = task_data.offsetFlag; - data["weight"] = task_data.weight; - data["entrustTime"] = task_data.entrustTime; - data["LocalOrderNo"] = task_data.LocalOrderNo; - data["marketID"] = task_data.marketID; - data["orderNo"] = task_data.orderNo; - data["tradeWay"] = task_data.tradeWay; - data["buyOrSell"] = task_data.buyOrSell; - data["instID"] = task_data.instID; - data["seatID"] = task_data.seatID; - data["status"] = task_data.status; - data["cancelTime"] = task_data.cancelTime; + + data["offsetFlag"] = (char) task_data.offsetFlag; + data["buyOrSell"] = (char) task_data.buyOrSell; data["middleFlag"] = task_data.middleFlag; + data["tradeCode"] = task_data.tradeCode; + data["instID"] = task_data.instID; data["price"] = task_data.price; - data["validDate"] = task_data.validDate; - data["matchQty"] = task_data.matchQty; - data["clientID"] = task_data.clientID; + data["marketID"] = task_data.marketID; data["trigPrice"] = task_data.trigPrice; - data["forceoffset_flag"] = task_data.forceoffset_flag; - data["orderFlag"] = task_data.orderFlag; - data["volumnCheck"] = task_data.volumnCheck; - data["cancelQty"] = task_data.cancelQty; - data["priceFlag"] = task_data.priceFlag; - data["exchangeID"] = task_data.exchangeID; data["amount"] = task_data.amount; - data["matchWeight"] = task_data.matchWeight; + data["seatID"] = task_data.seatID; + data["priceFlag"] = task_data.priceFlag; + data["LocalOrderNo"] = task_data.LocalOrderNo; + data["tradeWay"] = task_data.tradeWay; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -925,31 +890,18 @@ void TdApi::processErrRtnOrderInsert(Task task) CThostFtdcInputOrderField task_data = any_cast(task.task_data); dict data; data["offsetFlag"] = task_data.offsetFlag; - data["weight"] = task_data.weight; - data["entrustTime"] = task_data.entrustTime; - data["LocalOrderNo"] = task_data.LocalOrderNo; - data["marketID"] = task_data.marketID; - data["orderNo"] = task_data.orderNo; - data["tradeWay"] = task_data.tradeWay; data["buyOrSell"] = task_data.buyOrSell; - data["instID"] = task_data.instID; - data["seatID"] = task_data.seatID; - data["status"] = task_data.status; - data["cancelTime"] = task_data.cancelTime; data["middleFlag"] = task_data.middleFlag; + data["tradeCode"] = task_data.tradeCode; + data["instID"] = task_data.instID; data["price"] = task_data.price; - data["validDate"] = task_data.validDate; - data["matchQty"] = task_data.matchQty; - data["clientID"] = task_data.clientID; + data["marketID"] = task_data.marketID; data["trigPrice"] = task_data.trigPrice; - data["forceoffset_flag"] = task_data.forceoffset_flag; - data["orderFlag"] = task_data.orderFlag; - data["volumnCheck"] = task_data.volumnCheck; - data["cancelQty"] = task_data.cancelQty; - data["priceFlag"] = task_data.priceFlag; - data["exchangeID"] = task_data.exchangeID; data["amount"] = task_data.amount; - data["matchWeight"] = task_data.matchWeight; + data["seatID"] = task_data.seatID; + data["priceFlag"] = task_data.priceFlag; + data["LocalOrderNo"] = task_data.LocalOrderNo; + data["tradeWay"] = task_data.tradeWay; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -962,25 +914,12 @@ void TdApi::processErrRtnOrderInsert(Task task) void TdApi::processRtnOrder(Task task) { PyLock lock; - CThostFtdcOrderField task_data = any_cast(task.task_data); + CThostFtdcOrderRtnField task_data = any_cast(task.task_data); dict data; - data["status"] = task_data.status; - data["cancelTime"] = task_data.cancelTime; - data["offsetFlag"] = task_data.offsetFlag; - data["buyOrSell"] = task_data.buyOrSell; - data["instID"] = task_data.instID; - data["localOrderNo"] = task_data.localOrderNo; - data["matchQty"] = task_data.matchQty; - data["weight"] = task_data.weight; - data["marketID"] = task_data.marketID; - data["amount"] = task_data.amount; - data["forceoffset_flag"] = task_data.forceoffset_flag; - data["entrustTime"] = task_data.entrustTime; + data["status"] = (char) task_data.status; data["orderNo"] = task_data.orderNo; + data["localOrderNo"] = task_data.localOrderNo; data["cancelQty"] = task_data.cancelQty; - data["matchWeight"] = task_data.matchWeight; - data["price"] = task_data.price; - data["tradeWay"] = task_data.tradeWay; this->onRtnOrder(data); }; @@ -990,22 +929,7 @@ void TdApi::processForceLogout(Task task) PyLock lock; CThostFtdcUserLogoutField task_data = any_cast(task.task_data); dict data; - data["loginbatch"] = task_data.loginbatch; - data["gateWayYYBDB"] = task_data.gateWayYYBDB; - data["tradeDate"] = task_data.tradeDate; - data["machineID"] = task_data.machineID; - data["localOrderNo"] = task_data.localOrderNo; data["traderID"] = task_data.traderID; - data["memberID"] = task_data.memberID; - data["obligate"] = task_data.obligate; - data["gateWayCurLinkNum"] = task_data.gateWayCurLinkNum; - data["lastLoginDate"] = task_data.lastLoginDate; - data["lastLoginTime"] = task_data.lastLoginTime; - data["msg"] = task_data.msg; - data["lastLoginIp"] = task_data.lastLoginIp; - data["password"] = task_data.password; - data["ipAddress"] = task_data.ipAddress; - data["clientName"] = task_data.clientName; this->onForceLogout(data); }; @@ -1015,11 +939,9 @@ void TdApi::processRspOrderAction(Task task) PyLock lock; CThostFtdcInputOrderActionField task_data = any_cast(task.task_data); dict data; - data["tradeWay"] = task_data.tradeWay; + data["status"] = task_data.status; data["localOrderNo"] = task_data.localOrderNo; data["marketID"] = task_data.marketID; - data["traderID"] = task_data.traderID; - data["orderFlag"] = task_data.orderFlag; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -1053,8 +975,8 @@ void TdApi::processRtnTrade(Task task) PyLock lock; CThostFtdcTradeField task_data = any_cast(task.task_data); dict data; - data["offSetFlag"] = task_data.offSetFlag; - data["buyOrSell"] = task_data.buyOrSell; + data["offSetFlag"] = (char) task_data.offSetFlag; + data["buyOrSell"] = (char) task_data.buyOrSell; data["order_flag"] = task_data.order_flag; data["instID"] = task_data.instID; data["price"] = task_data.price; @@ -1070,7 +992,7 @@ void TdApi::processRtnTrade(Task task) data["forcebatchnum"] = task_data.forcebatchnum; data["localOrderNo"] = task_data.localOrderNo; data["matchDate"] = task_data.matchDate; - data["forceoffset_flag"] = task_data.forceoffset_flag; + data["forceoffset_flag"] = task_data.forceoffset_flag; this->onRtnTrade(data); }; @@ -1110,23 +1032,23 @@ void TdApi::processRspQryOrder(Task task) PyLock lock; CThostFtdcOrderField task_data = any_cast(task.task_data); dict data; - data["status"] = task_data.status; + data["status"] = (char) task_data.status; data["cancelTime"] = task_data.cancelTime; - data["offsetFlag"] = task_data.offsetFlag; - data["buyOrSell"] = task_data.buyOrSell; + data["offsetFlag"] = (char) task_data.offsetFlag; + data["buyOrSell"] = (char) task_data.buyOrSell; data["instID"] = task_data.instID; data["localOrderNo"] = task_data.localOrderNo; data["matchQty"] = task_data.matchQty; data["weight"] = task_data.weight; data["marketID"] = task_data.marketID; data["amount"] = task_data.amount; - data["forceoffset_flag"] = task_data.forceoffset_flag; + data["forceoffset_flag"] = (char) task_data.forceoffset_flag; data["entrustTime"] = task_data.entrustTime; data["orderNo"] = task_data.orderNo; data["cancelQty"] = task_data.cancelQty; data["matchWeight"] = task_data.matchWeight; data["price"] = task_data.price; - data["tradeWay"] = task_data.tradeWay; + data["tradeWay"] = (char) task_data.tradeWay; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -1141,8 +1063,8 @@ void TdApi::processRspQryTrade(Task task) PyLock lock; CThostFtdcTradeField task_data = any_cast(task.task_data); dict data; - data["offSetFlag"] = task_data.offSetFlag; - data["buyOrSell"] = task_data.buyOrSell; + data["offSetFlag"] = (char) task_data.offSetFlag; + data["buyOrSell"] = (char) task_data.buyOrSell; data["order_flag"] = task_data.order_flag; data["instID"] = task_data.instID; data["price"] = task_data.price; @@ -1158,7 +1080,7 @@ void TdApi::processRspQryTrade(Task task) data["forcebatchnum"] = task_data.forcebatchnum; data["localOrderNo"] = task_data.localOrderNo; data["matchDate"] = task_data.matchDate; - data["forceoffset_flag"] = task_data.forceoffset_flag; + data["forceoffset_flag"] = (char) task_data.forceoffset_flag; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; @@ -1180,7 +1102,6 @@ void TdApi::processRspQryInvestorPosition(Task task) data["todayOffsetLong"] = task_data.todayOffsetLong; data["shortPosiFrozen"] = task_data.shortPosiFrozen; data["instID"] = task_data.instID; - data["clientID"] = task_data.clientID; data["lastShort"] = task_data.lastShort; data["todayOffsetShort"] = task_data.todayOffsetShort; data["longPosiAvgPrice"] = task_data.longPosiAvgPrice; @@ -1288,28 +1209,32 @@ void TdApi::registerFront(string pszFrontAddress) this->api->RegisterFront((char*)pszFrontAddress.c_str()); }; +int TdApi::subscribeMarketData(string instrumentID) +{ + char* buffer = (char*)instrumentID.c_str(); + char* myreq[1] = { buffer }; + int i = this->api->SubscribeMarketData(myreq, 1); + return i; +}; + +int TdApi::unSubscribeMarketData(string instrumentID) +{ + char* buffer = (char*)instrumentID.c_str(); + char* myreq[1] = { buffer };; + int i = this->api->UnSubscribeMarketData(myreq, 1); + return i; +}; + int TdApi::reqUserLogin(dict req, int nRequestID) { CThostFtdcReqUserLoginField myreq = CThostFtdcReqUserLoginField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "ipGatewayAddress", myreq.ipGatewayAddress); - getChar(req, "obligate", myreq.obligate); - getInt(req, "loginType", &myreq.loginType); - getInt(req, "gateWayCurLinkNum", &myreq.gateWayCurLinkNum); - getChar(req, "gateWayYYBDB", myreq.gateWayYYBDB); - getChar(req, "lastLoginTime", myreq.lastLoginTime); - getChar(req, "lastLoginIp", myreq.lastLoginIp); getChar(req, "password", myreq.password); - getChar(req, "clientName", myreq.clientName); - getChar(req, "msg", myreq.msg); - getChar(req, "lastLoginDate", myreq.lastLoginDate); - getInt(req, "machineID", &myreq.machineID); - getChar(req, "accountID", myreq.accountID); - getInt(req, "loginbatch", &myreq.loginbatch); - getChar(req, "localOrderNo", myreq.localOrderNo); getChar(req, "tradeDate", myreq.tradeDate); - getInt(req, "portGateway", &myreq.portGateway); getChar(req, "memberID", myreq.memberID); + getInt(req, "loginType", &myreq.loginType); + getChar(req, "accountID", myreq.accountID); + int i = this->api->ReqUserLogin(&myreq, nRequestID); return i; }; @@ -1318,22 +1243,7 @@ int TdApi::reqUserLogout(dict req, int nRequestID) { CThostFtdcUserLogoutField myreq = CThostFtdcUserLogoutField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "obligate", myreq.obligate); - getChar(req, "tradeDate", myreq.tradeDate); - getChar(req, "localOrderNo", myreq.localOrderNo); - getInt(req, "gateWayCurLinkNum", &myreq.gateWayCurLinkNum); - getChar(req, "gateWayYYBDB", myreq.gateWayYYBDB); - getChar(req, "lastLoginTime", myreq.lastLoginTime); - getChar(req, "lastLoginIp", myreq.lastLoginIp); - getChar(req, "password", myreq.password); - getChar(req, "clientName", myreq.clientName); - getChar(req, "ipAddress", myreq.ipAddress); - getInt(req, "machineID", &myreq.machineID); - getInt(req, "loginbatch", &myreq.loginbatch); - getChar(req, "msg", myreq.msg); - getChar(req, "lastLoginDate", myreq.lastLoginDate); getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); int i = this->api->ReqUserLogout(&myreq, nRequestID); return i; }; @@ -1344,35 +1254,6 @@ int TdApi::reqUserReLogin() return i; } -int TdApi::reqQryTradingAccount(dict req, int nRequestID) -{ - CThostFtdcQryTradingAccountField myreq = CThostFtdcQryTradingAccountField(); - memset(&myreq, 0, sizeof(myreq)); - getChar(req, "clientID", myreq.clientID); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "marketID", myreq.marketID); - - //getChar(req, "accountType", &myreq.accountType); - - //Ϊֶд - if (req.has_key("accountType")) - { - object o = req["accountType"]; - extract x(o); - if (x.check()) - { - string s = x(); - const char *buffer = s.c_str(); - myreq.accountType = (unsigned char) *buffer; - } - } - - - int i = this->api->ReqQryTradingAccount(&myreq, nRequestID); - return i; -}; - int TdApi::reqQryInstrument(dict req, int nRequestID) { CThostFtdcQryInstrumentField myreq = CThostFtdcQryInstrumentField(); @@ -1387,30 +1268,60 @@ int TdApi::reqOrderInsert(dict req, int nRequestID) { CThostFtdcInputOrderField myreq = CThostFtdcInputOrderField(); memset(&myreq, 0, sizeof(myreq)); - getUnsignedChar(req, "offsetFlag", &myreq.offsetFlag); - getChar(req, "entrustTime", myreq.entrustTime); - getChar(req, "LocalOrderNo", myreq.LocalOrderNo); - getChar(req, "marketID", myreq.marketID); - getChar(req, "orderNo", myreq.orderNo); - getUnsignedChar(req, "tradeWay", &myreq.tradeWay); - getUnsignedChar(req, "buyOrSell", &myreq.buyOrSell); + + getChar(req, "tradeCode", myreq.tradeCode); getChar(req, "instID", myreq.instID); + getChar(req, "marketID", myreq.marketID); + getInt(req, "amount", &myreq.amount); getChar(req, "seatID", myreq.seatID); - getUnsignedChar(req, "status", &myreq.status); - getChar(req, "cancelTime", myreq.cancelTime); - getUnsignedChar(req, "middleFlag", &myreq.middleFlag); - getChar(req, "validDate", myreq.validDate); - getInt(req, "matchQty", &myreq.matchQty); - getChar(req, "clientID", myreq.clientID); - getChar(req, "clientID", myreq.clientID); - getUnsignedChar(req, "forceoffset_flag", &myreq.forceoffset_flag); - getUnsignedChar(req, "orderFlag", &myreq.orderFlag); - getInt(req, "volumnCheck", &myreq.volumnCheck); - getInt(req, "cancelQty", &myreq.cancelQty); getUnsignedChar(req, "priceFlag", &myreq.priceFlag); - getChar(req, "exchangeID", myreq.exchangeID); - getInt(req, "amount", &myreq.amount); - getInt(req, "amount", &myreq.amount); + getChar(req, "LocalOrderNo", myreq.LocalOrderNo); + getUnsignedChar(req, "tradeWay", &myreq.tradeWay); + getUnsignedChar(req, "middleFlag", &myreq.middleFlag); + getDouble(req, "price", &myreq.price); + + //´Ϊд + + if (req.has_key("offsetFlag")) + { + object o = req["offsetFlag"]; + extract x(o); + if (x.check()) + { + string s = x(); + const char *offsetBuffer = s.c_str(); + + if (*offsetBuffer == '0') + { + myreq.offsetFlag = '0'; + } + else if (*offsetBuffer == '1') + { + myreq.offsetFlag = '1'; + } + } + } + + if (req.has_key("buyOrSell")) + { + object o2 = req["buyOrSell"]; + extract x2(o2); + if (x2.check()) + { + string s2 = x2(); + const char *bsBuffer = s2.c_str(); + + if (*bsBuffer == '0') + { + myreq.buyOrSell = '0'; + } + else if (*bsBuffer == '1') + { + myreq.buyOrSell = '1'; + } + } + } + int i = this->api->ReqOrderInsert(&myreq, nRequestID); return i; }; @@ -1419,11 +1330,9 @@ int TdApi::reqOrderAction(dict req, int nRequestID) { CThostFtdcInputOrderActionField myreq = CThostFtdcInputOrderActionField(); memset(&myreq, 0, sizeof(myreq)); - getUnsignedChar(req, "tradeWay", &myreq.tradeWay); + getUnsignedChar(req, "status", &myreq.status); getChar(req, "localOrderNo", myreq.localOrderNo); getChar(req, "marketID", myreq.marketID); - getChar(req, "traderID", myreq.traderID); - getUnsignedChar(req, "orderFlag", &myreq.orderFlag); int i = this->api->ReqOrderAction(&myreq, nRequestID); return i; }; @@ -1433,27 +1342,28 @@ int TdApi::reqQryInvestorPosition(dict req, int nRequestID) CThostFtdcQryInvestorPositionField myreq = CThostFtdcQryInvestorPositionField(); memset(&myreq, 0, sizeof(myreq)); getChar(req, "instID", myreq.instID); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); getChar(req, "marketID", myreq.marketID); int i = this->api->ReqQryInvestorPosition(&myreq, nRequestID); return i; }; +int TdApi::reqQryTradingAccount(dict req, int nRequestID) +{ + CThostFtdcQryTradingAccountField myreq = CThostFtdcQryTradingAccountField(); + memset(&myreq, 0, sizeof(myreq)); + getChar(req, "remian", myreq.remian); + int i = this->api->ReqQryTradingAccount(&myreq, nRequestID); + return i; +}; + int TdApi::reqQryTrade(dict req, int nRequestID) { CThostFtdcQryTradeField myreq = CThostFtdcQryTradeField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "exchangeID", myreq.exchangeID); getChar(req, "instID", myreq.instID); getChar(req, "localOrderNo", myreq.localOrderNo); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); - getChar(req, "marketID", myreq.marketID); getChar(req, "matchNo", myreq.matchNo); - getChar(req, "orderNo", myreq.orderNo); + getChar(req, "marketID", myreq.marketID); int i = this->api->ReqQryTrade(&myreq, nRequestID); return i; }; @@ -1462,16 +1372,9 @@ int TdApi::reqQryOrder(dict req, int nRequestID) { CThostFtdcQryOrderField myreq = CThostFtdcQryOrderField(); memset(&myreq, 0, sizeof(myreq)); - getUnsignedChar(req, "status", &myreq.status); - getChar(req, "exchangeID", myreq.exchangeID); - getUnsignedChar(req, "offsetFlag", &myreq.offsetFlag); getChar(req, "instID", myreq.instID); getChar(req, "localOrderNo", myreq.localOrderNo); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); getChar(req, "marketID", myreq.marketID); - getChar(req, "orderNo", myreq.orderNo); int i = this->api->ReqQryOrder(&myreq, nRequestID); return i; }; @@ -1480,9 +1383,7 @@ int TdApi::reqQryStorage(dict req, int nRequestID) { CThostFtdcQryStorageField myreq = CThostFtdcQryStorageField(); memset(&myreq, 0, sizeof(myreq)); - getChar(req, "traderID", myreq.traderID); - getChar(req, "memberID", myreq.memberID); - getChar(req, "clientID", myreq.clientID); + getChar(req, "varietyID", myreq.varietyID); int i = this->api->ReqQryStorage(&myreq, nRequestID); return i; }; @@ -1713,7 +1614,7 @@ struct TdApiWrap : TdApi, wrapper < TdApi > }; -BOOST_PYTHON_MODULE(vnctptd) +BOOST_PYTHON_MODULE(vnksgoldtd) { PyEval_InitThreads(); //ʱУ֤ȴGIL @@ -1726,6 +1627,8 @@ BOOST_PYTHON_MODULE(vnctptd) .def("registerFront", &TdApiWrap::registerFront) .def("reqUserLogin", &TdApiWrap::reqUserLogin) .def("reqUserLogout", &TdApiWrap::reqUserLogout) + .def("subscribeMarketData", &TdApiWrap::subscribeMarketData) + .def("unSubscribeMarketData", &TdApiWrap::unSubscribeMarketData) .def("reqUserReLogin", &TdApiWrap::reqUserReLogin) .def("reqQryInstrument", &TdApiWrap::reqQryInstrument) .def("reqOrderInsert", &TdApiWrap::reqOrderInsert) diff --git a/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.h b/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.h index 3403e5ea..f99fe2d4 100644 --- a/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.h +++ b/vn.ksgold/vnksgoldtd/vnksgoldtd/vnksgoldtd.h @@ -16,7 +16,7 @@ #include //pythonװ #include //pythonװ #include //pythonװ -#include //pythonװ +#include //pythonװ #include //pythonװ #include //е̹߳ #include //е̹߳ @@ -24,6 +24,7 @@ //API #include "GoldTradeApi.h" +#include "Constant.h" //ռ using namespace std; @@ -195,7 +196,6 @@ public: ///ѯԼӦ virtual void OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); - ///֪ͨ virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData); @@ -206,7 +206,8 @@ public: virtual void OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo); ///֪ͨ - virtual void OnRtnOrder(CThostFtdcOrderField *pOrder); + //virtual void OnRtnOrder(CThostFtdcOrderField *pOrder); // + virtual void OnRtnOrder(CThostFtdcOrderRtnField *pOrder); //ǿ֪ͨ virtual void OnForceLogout(CThostFtdcUserLogoutField *pLogout); @@ -355,6 +356,10 @@ public: int reqUserReLogin(); + int subscribeMarketData(string instrumentID); + + int unSubscribeMarketData(string instrumentID); + int reqQryInstrument(dict req, int nRequestID); int reqOrderInsert(dict req, int nRequestID); diff --git a/vn.trader/ContractData.vt b/vn.trader/ContractData.vt index 4cbf434e..38075a44 100644 Binary files a/vn.trader/ContractData.vt and b/vn.trader/ContractData.vt differ diff --git a/vn.trader/CTP_connect.json b/vn.trader/ctpGateway/CTP_connect.json similarity index 100% rename from vn.trader/CTP_connect.json rename to vn.trader/ctpGateway/CTP_connect.json diff --git a/vn.trader/ctpGateway/__init__.py b/vn.trader/ctpGateway/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vn.trader/ctpDataType.py b/vn.trader/ctpGateway/ctpDataType.py similarity index 100% rename from vn.trader/ctpDataType.py rename to vn.trader/ctpGateway/ctpDataType.py diff --git a/vn.trader/ctpGateway.py b/vn.trader/ctpGateway/ctpGateway.py similarity index 99% rename from vn.trader/ctpGateway.py rename to vn.trader/ctpGateway/ctpGateway.py index 9272c619..82b38d4a 100644 --- a/vn.trader/ctpGateway.py +++ b/vn.trader/ctpGateway/ctpGateway.py @@ -80,6 +80,8 @@ class CtpGateway(VtGateway): """连接""" # 载入json文件 fileName = self.gatewayName + '_connect.json' + fileName = os.getcwd() + '\\ctpGateway\\' + fileName + try: f = file(fileName) except IOError: diff --git a/vn.trader/thostmduserapi.dll b/vn.trader/ctpGateway/thostmduserapi.dll similarity index 100% rename from vn.trader/thostmduserapi.dll rename to vn.trader/ctpGateway/thostmduserapi.dll diff --git a/vn.trader/thosttraderapi.dll b/vn.trader/ctpGateway/thosttraderapi.dll similarity index 100% rename from vn.trader/thosttraderapi.dll rename to vn.trader/ctpGateway/thosttraderapi.dll diff --git a/vn.trader/vnctpmd.pyd b/vn.trader/ctpGateway/vnctpmd.pyd similarity index 100% rename from vn.trader/vnctpmd.pyd rename to vn.trader/ctpGateway/vnctpmd.pyd diff --git a/vn.trader/vnctptd.pyd b/vn.trader/ctpGateway/vnctptd.pyd similarity index 100% rename from vn.trader/vnctptd.pyd rename to vn.trader/ctpGateway/vnctptd.pyd diff --git a/vn.trader/FEMAS_connect.json b/vn.trader/femasGateway/FEMAS_connect.json similarity index 100% rename from vn.trader/FEMAS_connect.json rename to vn.trader/femasGateway/FEMAS_connect.json diff --git a/vn.trader/USTPmduserapi.dll b/vn.trader/femasGateway/USTPmduserapi.dll similarity index 100% rename from vn.trader/USTPmduserapi.dll rename to vn.trader/femasGateway/USTPmduserapi.dll diff --git a/vn.trader/USTPtraderapi.dll b/vn.trader/femasGateway/USTPtraderapi.dll similarity index 100% rename from vn.trader/USTPtraderapi.dll rename to vn.trader/femasGateway/USTPtraderapi.dll diff --git a/vn.trader/femasGateway/__init__.py b/vn.trader/femasGateway/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vn.trader/femasDataType.py b/vn.trader/femasGateway/femasDataType.py similarity index 100% rename from vn.trader/femasDataType.py rename to vn.trader/femasGateway/femasDataType.py diff --git a/vn.trader/femasGateway.py b/vn.trader/femasGateway/femasGateway.py similarity index 99% rename from vn.trader/femasGateway.py rename to vn.trader/femasGateway/femasGateway.py index 0b1a13c1..281e16ef 100644 --- a/vn.trader/femasGateway.py +++ b/vn.trader/femasGateway/femasGateway.py @@ -78,6 +78,8 @@ class FemasGateway(VtGateway): """连接""" # 载入json文件 fileName = self.gatewayName + '_connect.json' + fileName = os.getcwd() + '\\femasGateway\\' + fileName + try: f = file(fileName) except IOError: diff --git a/vn.trader/vnfemasmd.pyd b/vn.trader/femasGateway/vnfemasmd.pyd similarity index 100% rename from vn.trader/vnfemasmd.pyd rename to vn.trader/femasGateway/vnfemasmd.pyd diff --git a/vn.trader/vnfemastd.pyd b/vn.trader/femasGateway/vnfemastd.pyd similarity index 100% rename from vn.trader/vnfemastd.pyd rename to vn.trader/femasGateway/vnfemastd.pyd diff --git a/vn.trader/IB_connect.json b/vn.trader/ibGateway/IB_connect.json similarity index 100% rename from vn.trader/IB_connect.json rename to vn.trader/ibGateway/IB_connect.json diff --git a/vn.trader/ibGateway/__init__.py b/vn.trader/ibGateway/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vn.trader/ibGateway.py b/vn.trader/ibGateway/ibGateway.py similarity index 99% rename from vn.trader/ibGateway.py rename to vn.trader/ibGateway/ibGateway.py index aa66beea..1b869f3b 100644 --- a/vn.trader/ibGateway.py +++ b/vn.trader/ibGateway/ibGateway.py @@ -132,6 +132,8 @@ class IbGateway(VtGateway): """连接""" # 载入json文件 fileName = self.gatewayName + '_connect.json' + fileName = os.getcwd() + '\\ibGateway\\' + fileName + try: f = file(fileName) except IOError: diff --git a/vn.trader/ksgoldGateway/KSGOLD_connect.json b/vn.trader/ksgoldGateway/KSGOLD_connect.json new file mode 100644 index 00000000..2e750cad --- /dev/null +++ b/vn.trader/ksgoldGateway/KSGOLD_connect.json @@ -0,0 +1,5 @@ +{ + "address": "tcp://124.74.239.38:18961", + "password": "请联系浦发银行申请", + "accountID": "请联系浦发银行申请" +} \ No newline at end of file diff --git a/vn.trader/ksgoldGateway/KSInterMG.dll b/vn.trader/ksgoldGateway/KSInterMG.dll new file mode 100644 index 00000000..36aebbeb Binary files /dev/null and b/vn.trader/ksgoldGateway/KSInterMG.dll differ diff --git a/vn.trader/ksgoldGateway/KSLOG.dll b/vn.trader/ksgoldGateway/KSLOG.dll new file mode 100644 index 00000000..26e21bad Binary files /dev/null and b/vn.trader/ksgoldGateway/KSLOG.dll differ diff --git a/vn.trader/ksgoldGateway/KSRsaCrypto.dll b/vn.trader/ksgoldGateway/KSRsaCrypto.dll new file mode 100644 index 00000000..bcf9cffb Binary files /dev/null and b/vn.trader/ksgoldGateway/KSRsaCrypto.dll differ diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/KS_SafeEngine.dll b/vn.trader/ksgoldGateway/SLEdll/KSCA/KS_SafeEngine.dll new file mode 100644 index 00000000..7e13b255 Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/KSCA/KS_SafeEngine.dll differ diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/SLE_KSCA.dll b/vn.trader/ksgoldGateway/SLEdll/KSCA/SLE_KSCA.dll new file mode 100644 index 00000000..29afd394 Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/KSCA/SLE_KSCA.dll differ diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/client.crt b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/client.crt new file mode 100644 index 00000000..da217330 --- /dev/null +++ b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/client.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDBTCCAe0CCQDlZanJ47kXxzANBgkqhkiG9w0BAQUFADCBjzELMAkGA1UEBhMC +Y24xETAPBgNVBAgTCHNoYW5naGFpMREwDwYDVQQHEwhzaGFuZ2hhaTERMA8GA1UE +ChMIa2luZ3N0YXIxCzAJBgNVBAsTAmtzMREwDwYDVQQDEwhraW5nc3RhcjEnMCUG +CSqGSIb3DQEJARYYbGlhbmd0YW8uc3VuQHN1bmdhcmQuY29tMB4XDTExMDQxMTA2 +NTMxMloXDTIxMDQwODA2NTMxMlowfTELMAkGA1UEBhMCY24xCzAJBgNVBAgTAmNu +MQswCQYDVQQHEwJjbjENMAsGA1UEChMEaWNiYzENMAsGA1UECxMEaWNiYzEUMBIG +A1UEAxMLaWNiYyBjbGllbnQxIDAeBgkqhkiG9w0BCQEWEWNsaWVudEBjbGllbnQu +Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCQsnbuLiW7Mm099AYutLAB +47F+CKWDuX2ITK2ZHfAntvdWZ1Z/O7EFwTXnA7TW0p6+2+YS/UzWZPWHdaLwh+NJ +Cx4410vGTeOTyif2YiMd9TqIOmoDkXVdW+mekTZaEUbpcPN6h80m6x70oPbbxm1L +ruSrp3AQBZV0ISPR+M1jdQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQCnxN12S5i1 +LXbwtZ9twlup2JE+pT3kGBpqWN7Fyc9LHTlT/QY5mc6L5/P3CwIa3Od626Uac5WN +m3orj8TOdUNJrt8dtx/vt8yaoy+LrtAWc4tuxFVAxLI64ZOvCAgGfTPAOT7vFYWI +BmjX+WOYYU++uoxMhJY8+Z9X8eof6ZCePKAFa+aloTIJ7qjamaKjGK5Mj7vMGy+j +OfyWClCdB/3HPYW1j5LkXeCxOhWNwbOQyPrUpRp8U+eIwAqCihXfWFpdsiX/Yk1e +R7MLm2vqADq3HIIU66FE+hbymHktoJAoI//YJUnzMYeivEr1vpeZIIpbM+mWI1zv +5klUo5vHhocl +-----END CERTIFICATE----- diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/client.key b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/client.key new file mode 100644 index 00000000..fa88bc42 --- /dev/null +++ b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/client.key @@ -0,0 +1,18 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,8BA7989AF6F7AA86 + +sEh+leE/EXXfxTBC/2bEOW2UOFpt19SrXR6/anGB0jXcXlcJIlv/o3qEDRlGsNXZ +/5nTnWPuA4V406dw4/f76awTxD7yYhBSmryCaj16ajwruOmX3qHCeoiYjEbIBeMD +YbllxbUdY9U6tQRV4pRTwhiCBh2aJxc89SmoffCy/ir0eEWUTKhf1d0Wi9BMDppg +JrsLvIU/8BLvELiO9YdP4T2igPHbW/X5XCtLrwwBGZ9FbJEgS7Nxj3jkwvB2B6WR +t+MKp8D1n9rTfTKM4ThLLdHMIxRnds3qwr3OGMoiGpjeo8YgktOrwRuqr4WjDhs8 +m+WBZMJpC3svh/bhc+db20FuZZKAo98zj2VwPNbR0p1vJDFJSM7xV4s1rVMwY8KW +zfaBCoOrQztwr1wuvZ060fW4b8GKPMaUCazpdkvjyQuoNu/dwJ5duXryTkXAxvEd +aBQtcw0kRFwbyyJD0EQx4xkgiWTEMURdYLoKKp0jfpSZWGnUyUgJbGq1H1rUEqgD +JUUvylBzcxvLqlAkOurth3kzdeYBjoUrVoro9KBHaEi6O9uZvvXvoCRivUBYquUd +Bcr3wD4YupAx52uZheGWHZkRPle3BJ4zB/p1gu2dl/ayvsICg5aE7sTkUe1YAuWk +Jx9bJUDDmDVIqFa4VZRS32ZjgLUjck8HUkBV6EkxqSDboDTNoGUuGljiYHLKkdy0 +1Mug2AUauXo8WTg9Xoq8cBjL4nslwm5vWGKKI31IobTDo03cFRNnFfXpgerQXanG +h5dDd4AXZ6Ls5DHlqjGvnXbmHFiMvF+2Fx9z98ssvsXgKl+fYBI9hQ== +-----END RSA PRIVATE KEY----- diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/ksca.crt b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/ksca.crt new file mode 100644 index 00000000..cf8b3dba --- /dev/null +++ b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/ksca.crt @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEmzCCA4OgAwIBAgIJAPhIQpJyz3GhMA0GCSqGSIb3DQEBBQUAMIGPMQswCQYD +VQQGEwJjbjERMA8GA1UECBMIc2hhbmdoYWkxETAPBgNVBAcTCHNoYW5naGFpMREw +DwYDVQQKEwhraW5nc3RhcjELMAkGA1UECxMCa3MxETAPBgNVBAMTCGtpbmdzdGFy +MScwJQYJKoZIhvcNAQkBFhhsaWFuZ3Rhby5zdW5Ac3VuZ2FyZC5jb20wHhcNMTEw +NDExMDYzMjQxWhcNMjEwNDA4MDYzMjQxWjCBjzELMAkGA1UEBhMCY24xETAPBgNV +BAgTCHNoYW5naGFpMREwDwYDVQQHEwhzaGFuZ2hhaTERMA8GA1UEChMIa2luZ3N0 +YXIxCzAJBgNVBAsTAmtzMREwDwYDVQQDEwhraW5nc3RhcjEnMCUGCSqGSIb3DQEJ +ARYYbGlhbmd0YW8uc3VuQHN1bmdhcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA9JPCzpjiDBLT3BpZxFiBngOzNkR1kma/CjRGoJaFuPXOBA9S +D7jpYF4Yxb5IlYajmtCY+EAYY1Q3peZUcLolvaHCFLCY76ehOU7Zfy0BVk4Da9Kw +Ey8dTgJj6n/H0G7g2Tc1hy/FuTOi4Lgly3L99gp3vl76Lwd7c24C/f4HYuuMJrFQ +IXq9ijaenyDGQj2XgxobMsJl6B6NB3Hafz79oi22WvqNjCMcURVzikgv8GhKieu0 +5GPSv1hhreMUF/JnRsBJ9Gx8kXf9gIO0bNHi2BzUv73LuvT7tnbgYVokyIw9BI+K +yJYRKjG6xvFHFhcwlk575Zopwuwr+QZP/s9UYwIDAQABo4H3MIH0MB0GA1UdDgQW +BBQhx5NGyEPmN3ywGMizyHvXoHv4VTCBxAYDVR0jBIG8MIG5gBQhx5NGyEPmN3yw +GMizyHvXoHv4VaGBlaSBkjCBjzELMAkGA1UEBhMCY24xETAPBgNVBAgTCHNoYW5n +aGFpMREwDwYDVQQHEwhzaGFuZ2hhaTERMA8GA1UEChMIa2luZ3N0YXIxCzAJBgNV +BAsTAmtzMREwDwYDVQQDEwhraW5nc3RhcjEnMCUGCSqGSIb3DQEJARYYbGlhbmd0 +YW8uc3VuQHN1bmdhcmQuY29tggkA+EhCknLPcaEwDAYDVR0TBAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAe6S34KQYELQn433EbKrYaxe0t5fRrmkyZs6DVmReVt9n +GUAfgZptcz3sbnLWJ9dJztS+LJmjWptmBlYt50v77wnrRknv6HvjpikMWuTQpmNu +le+X+xv93IJ7ZJBq/PdoMurHsuhptNWNHO5XzDLP0ojoBBSiUnf3Spo1+hdXsDhb +J8sjQhHywGTlM0CyWuezCnXUrqoS8Q6W/10mibOLOTIpwUC0eVF/Ww34jj9NHFhf +u15CqWo9bzReP2asvWxmeFUleOzO/3rmW0ymPCS6JgVbgoF7EVxTXmwHCgU07ota +OoG0Y/8F/8LULKmtnia5vkaivprMn7CUF/eHyyntJg== +-----END CERTIFICATE----- diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/ksca.key b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/ksca.key new file mode 100644 index 00000000..2d617fe2 --- /dev/null +++ b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/ksca.key @@ -0,0 +1,30 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,992E4B4C9103133C + +snqwb8vXf5EXsP1/ersDUy/Nq0EKbeLbKA+TaZw5nDOdFqD8rFDP+qzirEEP2ye9 +ylAQOJ9vKGFB9oQxpvYzRdTtOirN4S/jef3X1Q8Q63L1WQZb7m/l3uRIgY69X5NM +cRHgPbiiMnkdForrfgTwxtIWUUfyQ6YwnzASe19rD6XztbTX/swyEKWR58pYQFVf +eNraReMtK2Hkn2eyJF/Dg9Wr30ntsOcZgjxY1rw0/QIL6KeKF0Oy/CHzsU+lZYTB +TnSdC1WKAV9oOaOtcz7ZrJaG6e6EPpEE5d7dS3lKui7Ih1t0jUeTwvF/ihpnfczs +t0gS6AYCepLKQoKuHqSt0uWpbJftH3FTCOEnO3G9ggo6ExqZJI8hvMDGc1YBQrTt +gLNujDXgxjykjJto+vbTYc+r39ZWxsNbIz3sMVX1naf1+3xuJvadQ08p7WR9c8RP +i/xLsHn4rOnclo4O5Q0OMBmXJWGb9kNq/EaVFifddFDhW6o9yg+2P6uKgfdVQmQy +TMp7uV7pme2QwqJ2FUyfrjEzpFQZEqEzVJs/IzggnH6dLlsRnJUAeB2mPhv03oIl +r8xpelc980L1R4Q2Mk7GH/cNIeCThrqLXKGUab8RkjWfaVWtqvjdjhA1qrkib3UJ +G+qL1ZKXK2C3WIKTCM9drdrvpo2IDJn9RZ3dq0cO8UtOS5kAjDFQXD7dl3dohNpD +Fq8OsxAuUGdSP02OWbZneD6Wf36ddpWUt0IyO30Q238xh5zN95jdjF+gvFg6KUzV +7d+3cf+kO41nAO+5mRGrVLqI0Xs7nGrnWKc3demlOmnJp7Xt5mm6TlS1G51Dcehg +0OjaoBJASzamqAWJ52cVMMbDHJpbNFPbfd3Ye9p2Mnh8E0pwRNBjpy7WAVPWykEk +T3sceRFljSCLUBkjf0u1ih14LpPjSSNmU+g4h5AXesVAzIU40SFpzyFVr/fj8a0o +2lkgC7nzUtn0BuIjLXavjdhGWb+s8kWzE0yV/jTGg8AtkW7PD0GzZ1bqGsCe6gDm +JfLfym5jlrILwJMTH+vMNpNP6z1sEJ/XvcfWzTy18klOWovwdKMwlyM2rxn5mzU9 +gB3eVIpC1NuacxlvWzRJ9V94oH36zyWgmHMNy6UUEZlR6vOcobOAUqX0QDNC5yl4 +RiZukMGU6ftAuw4zIImei7XQU5eDDm6nJuiCeGyDkt8ZokAjTSluRQFckohaF87l +ZWbg8Vwout8wClJ8Niky3+XVOFV2IMQrRn8olAuZQr3ARuDlyKgernpwTTfsCQLM +iKeO/wQAaeynBXtX0dVpiohsBsawBVHjDWq+Yi+ZZKzx9z5uto8wJ450Um1o0Ilz +ASITx5fcV+oDxG13arez+iWt5Shf2whlej8vsqlMx7pIjbq5fg/Q71LQb0JYEOEf +lnTm8a/tPLwuuht1+5WXGCg5tZ9dtbn0ROpaQpLmej1IjnJ6L2ZH66+66Mu/RpUY +BqpcWkiZKhtt82dKbGtZ0lgaCmQScKEhRGm+yBK5rhrw1j+tU3BssK5cdsLgXvGm +NuTFnXZMUVNpQInc+53gGx+lZsYg1LFHIPjMbjTW83ooXXrW8kRvNA== +-----END RSA PRIVATE KEY----- diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/server.crt b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/server.crt new file mode 100644 index 00000000..a81f40c1 --- /dev/null +++ b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/server.crt @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC+jCCAeICCQDlZanJ47kXyDANBgkqhkiG9w0BAQUFADCBjzELMAkGA1UEBhMC +Y24xETAPBgNVBAgTCHNoYW5naGFpMREwDwYDVQQHEwhzaGFuZ2hhaTERMA8GA1UE +ChMIa2luZ3N0YXIxCzAJBgNVBAsTAmtzMREwDwYDVQQDEwhraW5nc3RhcjEnMCUG +CSqGSIb3DQEJARYYbGlhbmd0YW8uc3VuQHN1bmdhcmQuY29tMB4XDTExMDQxMTA3 +MDA1MFoXDTIxMDQwODA3MDA1MFowcjELMAkGA1UEBhMCY24xCzAJBgNVBAgTAmJq +MQswCQYDVQQHEwJiajENMAsGA1UEChMEaWNiYzENMAsGA1UECxMEaWNiYzENMAsG +A1UEAxMEaWNiYzEcMBoGCSqGSIb3DQEJARYNaWNiY0BpY2JjLmNvbTCBnzANBgkq +hkiG9w0BAQEFAAOBjQAwgYkCgYEAz8thS2+22rxPzmcmvGIiUuo+pKTglZyGX8zg +AJMIUEoZodFawuBKiLmghVSebL7LsXOuqh7QtL1TBnX7Ob+yxT8ORiotgMpaNlcF +cJPYpeVlQ1JnnCgXWcbtXL0/XdHCvyVQmhzikL2F5f3ONNzbG3hkm2BZtaqSbRyW +RGcAtI0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAXlK6gp+WWetG86TIjMPL7GoI +RTlQJgBiAueg5eSDBxSwH1LxAsBUjCmrPu75pqPCziFk9L4m4tIS8Fj/+fprqt4Z +VmGjBiGi0Gyd29EvZQ/xDCejJVk/UY9EBYCQOhAMMxX5zNo0CGeYDDRp9/2GzRWb +vuPy9UORqyN6eeZ9F3pCF7N4UxIWkwe/TGVVqoa/49dmJz//R5pG5b+roALUSUjd +S5xXOMhh2XrnGv+m83kDIR//GKfHvlXByakJXK5QN0SnK31R8Vx5yrJsLhBuO6xl +cEptDeShg8Qb+dIHAPk2n4FQ8EdQ/QcSDRAr15q8I/mQrgKg9VLCLgUt5b5hww== +-----END CERTIFICATE----- diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/server.key b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/server.key new file mode 100644 index 00000000..4a680689 --- /dev/null +++ b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/server.key @@ -0,0 +1,18 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,88F693FD0F362212 + +FASYVUUP5rX7H1jkrladPQxTmdjfQ1gCOL/GtityDevQhoU5KHieG+EzpZIBKX/e +KAjtf0bwbT4zsbovlZuFGGM8ok1Myp1bHl7ye9+ZfA527u2sH028mw1HYv6OwvH1 +fQ0tSX6kyAvvv6FdkiFhD3CGtnJa1QvXotHhTi3qE1A/bimnHypZW87u/naHlxEL +jG56cCmlKuO3FNPkXFl09VrPRBy2aF+7g/qzAEEUaL3Ua8QHyX16AfzA20WSgWzE +JyrOTIAf70hT+edeR9OzYBs5j4GNhetZB1dVCg1JjsnF/wVIUOWvPN5eC2vp9Ntg +q5+b3yHLwEqy8J2bg45RF724U7d7JdhP7REhISFtrp+PNn10awJG9azcOUN1LbkA +ncvuRUfbptRKYwIuYvihmPB6HCrIFlE2mv/ehaUd4leEaLJ7PRW622wpSUXa50Pf +GEVC8Tr+T5Vgut5+FyOEqw1w6k+Z9CWUc1cafnc9IVI6HDLSnB+cOTFoi3BTIeci +l4TbUO683o9I66MbTF+Wsu0OQ/2f353GbptTH44/0bnMIWTPhf/k4MH23p/doUej +4N78UorNWv5sl4WKOo8/f4IC8MEk+QXkwHHrcu5ix5E83yDRYN/JNmaZ9OdST0J3 +MF09yLwd46QzrVVCmvu5T840PIWlbht27InGEYDxbIaJ8V4oqoJP4pUnqOxG3lT9 +BPQOnk1uo5k4On+oKpGyAAqaOyLjOh/bEGbFYgCZ9fPKPRwXpSzsSh2xZW1U+dlL +R4W3/0LdjY/HXQhM92lHVe8iFEh07O1umNgw0W/rP9sjkAS3yyjxpw== +-----END RSA PRIVATE KEY----- diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/vssver2.scc b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/vssver2.scc new file mode 100644 index 00000000..1fdac80e Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/KSCA/ksca/vssver2.scc differ diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/libeay32.dll b/vn.trader/ksgoldGateway/SLEdll/KSCA/libeay32.dll new file mode 100644 index 00000000..c82c3e99 Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/KSCA/libeay32.dll differ diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/libssl32.dll b/vn.trader/ksgoldGateway/SLEdll/KSCA/libssl32.dll new file mode 100644 index 00000000..6d966955 Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/KSCA/libssl32.dll differ diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/ssleay32.dll b/vn.trader/ksgoldGateway/SLEdll/KSCA/ssleay32.dll new file mode 100644 index 00000000..6d966955 Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/KSCA/ssleay32.dll differ diff --git a/vn.trader/ksgoldGateway/SLEdll/KSCA/vssver2.scc b/vn.trader/ksgoldGateway/SLEdll/KSCA/vssver2.scc new file mode 100644 index 00000000..dbbead06 Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/KSCA/vssver2.scc differ diff --git a/vn.trader/ksgoldGateway/SLEdll/SafeLoginEngine.ini b/vn.trader/ksgoldGateway/SLEdll/SafeLoginEngine.ini new file mode 100644 index 00000000..d7d044a6 --- /dev/null +++ b/vn.trader/ksgoldGateway/SLEdll/SafeLoginEngine.ini @@ -0,0 +1,16 @@ +[SafePolicy] +; = ȫ +1 = ̬ +2 = ֤ + +[SafeSupplier] +; = ̼ƣʶӿǷҪṩ˽Կ +1 = ϺECA,SHECA,1 +2 = Ϻ,DCDT,1 +3 = ˴SSL,KSCA,1 + +[SupplierPolicy] +; =ȫ +1 = 3,2 + + diff --git a/vn.trader/ksgoldGateway/SLEdll/vssver2.scc b/vn.trader/ksgoldGateway/SLEdll/vssver2.scc new file mode 100644 index 00000000..761c4b61 Binary files /dev/null and b/vn.trader/ksgoldGateway/SLEdll/vssver2.scc differ diff --git a/vn.trader/ksgoldGateway/__init__.py b/vn.trader/ksgoldGateway/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vn.trader/ksgoldGateway/goldtradeapi.dll b/vn.trader/ksgoldGateway/goldtradeapi.dll new file mode 100644 index 00000000..08026d07 Binary files /dev/null and b/vn.trader/ksgoldGateway/goldtradeapi.dll differ diff --git a/vn.trader/ksgoldGateway/goldtradeapi.lib b/vn.trader/ksgoldGateway/goldtradeapi.lib new file mode 100644 index 00000000..abb3f415 Binary files /dev/null and b/vn.trader/ksgoldGateway/goldtradeapi.lib differ diff --git a/vn.trader/ksgoldGateway/ksSafeLoginEngineG.dll b/vn.trader/ksgoldGateway/ksSafeLoginEngineG.dll new file mode 100644 index 00000000..89b89c5e Binary files /dev/null and b/vn.trader/ksgoldGateway/ksSafeLoginEngineG.dll differ diff --git a/vn.trader/ksgoldGateway/ksgoldDataType.py b/vn.trader/ksgoldGateway/ksgoldDataType.py new file mode 100644 index 00000000..3cb390b1 --- /dev/null +++ b/vn.trader/ksgoldGateway/ksgoldDataType.py @@ -0,0 +1,4879 @@ +# encoding: UTF-8 + +defineDict = {} +typedefDict = {} + + + +#////////////////////////////////////////////////////////////////////// +#TFtdcTraderIDType是一个交易所交易员代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTraderIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorIDType是一个投资者代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInvestorIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerIDType是一个经纪公司代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBrokerIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerAbbrType是一个经纪公司简称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBrokerAbbrType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerNameType是一个经纪公司名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBrokerNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeInstIDType是一个合约在交易所的代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcExchangeInstIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderRefType是一个报单引用类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrderRefType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcParticipantIDType是一个会员代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcParticipantIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserIDType是一个用户代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUserIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPasswordType是一个密码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPasswordType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClientIDType是一个交易编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClientIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstrumentIDType是一个合约代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInstrumentIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMarketIDType是一个市场代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMarketIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProductNameType是一个产品名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProductNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeIDType是一个交易所代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcExchangeIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeNameType是一个交易所名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcExchangeNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeAbbrType是一个交易所简称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcExchangeAbbrType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeFlagType是一个交易所标志类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcExchangeFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMacAddressType是一个Mac地址类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMacAddressType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangePropertyType是一个交易所属性类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_EXP_Normal"] = '0' +#根据成交生成报单 +defineDict["THOST_FTDC_EXP_GenOrderByTrade"] = '1' + +typedefDict["TThostFtdcExchangePropertyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDateType是一个日期类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTimeType是一个时间类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTimeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLongTimeType是一个长时间类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLongTimeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstrumentNameType是一个合约名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInstrumentNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettlementGroupIDType是一个结算组代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSettlementGroupIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderSysIDType是一个报单编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrderSysIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeIDType是一个成交编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommandTypeType是一个DB命令类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCommandTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIPAddressType是一个IP地址类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcIPAddressType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProductInfoType是一个产品信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProductInfoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProtocolInfoType是一个协议信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProtocolInfoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBusinessUnitType是一个业务单元类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBusinessUnitType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDepositSeqNoType是一个出入金流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDepositSeqNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIdentifiedCardNoType是一个证件号码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcIdentifiedCardNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIdCardTypeType是一个证件类型类型 +#////////////////////////////////////////////////////////////////////// +#组织机构代码 +defineDict["THOST_FTDC_ICT_EID"] = '0' +#身份证 +defineDict["THOST_FTDC_ICT_IDCard"] = '1' +#军官证 +defineDict["THOST_FTDC_ICT_OfficerIDCard"] = '2' +#警官证 +defineDict["THOST_FTDC_ICT_PoliceIDCard"] = '3' +#士兵证 +defineDict["THOST_FTDC_ICT_SoldierIDCard"] = '4' +#户口簿 +defineDict["THOST_FTDC_ICT_HouseholdRegister"] = '5' +#护照 +defineDict["THOST_FTDC_ICT_Passport"] = '6' +#台胞证 +defineDict["THOST_FTDC_ICT_TaiwanCompatriotIDCard"] = '7' +#回乡证 +defineDict["THOST_FTDC_ICT_HomeComingCard"] = '8' +#营业执照号 +defineDict["THOST_FTDC_ICT_LicenseNo"] = '9' +#税务登记号 +defineDict["THOST_FTDC_ICT_TaxNo"] = 'A' +#其他证件 +defineDict["THOST_FTDC_ICT_OtherCard"] = 'x' + +typedefDict["TThostFtdcIdCardTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderLocalIDType是一个本地报单编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrderLocalIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserNameType是一个用户名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUserNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPartyNameType是一个参与人名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPartyNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcErrorMsgType是一个错误信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcErrorMsgType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFieldNameType是一个字段名类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFieldNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFieldContentType是一个字段内容类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFieldContentType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSystemNameType是一个系统名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSystemNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcContentType是一个消息正文类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcContentType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorRangeType是一个投资者范围类型 +#////////////////////////////////////////////////////////////////////// +#所有 +defineDict["THOST_FTDC_IR_All"] = '1' +#投资者组 +defineDict["THOST_FTDC_IR_Group"] = '2' +#单一投资者 +defineDict["THOST_FTDC_IR_Single"] = '3' + +typedefDict["TThostFtdcInvestorRangeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDepartmentRangeType是一个投资者范围类型 +#////////////////////////////////////////////////////////////////////// +#所有 +defineDict["THOST_FTDC_DR_All"] = '1' +#组织架构 +defineDict["THOST_FTDC_DR_Group"] = '2' +#单一投资者 +defineDict["THOST_FTDC_DR_Single"] = '3' + +typedefDict["TThostFtdcDepartmentRangeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDataSyncStatusType是一个数据同步状态类型 +#////////////////////////////////////////////////////////////////////// +#未同步 +defineDict["THOST_FTDC_DS_Asynchronous"] = '1' +#同步中 +defineDict["THOST_FTDC_DS_Synchronizing"] = '2' +#已同步 +defineDict["THOST_FTDC_DS_Synchronized"] = '3' + +typedefDict["TThostFtdcDataSyncStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerDataSyncStatusType是一个经纪公司数据同步状态类型 +#////////////////////////////////////////////////////////////////////// +#已同步 +defineDict["THOST_FTDC_BDS_Synchronized"] = '1' +#同步中 +defineDict["THOST_FTDC_BDS_Synchronizing"] = '2' + +typedefDict["TThostFtdcBrokerDataSyncStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeConnectStatusType是一个交易所连接状态类型 +#////////////////////////////////////////////////////////////////////// +#没有任何连接 +defineDict["THOST_FTDC_ECS_NoConnection"] = '1' +#已经发出合约查询请求 +defineDict["THOST_FTDC_ECS_QryInstrumentSent"] = '2' +#已经获取信息 +defineDict["THOST_FTDC_ECS_GotInformation"] = '9' + +typedefDict["TThostFtdcExchangeConnectStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTraderConnectStatusType是一个交易所交易员连接状态类型 +#////////////////////////////////////////////////////////////////////// +#没有任何连接 +defineDict["THOST_FTDC_TCS_NotConnected"] = '1' +#已经连接 +defineDict["THOST_FTDC_TCS_Connected"] = '2' +#已经发出合约查询请求 +defineDict["THOST_FTDC_TCS_QryInstrumentSent"] = '3' +#订阅私有流 +defineDict["THOST_FTDC_TCS_SubPrivateFlow"] = '4' + +typedefDict["TThostFtdcTraderConnectStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFunctionCodeType是一个功能代码类型 +#////////////////////////////////////////////////////////////////////// +#数据异步化 +defineDict["THOST_FTDC_FC_DataAsync"] = '1' +#强制用户登出 +defineDict["THOST_FTDC_FC_ForceUserLogout"] = '2' +#变更管理用户口令 +defineDict["THOST_FTDC_FC_UserPasswordUpdate"] = '3' +#变更经纪公司口令 +defineDict["THOST_FTDC_FC_BrokerPasswordUpdate"] = '4' +#变更投资者口令 +defineDict["THOST_FTDC_FC_InvestorPasswordUpdate"] = '5' +#报单插入 +defineDict["THOST_FTDC_FC_OrderInsert"] = '6' +#报单操作 +defineDict["THOST_FTDC_FC_OrderAction"] = '7' +#同步系统数据 +defineDict["THOST_FTDC_FC_SyncSystemData"] = '8' +#同步经纪公司数据 +defineDict["THOST_FTDC_FC_SyncBrokerData"] = '9' +#批量同步经纪公司数据 +defineDict["THOST_FTDC_FC_BachSyncBrokerData"] = 'A' +#超级查询 +defineDict["THOST_FTDC_FC_SuperQuery"] = 'B' +#报单插入 +defineDict["THOST_FTDC_FC_ParkedOrderInsert"] = 'C' +#报单操作 +defineDict["THOST_FTDC_FC_ParkedOrderAction"] = 'D' +#同步动态令牌 +defineDict["THOST_FTDC_FC_SyncOTP"] = 'E' + +typedefDict["TThostFtdcFunctionCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerFunctionCodeType是一个经纪公司功能代码类型 +#////////////////////////////////////////////////////////////////////// +#强制用户登出 +defineDict["THOST_FTDC_BFC_ForceUserLogout"] = '1' +#变更用户口令 +defineDict["THOST_FTDC_BFC_UserPasswordUpdate"] = '2' +#同步经纪公司数据 +defineDict["THOST_FTDC_BFC_SyncBrokerData"] = '3' +#批量同步经纪公司数据 +defineDict["THOST_FTDC_BFC_BachSyncBrokerData"] = '4' +#报单插入 +defineDict["THOST_FTDC_BFC_OrderInsert"] = '5' +#报单操作 +defineDict["THOST_FTDC_BFC_OrderAction"] = '6' +#全部查询 +defineDict["THOST_FTDC_BFC_AllQuery"] = '7' +#系统功能:登入/登出/修改密码等 +defineDict["THOST_FTDC_BFC_log"] = 'a' +#基本查询:查询基础数据,如合约,交易所等常量 +defineDict["THOST_FTDC_BFC_BaseQry"] = 'b' +#交易查询:如查成交,委托 +defineDict["THOST_FTDC_BFC_TradeQry"] = 'c' +#交易功能:报单,撤单 +defineDict["THOST_FTDC_BFC_Trade"] = 'd' +#银期转账 +defineDict["THOST_FTDC_BFC_Virement"] = 'e' +#风险监控 +defineDict["THOST_FTDC_BFC_Risk"] = 'f' +#查询/管理:查询会话,踢人等 +defineDict["THOST_FTDC_BFC_Session"] = 'g' +#风控通知控制 +defineDict["THOST_FTDC_BFC_RiskNoticeCtl"] = 'h' +#风控通知发送 +defineDict["THOST_FTDC_BFC_RiskNotice"] = 'i' +#察看经纪公司资金权限 +defineDict["THOST_FTDC_BFC_BrokerDeposit"] = 'j' +#资金查询 +defineDict["THOST_FTDC_BFC_QueryFund"] = 'k' +#报单查询 +defineDict["THOST_FTDC_BFC_QueryOrder"] = 'l' +#成交查询 +defineDict["THOST_FTDC_BFC_QueryTrade"] = 'm' +#持仓查询 +defineDict["THOST_FTDC_BFC_QueryPosition"] = 'n' +#行情查询 +defineDict["THOST_FTDC_BFC_QueryMarketData"] = 'o' +#用户事件查询 +defineDict["THOST_FTDC_BFC_QueryUserEvent"] = 'p' +#风险通知查询 +defineDict["THOST_FTDC_BFC_QueryRiskNotify"] = 'q' +#出入金查询 +defineDict["THOST_FTDC_BFC_QueryFundChange"] = 'r' +#投资者信息查询 +defineDict["THOST_FTDC_BFC_QueryInvestor"] = 's' +#交易编码查询 +defineDict["THOST_FTDC_BFC_QueryTradingCode"] = 't' +#强平 +defineDict["THOST_FTDC_BFC_ForceClose"] = 'u' +#压力测试 +defineDict["THOST_FTDC_BFC_PressTest"] = 'v' +#权益反算 +defineDict["THOST_FTDC_BFC_RemainCalc"] = 'w' +#净持仓保证金指标 +defineDict["THOST_FTDC_BFC_NetPositionInd"] = 'x' +#风险预算 +defineDict["THOST_FTDC_BFC_RiskPredict"] = 'y' +#数据导出 +defineDict["THOST_FTDC_BFC_DataExport"] = 'z' +#风控指标设置 +defineDict["THOST_FTDC_BFC_RiskTargetSetup"] = 'A' +#行情预警 +defineDict["THOST_FTDC_BFC_MarketDataWarn"] = 'B' +#业务通知查询 +defineDict["THOST_FTDC_BFC_QryBizNotice"] = 'C' +#业务通知模板设置 +defineDict["THOST_FTDC_BFC_CfgBizNotice"] = 'D' +#同步动态令牌 +defineDict["THOST_FTDC_BFC_SyncOTP"] = 'E' +#发送业务通知 +defineDict["THOST_FTDC_BFC_SendBizNotice"] = 'F' +#风险级别标准设置 +defineDict["THOST_FTDC_BFC_CfgRiskLevelStd"] = 'G' + +typedefDict["TThostFtdcBrokerFunctionCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderActionStatusType是一个报单操作状态类型 +#////////////////////////////////////////////////////////////////////// +#已经提交 +defineDict["THOST_FTDC_OAS_Submitted"] = 'a' +#已经接受 +defineDict["THOST_FTDC_OAS_Accepted"] = 'b' +#已经被拒绝 +defineDict["THOST_FTDC_OAS_Rejected"] = 'c' + +typedefDict["TThostFtdcOrderActionStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderStatusType是一个报单状态类型 +#////////////////////////////////////////////////////////////////////// +#全部成交 +defineDict["THOST_FTDC_OST_AllTraded"] = '0' +#部分成交还在队列中 +defineDict["THOST_FTDC_OST_PartTradedQueueing"] = '1' +#部分成交不在队列中 +defineDict["THOST_FTDC_OST_PartTradedNotQueueing"] = '2' +#未成交还在队列中 +defineDict["THOST_FTDC_OST_NoTradeQueueing"] = '3' +#未成交不在队列中 +defineDict["THOST_FTDC_OST_NoTradeNotQueueing"] = '4' +#撤单 +defineDict["THOST_FTDC_OST_Canceled"] = '5' +#未知 +defineDict["THOST_FTDC_OST_Unknown"] = 'a' +#尚未触发 +defineDict["THOST_FTDC_OST_NotTouched"] = 'b' +#已触发 +defineDict["THOST_FTDC_OST_Touched"] = 'c' + +typedefDict["TThostFtdcOrderStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderSubmitStatusType是一个报单提交状态类型 +#////////////////////////////////////////////////////////////////////// +#已经提交 +defineDict["THOST_FTDC_OSS_InsertSubmitted"] = '0' +#撤单已经提交 +defineDict["THOST_FTDC_OSS_CancelSubmitted"] = '1' +#修改已经提交 +defineDict["THOST_FTDC_OSS_ModifySubmitted"] = '2' +#已经接受 +defineDict["THOST_FTDC_OSS_Accepted"] = '3' +#报单已经被拒绝 +defineDict["THOST_FTDC_OSS_InsertRejected"] = '4' +#撤单已经被拒绝 +defineDict["THOST_FTDC_OSS_CancelRejected"] = '5' +#改单已经被拒绝 +defineDict["THOST_FTDC_OSS_ModifyRejected"] = '6' + +typedefDict["TThostFtdcOrderSubmitStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPositionDateType是一个持仓日期类型 +#////////////////////////////////////////////////////////////////////// +#今日持仓 +defineDict["THOST_FTDC_PSD_Today"] = '1' +#历史持仓 +defineDict["THOST_FTDC_PSD_History"] = '2' + +typedefDict["TThostFtdcPositionDateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPositionDateTypeType是一个持仓日期类型类型 +#////////////////////////////////////////////////////////////////////// +#使用历史持仓 +defineDict["THOST_FTDC_PDT_UseHistory"] = '1' +#不使用历史持仓 +defineDict["THOST_FTDC_PDT_NoUseHistory"] = '2' + +typedefDict["TThostFtdcPositionDateTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradingRoleType是一个交易角色类型 +#////////////////////////////////////////////////////////////////////// +#代理 +defineDict["THOST_FTDC_ER_Broker"] = '1' +#自营 +defineDict["THOST_FTDC_ER_Host"] = '2' +#做市商 +defineDict["THOST_FTDC_ER_Maker"] = '3' + +typedefDict["TThostFtdcTradingRoleType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProductClassType是一个产品类型类型 +#////////////////////////////////////////////////////////////////////// +#期货 +defineDict["THOST_FTDC_PC_Futures"] = '1' +#期权 +defineDict["THOST_FTDC_PC_Options"] = '2' +#组合 +defineDict["THOST_FTDC_PC_Combination"] = '3' +#即期 +defineDict["THOST_FTDC_PC_Spot"] = '4' +#期转现 +defineDict["THOST_FTDC_PC_EFP"] = '5' + +typedefDict["TThostFtdcProductClassType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstLifePhaseType是一个合约生命周期状态类型 +#////////////////////////////////////////////////////////////////////// +#未上市 +defineDict["THOST_FTDC_IP_NotStart"] = '0' +#上市 +defineDict["THOST_FTDC_IP_Started"] = '1' +#停牌 +defineDict["THOST_FTDC_IP_Pause"] = '2' +#到期 +defineDict["THOST_FTDC_IP_Expired"] = '3' + +typedefDict["TThostFtdcInstLifePhaseType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDirectionType是一个买卖方向类型 +#////////////////////////////////////////////////////////////////////// +#买 +defineDict["THOST_FTDC_D_Buy"] = '0' +#卖 +defineDict["THOST_FTDC_D_Sell"] = '1' + +typedefDict["TThostFtdcDirectionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPositionTypeType是一个持仓类型类型 +#////////////////////////////////////////////////////////////////////// +#净持仓 +defineDict["THOST_FTDC_PT_Net"] = '1' +#综合持仓 +defineDict["THOST_FTDC_PT_Gross"] = '2' + +typedefDict["TThostFtdcPositionTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPosiDirectionType是一个持仓多空方向类型 +#////////////////////////////////////////////////////////////////////// +#净 +defineDict["THOST_FTDC_PD_Net"] = '1' +#多头 +defineDict["THOST_FTDC_PD_Long"] = '2' +#空头 +defineDict["THOST_FTDC_PD_Short"] = '3' + +typedefDict["TThostFtdcPosiDirectionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSysSettlementStatusType是一个系统结算状态类型 +#////////////////////////////////////////////////////////////////////// +#不活跃 +defineDict["THOST_FTDC_SS_NonActive"] = '1' +#启动 +defineDict["THOST_FTDC_SS_Startup"] = '2' +#操作 +defineDict["THOST_FTDC_SS_Operating"] = '3' +#结算 +defineDict["THOST_FTDC_SS_Settlement"] = '4' +#结算完成 +defineDict["THOST_FTDC_SS_SettlementFinished"] = '5' + +typedefDict["TThostFtdcSysSettlementStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRatioAttrType是一个费率属性类型 +#////////////////////////////////////////////////////////////////////// +#交易费率 +defineDict["THOST_FTDC_RA_Trade"] = '0' +#结算费率 +defineDict["THOST_FTDC_RA_Settlement"] = '1' + +typedefDict["TThostFtdcRatioAttrType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcHedgeFlagType是一个投机套保标志类型 +#////////////////////////////////////////////////////////////////////// +#投机 +defineDict["THOST_FTDC_HF_Speculation"] = '1' +#套利 +defineDict["THOST_FTDC_HF_Arbitrage"] = '2' +#套保 +defineDict["THOST_FTDC_HF_Hedge"] = '3' + +typedefDict["TThostFtdcHedgeFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBillHedgeFlagType是一个投机套保标志类型 +#////////////////////////////////////////////////////////////////////// +#投机 +defineDict["THOST_FTDC_BHF_Speculation"] = '1' +#套利 +defineDict["THOST_FTDC_BHF_Arbitrage"] = '2' +#套保 +defineDict["THOST_FTDC_BHF_Hedge"] = '3' + +typedefDict["TThostFtdcBillHedgeFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClientIDTypeType是一个交易编码类型类型 +#////////////////////////////////////////////////////////////////////// +#投机 +defineDict["THOST_FTDC_CIDT_Speculation"] = '1' +#套利 +defineDict["THOST_FTDC_CIDT_Arbitrage"] = '2' +#套保 +defineDict["THOST_FTDC_CIDT_Hedge"] = '3' + +typedefDict["TThostFtdcClientIDTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderPriceTypeType是一个报单价格条件类型 +#////////////////////////////////////////////////////////////////////// +#任意价 +defineDict["THOST_FTDC_OPT_AnyPrice"] = '1' +#限价 +defineDict["THOST_FTDC_OPT_LimitPrice"] = '2' +#最优价 +defineDict["THOST_FTDC_OPT_BestPrice"] = '3' +#最新价 +defineDict["THOST_FTDC_OPT_LastPrice"] = '4' +#最新价浮动上浮1个ticks +defineDict["THOST_FTDC_OPT_LastPricePlusOneTicks"] = '5' +#最新价浮动上浮2个ticks +defineDict["THOST_FTDC_OPT_LastPricePlusTwoTicks"] = '6' +#最新价浮动上浮3个ticks +defineDict["THOST_FTDC_OPT_LastPricePlusThreeTicks"] = '7' +#卖一价 +defineDict["THOST_FTDC_OPT_AskPrice1"] = '8' +#卖一价浮动上浮1个ticks +defineDict["THOST_FTDC_OPT_AskPrice1PlusOneTicks"] = '9' +#卖一价浮动上浮2个ticks +defineDict["THOST_FTDC_OPT_AskPrice1PlusTwoTicks"] = 'A' +#卖一价浮动上浮3个ticks +defineDict["THOST_FTDC_OPT_AskPrice1PlusThreeTicks"] = 'B' +#买一价 +defineDict["THOST_FTDC_OPT_BidPrice1"] = 'C' +#买一价浮动上浮1个ticks +defineDict["THOST_FTDC_OPT_BidPrice1PlusOneTicks"] = 'D' +#买一价浮动上浮2个ticks +defineDict["THOST_FTDC_OPT_BidPrice1PlusTwoTicks"] = 'E' +#买一价浮动上浮3个ticks +defineDict["THOST_FTDC_OPT_BidPrice1PlusThreeTicks"] = 'F' + +typedefDict["TThostFtdcOrderPriceTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOffsetFlagType是一个开平标志类型 +#////////////////////////////////////////////////////////////////////// +#开仓 +defineDict["THOST_FTDC_OF_Open"] = '0' +#平仓 +defineDict["THOST_FTDC_OF_Close"] = '1' +#强平 +defineDict["THOST_FTDC_OF_ForceClose"] = '2' +#平今 +defineDict["THOST_FTDC_OF_CloseToday"] = '3' +#平昨 +defineDict["THOST_FTDC_OF_CloseYesterday"] = '4' +#强减 +defineDict["THOST_FTDC_OF_ForceOff"] = '5' +#本地强平 +defineDict["THOST_FTDC_OF_LocalForceClose"] = '6' + +typedefDict["TThostFtdcOffsetFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcForceCloseReasonType是一个强平原因类型 +#////////////////////////////////////////////////////////////////////// +#非强平 +defineDict["THOST_FTDC_FCC_NotForceClose"] = '0' +#资金不足 +defineDict["THOST_FTDC_FCC_LackDeposit"] = '1' +#客户超仓 +defineDict["THOST_FTDC_FCC_ClientOverPositionLimit"] = '2' +#会员超仓 +defineDict["THOST_FTDC_FCC_MemberOverPositionLimit"] = '3' +#持仓非整数倍 +defineDict["THOST_FTDC_FCC_NotMultiple"] = '4' +#违规 +defineDict["THOST_FTDC_FCC_Violation"] = '5' +#其它 +defineDict["THOST_FTDC_FCC_Other"] = '6' +#自然人临近交割 +defineDict["THOST_FTDC_FCC_PersonDeliv"] = '7' + +typedefDict["TThostFtdcForceCloseReasonType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderTypeType是一个报单类型类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_ORDT_Normal"] = '0' +#报价衍生 +defineDict["THOST_FTDC_ORDT_DeriveFromQuote"] = '1' +#组合衍生 +defineDict["THOST_FTDC_ORDT_DeriveFromCombination"] = '2' +#组合报单 +defineDict["THOST_FTDC_ORDT_Combination"] = '3' +#条件单 +defineDict["THOST_FTDC_ORDT_ConditionalOrder"] = '4' +#互换单 +defineDict["THOST_FTDC_ORDT_Swap"] = '5' + +typedefDict["TThostFtdcOrderTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTimeConditionType是一个有效期类型类型 +#////////////////////////////////////////////////////////////////////// +#立即完成,否则撤销 +defineDict["THOST_FTDC_TC_IOC"] = '1' +#本节有效 +defineDict["THOST_FTDC_TC_GFS"] = '2' +#当日有效 +defineDict["THOST_FTDC_TC_GFD"] = '3' +#指定日期前有效 +defineDict["THOST_FTDC_TC_GTD"] = '4' +#撤销前有效 +defineDict["THOST_FTDC_TC_GTC"] = '5' +#集合竞价有效 +defineDict["THOST_FTDC_TC_GFA"] = '6' + +typedefDict["TThostFtdcTimeConditionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVolumeConditionType是一个成交量类型类型 +#////////////////////////////////////////////////////////////////////// +#任何数量 +defineDict["THOST_FTDC_VC_AV"] = '1' +#最小数量 +defineDict["THOST_FTDC_VC_MV"] = '2' +#全部数量 +defineDict["THOST_FTDC_VC_CV"] = '3' + +typedefDict["TThostFtdcVolumeConditionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcContingentConditionType是一个触发条件类型 +#////////////////////////////////////////////////////////////////////// +#立即 +defineDict["THOST_FTDC_CC_Immediately"] = '1' +#止损 +defineDict["THOST_FTDC_CC_Touch"] = '2' +#止赢 +defineDict["THOST_FTDC_CC_TouchProfit"] = '3' +#预埋单 +defineDict["THOST_FTDC_CC_ParkedOrder"] = '4' +#最新价大于条件价 +defineDict["THOST_FTDC_CC_LastPriceGreaterThanStopPrice"] = '5' +#最新价大于等于条件价 +defineDict["THOST_FTDC_CC_LastPriceGreaterEqualStopPrice"] = '6' +#最新价小于条件价 +defineDict["THOST_FTDC_CC_LastPriceLesserThanStopPrice"] = '7' +#最新价小于等于条件价 +defineDict["THOST_FTDC_CC_LastPriceLesserEqualStopPrice"] = '8' +#卖一价大于条件价 +defineDict["THOST_FTDC_CC_AskPriceGreaterThanStopPrice"] = '9' +#卖一价大于等于条件价 +defineDict["THOST_FTDC_CC_AskPriceGreaterEqualStopPrice"] = 'A' +#卖一价小于条件价 +defineDict["THOST_FTDC_CC_AskPriceLesserThanStopPrice"] = 'B' +#卖一价小于等于条件价 +defineDict["THOST_FTDC_CC_AskPriceLesserEqualStopPrice"] = 'C' +#买一价大于条件价 +defineDict["THOST_FTDC_CC_BidPriceGreaterThanStopPrice"] = 'D' +#买一价大于等于条件价 +defineDict["THOST_FTDC_CC_BidPriceGreaterEqualStopPrice"] = 'E' +#买一价小于条件价 +defineDict["THOST_FTDC_CC_BidPriceLesserThanStopPrice"] = 'F' +#买一价小于等于条件价 +defineDict["THOST_FTDC_CC_BidPriceLesserEqualStopPrice"] = 'H' + +typedefDict["TThostFtdcContingentConditionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcActionFlagType是一个操作标志类型 +#////////////////////////////////////////////////////////////////////// +#删除 +defineDict["THOST_FTDC_AF_Delete"] = '0' +#修改 +defineDict["THOST_FTDC_AF_Modify"] = '3' + +typedefDict["TThostFtdcActionFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradingRightType是一个交易权限类型 +#////////////////////////////////////////////////////////////////////// +#可以交易 +defineDict["THOST_FTDC_TR_Allow"] = '0' +#只能平仓 +defineDict["THOST_FTDC_TR_CloseOnly"] = '1' +#不能交易 +defineDict["THOST_FTDC_TR_Forbidden"] = '2' + +typedefDict["TThostFtdcTradingRightType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderSourceType是一个报单来源类型 +#////////////////////////////////////////////////////////////////////// +#来自参与者 +defineDict["THOST_FTDC_OSRC_Participant"] = '0' +#来自管理员 +defineDict["THOST_FTDC_OSRC_Administrator"] = '1' + +typedefDict["TThostFtdcOrderSourceType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeTypeType是一个成交类型类型 +#////////////////////////////////////////////////////////////////////// +#普通成交 +defineDict["THOST_FTDC_TRDT_Common"] = '0' +#期权执行 +defineDict["THOST_FTDC_TRDT_OptionsExecution"] = '1' +#OTC成交 +defineDict["THOST_FTDC_TRDT_OTC"] = '2' +#期转现衍生成交 +defineDict["THOST_FTDC_TRDT_EFPDerived"] = '3' +#组合衍生成交 +defineDict["THOST_FTDC_TRDT_CombinationDerived"] = '4' + +typedefDict["TThostFtdcTradeTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPriceSourceType是一个成交价来源类型 +#////////////////////////////////////////////////////////////////////// +#前成交价 +defineDict["THOST_FTDC_PSRC_LastPrice"] = '0' +#买委托价 +defineDict["THOST_FTDC_PSRC_Buy"] = '1' +#卖委托价 +defineDict["THOST_FTDC_PSRC_Sell"] = '2' + +typedefDict["TThostFtdcPriceSourceType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstrumentStatusType是一个合约交易状态类型 +#////////////////////////////////////////////////////////////////////// +#开盘前 +defineDict["THOST_FTDC_IS_BeforeTrading"] = '0' +#非交易 +defineDict["THOST_FTDC_IS_NoTrading"] = '1' +#连续交易 +defineDict["THOST_FTDC_IS_Continous"] = '2' +#集合竞价报单 +defineDict["THOST_FTDC_IS_AuctionOrdering"] = '3' +#集合竞价价格平衡 +defineDict["THOST_FTDC_IS_AuctionBalance"] = '4' +#集合竞价撮合 +defineDict["THOST_FTDC_IS_AuctionMatch"] = '5' +#收盘 +defineDict["THOST_FTDC_IS_Closed"] = '6' + +typedefDict["TThostFtdcInstrumentStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstStatusEnterReasonType是一个品种进入交易状态原因类型 +#////////////////////////////////////////////////////////////////////// +#自动切换 +defineDict["THOST_FTDC_IER_Automatic"] = '1' +#手动切换 +defineDict["THOST_FTDC_IER_Manual"] = '2' +#熔断 +defineDict["THOST_FTDC_IER_Fuse"] = '3' + +typedefDict["TThostFtdcInstStatusEnterReasonType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrderActionRefType是一个报单操作引用类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrderActionRefType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstallCountType是一个安装数量类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInstallCountType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstallIDType是一个安装编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInstallIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcErrorIDType是一个错误代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcErrorIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettlementIDType是一个结算编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSettlementIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVolumeType是一个数量类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcVolumeType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFrontIDType是一个前置编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFrontIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSessionIDType是一个会话编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSessionIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSequenceNoType是一个序号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSequenceNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommandNoType是一个DB命令序号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCommandNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMillisecType是一个时间(毫秒)类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMillisecType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVolumeMultipleType是一个合约数量乘数类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcVolumeMultipleType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradingSegmentSNType是一个交易阶段编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradingSegmentSNType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRequestIDType是一个请求编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRequestIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcYearType是一个年份类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcYearType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMonthType是一个月份类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMonthType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBoolType是一个布尔型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBoolType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPriceType是一个价格类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPriceType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCombOffsetFlagType是一个组合开平标志类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCombOffsetFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCombHedgeFlagType是一个组合投机套保标志类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCombHedgeFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRatioType是一个比率类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRatioType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMoneyType是一个资金类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMoneyType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLargeVolumeType是一个大额数量类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLargeVolumeType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSequenceSeriesType是一个序列系列号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSequenceSeriesType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommPhaseNoType是一个通讯时段编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCommPhaseNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSequenceLabelType是一个序列编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSequenceLabelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPriorityType是一个优先级类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPriorityType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcContractCodeType是一个合同编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcContractCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCityType是一个市类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCityType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIsStockType是一个是否股民类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcIsStockType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcChannelType是一个渠道类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcChannelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAddressType是一个通讯地址类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAddressType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcZipCodeType是一个邮政编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcZipCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTelephoneType是一个联系电话类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTelephoneType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFaxType是一个传真类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFaxType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMobileType是一个手机类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMobileType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcEMailType是一个电子邮件类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcEMailType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMemoType是一个备注类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMemoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCompanyCodeType是一个企业代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCompanyCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcWebsiteType是一个网站地址类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcWebsiteType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTaxNoType是一个税务登记号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTaxNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBatchStatusType是一个处理状态类型 +#////////////////////////////////////////////////////////////////////// +#未上传 +defineDict["THOST_FTDC_BS_NoUpload"] = '1' +#已上传 +defineDict["THOST_FTDC_BS_Uploaded"] = '2' +#审核失败 +defineDict["THOST_FTDC_BS_Failed"] = '3' + +typedefDict["TThostFtdcBatchStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPropertyIDType是一个属性代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPropertyIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPropertyNameType是一个属性名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPropertyNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLicenseNoType是一个营业执照号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLicenseNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAgentIDType是一个经纪人代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAgentIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAgentNameType是一个经纪人名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAgentNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAgentGroupIDType是一个经纪人组代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAgentGroupIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAgentGroupNameType是一个经纪人组名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAgentGroupNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReturnStyleType是一个按品种返还方式类型 +#////////////////////////////////////////////////////////////////////// +#按所有品种 +defineDict["THOST_FTDC_RS_All"] = '1' +#按品种 +defineDict["THOST_FTDC_RS_ByProduct"] = '2' + +typedefDict["TThostFtdcReturnStyleType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReturnPatternType是一个返还模式类型 +#////////////////////////////////////////////////////////////////////// +#按成交手数 +defineDict["THOST_FTDC_RP_ByVolume"] = '1' +#按留存手续费 +defineDict["THOST_FTDC_RP_ByFeeOnHand"] = '2' + +typedefDict["TThostFtdcReturnPatternType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReturnLevelType是一个返还级别类型 +#////////////////////////////////////////////////////////////////////// +#级别1 +defineDict["THOST_FTDC_RL_Level1"] = '1' +#级别2 +defineDict["THOST_FTDC_RL_Level2"] = '2' +#级别3 +defineDict["THOST_FTDC_RL_Level3"] = '3' +#级别4 +defineDict["THOST_FTDC_RL_Level4"] = '4' +#级别5 +defineDict["THOST_FTDC_RL_Level5"] = '5' +#级别6 +defineDict["THOST_FTDC_RL_Level6"] = '6' +#级别7 +defineDict["THOST_FTDC_RL_Level7"] = '7' +#级别8 +defineDict["THOST_FTDC_RL_Level8"] = '8' +#级别9 +defineDict["THOST_FTDC_RL_Level9"] = '9' + +typedefDict["TThostFtdcReturnLevelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReturnStandardType是一个返还标准类型 +#////////////////////////////////////////////////////////////////////// +#分阶段返还 +defineDict["THOST_FTDC_RSD_ByPeriod"] = '1' +#按某一标准 +defineDict["THOST_FTDC_RSD_ByStandard"] = '2' + +typedefDict["TThostFtdcReturnStandardType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMortgageTypeType是一个质押类型类型 +#////////////////////////////////////////////////////////////////////// +#质出 +defineDict["THOST_FTDC_MT_Out"] = '0' +#质入 +defineDict["THOST_FTDC_MT_In"] = '1' + +typedefDict["TThostFtdcMortgageTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorSettlementParamIDType是一个投资者结算参数代码类型 +#////////////////////////////////////////////////////////////////////// +#基础保证金 +defineDict["THOST_FTDC_ISPI_BaseMargin"] = '1' +#最低权益标准 +defineDict["THOST_FTDC_ISPI_LowestInterest"] = '2' +#质押比例 +defineDict["THOST_FTDC_ISPI_MortgageRatio"] = '4' +#保证金算法 +defineDict["THOST_FTDC_ISPI_MarginWay"] = '5' +#结算单(盯市)权益等于结存 +defineDict["THOST_FTDC_ISPI_BillDeposit"] = '9' + +typedefDict["TThostFtdcInvestorSettlementParamIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeSettlementParamIDType是一个交易所结算参数代码类型 +#////////////////////////////////////////////////////////////////////// +#质押比例 +defineDict["THOST_FTDC_ESPI_MortgageRatio"] = '1' +#分项资金导入项 +defineDict["THOST_FTDC_ESPI_OtherFundItem"] = '2' +#分项资金入交易所出入金 +defineDict["THOST_FTDC_ESPI_OtherFundImport"] = '3' +#上期所交割手续费收取方式 +defineDict["THOST_FTDC_ESPI_SHFEDelivFee"] = '4' +#大商所交割手续费收取方式 +defineDict["THOST_FTDC_ESPI_DCEDelivFee"] = '5' +#中金所开户最低可用金额 +defineDict["THOST_FTDC_ESPI_CFFEXMinPrepa"] = '6' + +typedefDict["TThostFtdcExchangeSettlementParamIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSystemParamIDType是一个系统参数代码类型 +#////////////////////////////////////////////////////////////////////// +#投资者代码最小长度 +defineDict["THOST_FTDC_SPI_InvestorIDMinLength"] = '1' +#投资者帐号代码最小长度 +defineDict["THOST_FTDC_SPI_AccountIDMinLength"] = '2' +#投资者开户默认登录权限 +defineDict["THOST_FTDC_SPI_UserRightLogon"] = '3' +#投资者交易结算单成交汇总方式 +defineDict["THOST_FTDC_SPI_SettlementBillTrade"] = '4' +#统一开户更新交易编码方式 +defineDict["THOST_FTDC_SPI_TradingCode"] = '5' +#结算是否判断存在未复核的出入金和分项资金 +defineDict["THOST_FTDC_SPI_CheckFund"] = '6' +#是否启用手续费模板数据权限 +defineDict["THOST_FTDC_SPI_CommModelRight"] = '7' +#是否规范用户才能激活 +defineDict["THOST_FTDC_SPI_IsStandardActive"] = '8' +#上传的交易所结算文件路径 +defineDict["THOST_FTDC_SPI_UploadSettlementFile"] = 'U' +#上报保证金监控中心文件路径 +defineDict["THOST_FTDC_SPI_DownloadCSRCFile"] = 'D' +#生成的结算单文件路径 +defineDict["THOST_FTDC_SPI_SettlementBillFile"] = 'S' +#证监会文件标识 +defineDict["THOST_FTDC_SPI_CSRCOthersFile"] = 'C' +#投资者照片路径 +defineDict["THOST_FTDC_SPI_InvestorPhoto"] = 'P' +#全结经纪公司上传文件路径 +defineDict["THOST_FTDC_SPI_CSRCData"] = 'R' +#开户密码录入方式 +defineDict["THOST_FTDC_SPI_InvestorPwdModel"] = 'I' +#投资者中金所结算文件下载路径 +defineDict["THOST_FTDC_SPI_CFFEXInvestorSettleFile"] = 'F' +#投资者代码编码方式 +defineDict["THOST_FTDC_SPI_InvestorIDType"] = 'a' + +typedefDict["TThostFtdcSystemParamIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeParamIDType是一个交易系统参数代码类型 +#////////////////////////////////////////////////////////////////////// +#系统加密算法 +defineDict["THOST_FTDC_TPID_EncryptionStandard"] = 'E' +#系统风险算法 +defineDict["THOST_FTDC_TPID_RiskMode"] = 'R' +#系统风险算法是否全局 0-否 1-是 +defineDict["THOST_FTDC_TPID_RiskModeGlobal"] = 'G' + +typedefDict["TThostFtdcTradeParamIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettlementParamValueType是一个参数代码值类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSettlementParamValueType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCounterIDType是一个计数器代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCounterIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorGroupNameType是一个投资者分组名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInvestorGroupNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrandCodeType是一个牌号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBrandCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcWarehouseType是一个仓库类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcWarehouseType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProductDateType是一个产期类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProductDateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcGradeType是一个等级类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcGradeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClassifyType是一个类别类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClassifyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPositionType是一个货位类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPositionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcYieldlyType是一个产地类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcYieldlyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcWeightType是一个公定重量类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcWeightType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSubEntryFundNoType是一个分项资金流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSubEntryFundNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileIDType是一个文件标识类型 +#////////////////////////////////////////////////////////////////////// +#资金数据 +defineDict["THOST_FTDC_FI_SettlementFund"] = 'F' +#成交数据 +defineDict["THOST_FTDC_FI_Trade"] = 'T' +#投资者持仓数据 +defineDict["THOST_FTDC_FI_InvestorPosition"] = 'P' +#投资者分项资金数据 +defineDict["THOST_FTDC_FI_SubEntryFund"] = 'O' +#郑商所组合持仓数据 +defineDict["THOST_FTDC_FI_CZCECombinationPos"] = 'C' +#上报保证金监控中心数据 +defineDict["THOST_FTDC_FI_CSRCData"] = 'R' + +typedefDict["TThostFtdcFileIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileNameType是一个文件名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFileNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileTypeType是一个文件上传类型类型 +#////////////////////////////////////////////////////////////////////// +#结算 +defineDict["THOST_FTDC_FUT_Settlement"] = '0' +#核对 +defineDict["THOST_FTDC_FUT_Check"] = '1' + +typedefDict["TThostFtdcFileTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileFormatType是一个文件格式类型 +#////////////////////////////////////////////////////////////////////// +#文本文件(.txt) +defineDict["THOST_FTDC_FFT_Txt"] = '0' +#压缩文件(.zip) +defineDict["THOST_FTDC_FFT_Zip"] = '1' +#DBF文件(.dbf) +defineDict["THOST_FTDC_FFT_DBF"] = '2' + +typedefDict["TThostFtdcFileFormatType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileUploadStatusType是一个文件状态类型 +#////////////////////////////////////////////////////////////////////// +#上传成功 +defineDict["THOST_FTDC_FUS_SucceedUpload"] = '1' +#上传失败 +defineDict["THOST_FTDC_FUS_FailedUpload"] = '2' +#导入成功 +defineDict["THOST_FTDC_FUS_SucceedLoad"] = '3' +#导入部分成功 +defineDict["THOST_FTDC_FUS_PartSucceedLoad"] = '4' +#导入失败 +defineDict["THOST_FTDC_FUS_FailedLoad"] = '5' + +typedefDict["TThostFtdcFileUploadStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTransferDirectionType是一个移仓方向类型 +#////////////////////////////////////////////////////////////////////// +#移出 +defineDict["THOST_FTDC_TD_Out"] = '0' +#移入 +defineDict["THOST_FTDC_TD_In"] = '1' + +typedefDict["TThostFtdcTransferDirectionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUploadModeType是一个上传文件类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUploadModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAccountIDType是一个投资者帐号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAccountIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankFlagType是一个银行统一标识类型类型 +#////////////////////////////////////////////////////////////////////// +#工商银行 +defineDict["THOST_FTDC_BF_ICBC"] = '1' +#农业银行 +defineDict["THOST_FTDC_BF_ABC"] = '2' +#中国银行 +defineDict["THOST_FTDC_BF_BC"] = '3' +#建设银行 +defineDict["THOST_FTDC_BF_CBC"] = '4' +#交通银行 +defineDict["THOST_FTDC_BF_BOC"] = '5' +#其他银行 +defineDict["THOST_FTDC_BF_Other"] = 'Z' + +typedefDict["TThostFtdcBankFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankAccountType是一个银行账户类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankAccountType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOpenNameType是一个银行账户的开户人名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOpenNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOpenBankType是一个银行账户的开户行类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOpenBankType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankNameType是一个银行名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPublishPathType是一个发布路径类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPublishPathType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOperatorIDType是一个操作员代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOperatorIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMonthCountType是一个月份数量类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMonthCountType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAdvanceMonthArrayType是一个月份提前数组类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAdvanceMonthArrayType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDateExprType是一个日期表达式类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDateExprType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstrumentIDExprType是一个合约代码表达式类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInstrumentIDExprType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstrumentNameExprType是一个合约名称表达式类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInstrumentNameExprType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSpecialCreateRuleType是一个特殊的创建规则类型 +#////////////////////////////////////////////////////////////////////// +#没有特殊创建规则 +defineDict["THOST_FTDC_SC_NoSpecialRule"] = '0' +#不包含春节 +defineDict["THOST_FTDC_SC_NoSpringFestival"] = '1' + +typedefDict["TThostFtdcSpecialCreateRuleType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBasisPriceTypeType是一个挂牌基准价类型类型 +#////////////////////////////////////////////////////////////////////// +#上一合约结算价 +defineDict["THOST_FTDC_IPT_LastSettlement"] = '1' +#上一合约收盘价 +defineDict["THOST_FTDC_IPT_LaseClose"] = '2' + +typedefDict["TThostFtdcBasisPriceTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProductLifePhaseType是一个产品生命周期状态类型 +#////////////////////////////////////////////////////////////////////// +#活跃 +defineDict["THOST_FTDC_PLP_Active"] = '1' +#不活跃 +defineDict["THOST_FTDC_PLP_NonActive"] = '2' +#注销 +defineDict["THOST_FTDC_PLP_Canceled"] = '3' + +typedefDict["TThostFtdcProductLifePhaseType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDeliveryModeType是一个交割方式类型 +#////////////////////////////////////////////////////////////////////// +#现金交割 +defineDict["THOST_FTDC_DM_CashDeliv"] = '1' +#实物交割 +defineDict["THOST_FTDC_DM_CommodityDeliv"] = '2' + +typedefDict["TThostFtdcDeliveryModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLogLevelType是一个日志级别类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLogLevelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProcessNameType是一个存储过程名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProcessNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOperationMemoType是一个操作摘要类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOperationMemoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFundIOTypeType是一个出入金类型类型 +#////////////////////////////////////////////////////////////////////// +#出入金 +defineDict["THOST_FTDC_FIOT_FundIO"] = '1' +#银期转帐 +defineDict["THOST_FTDC_FIOT_Transfer"] = '2' + +typedefDict["TThostFtdcFundIOTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFundTypeType是一个资金类型类型 +#////////////////////////////////////////////////////////////////////// +#银行存款 +defineDict["THOST_FTDC_FT_Deposite"] = '1' +#分项资金 +defineDict["THOST_FTDC_FT_ItemFund"] = '2' +#公司调整 +defineDict["THOST_FTDC_FT_Company"] = '3' + +typedefDict["TThostFtdcFundTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFundDirectionType是一个出入金方向类型 +#////////////////////////////////////////////////////////////////////// +#入金 +defineDict["THOST_FTDC_FD_In"] = '1' +#出金 +defineDict["THOST_FTDC_FD_Out"] = '2' + +typedefDict["TThostFtdcFundDirectionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFundStatusType是一个资金状态类型 +#////////////////////////////////////////////////////////////////////// +#已录入 +defineDict["THOST_FTDC_FS_Record"] = '1' +#已复核 +defineDict["THOST_FTDC_FS_Check"] = '2' +#已冲销 +defineDict["THOST_FTDC_FS_Charge"] = '3' + +typedefDict["TThostFtdcFundStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBillNoType是一个票据号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBillNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBillNameType是一个票据名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBillNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPublishStatusType是一个发布状态类型 +#////////////////////////////////////////////////////////////////////// +#未发布 +defineDict["THOST_FTDC_PS_None"] = '1' +#正在发布 +defineDict["THOST_FTDC_PS_Publishing"] = '2' +#已发布 +defineDict["THOST_FTDC_PS_Published"] = '3' + +typedefDict["TThostFtdcPublishStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcEnumValueIDType是一个枚举值代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcEnumValueIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcEnumValueTypeType是一个枚举值类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcEnumValueTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcEnumValueLabelType是一个枚举值名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcEnumValueLabelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcEnumValueResultType是一个枚举值结果类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcEnumValueResultType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSystemStatusType是一个系统状态类型 +#////////////////////////////////////////////////////////////////////// +#不活跃 +defineDict["THOST_FTDC_ES_NonActive"] = '1' +#启动 +defineDict["THOST_FTDC_ES_Startup"] = '2' +#交易开始初始化 +defineDict["THOST_FTDC_ES_Initialize"] = '3' +#交易完成初始化 +defineDict["THOST_FTDC_ES_Initialized"] = '4' +#收市开始 +defineDict["THOST_FTDC_ES_Close"] = '5' +#收市完成 +defineDict["THOST_FTDC_ES_Closed"] = '6' +#结算 +defineDict["THOST_FTDC_ES_Settlement"] = '7' + +typedefDict["TThostFtdcSystemStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettlementStatusType是一个结算状态类型 +#////////////////////////////////////////////////////////////////////// +#初始 +defineDict["THOST_FTDC_STS_Initialize"] = '0' +#结算中 +defineDict["THOST_FTDC_STS_Settlementing"] = '1' +#已结算 +defineDict["THOST_FTDC_STS_Settlemented"] = '2' +#结算完成 +defineDict["THOST_FTDC_STS_Finished"] = '3' + +typedefDict["TThostFtdcSettlementStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRangeIntTypeType是一个限定值类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRangeIntTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRangeIntFromType是一个限定值下限类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRangeIntFromType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRangeIntToType是一个限定值上限类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRangeIntToType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFunctionIDType是一个功能代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFunctionIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFunctionValueCodeType是一个功能编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFunctionValueCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFunctionNameType是一个功能名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFunctionNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRoleIDType是一个角色编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRoleIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRoleNameType是一个角色名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRoleNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDescriptionType是一个描述类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDescriptionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCombineIDType是一个组合编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCombineIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCombineTypeType是一个组合类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCombineTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorTypeType是一个投资者类型类型 +#////////////////////////////////////////////////////////////////////// +#自然人 +defineDict["THOST_FTDC_CT_Person"] = '0' +#法人 +defineDict["THOST_FTDC_CT_Company"] = '1' +#投资基金 +defineDict["THOST_FTDC_CT_Fund"] = '2' + +typedefDict["TThostFtdcInvestorTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerTypeType是一个经纪公司类型类型 +#////////////////////////////////////////////////////////////////////// +#交易会员 +defineDict["THOST_FTDC_BT_Trade"] = '0' +#交易结算会员 +defineDict["THOST_FTDC_BT_TradeSettle"] = '1' + +typedefDict["TThostFtdcBrokerTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRiskLevelType是一个风险等级类型 +#////////////////////////////////////////////////////////////////////// +#低风险客户 +defineDict["THOST_FTDC_FAS_Low"] = '1' +#普通客户 +defineDict["THOST_FTDC_FAS_Normal"] = '2' +#关注客户 +defineDict["THOST_FTDC_FAS_Focus"] = '3' +#风险客户 +defineDict["THOST_FTDC_FAS_Risk"] = '4' + +typedefDict["TThostFtdcRiskLevelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFeeAcceptStyleType是一个手续费收取方式类型 +#////////////////////////////////////////////////////////////////////// +#按交易收取 +defineDict["THOST_FTDC_FAS_ByTrade"] = '1' +#按交割收取 +defineDict["THOST_FTDC_FAS_ByDeliv"] = '2' +#不收 +defineDict["THOST_FTDC_FAS_None"] = '3' +#按指定手续费收取 +defineDict["THOST_FTDC_FAS_FixFee"] = '4' + +typedefDict["TThostFtdcFeeAcceptStyleType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPasswordTypeType是一个密码类型类型 +#////////////////////////////////////////////////////////////////////// +#交易密码 +defineDict["THOST_FTDC_PWDT_Trade"] = '1' +#资金密码 +defineDict["THOST_FTDC_PWDT_Account"] = '2' + +typedefDict["TThostFtdcPasswordTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAlgorithmType是一个盈亏算法类型 +#////////////////////////////////////////////////////////////////////// +#浮盈浮亏都计算 +defineDict["THOST_FTDC_AG_All"] = '1' +#浮盈不计,浮亏计 +defineDict["THOST_FTDC_AG_OnlyLost"] = '2' +#浮盈计,浮亏不计 +defineDict["THOST_FTDC_AG_OnlyGain"] = '3' +#浮盈浮亏都不计算 +defineDict["THOST_FTDC_AG_None"] = '4' + +typedefDict["TThostFtdcAlgorithmType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIncludeCloseProfitType是一个是否包含平仓盈利类型 +#////////////////////////////////////////////////////////////////////// +#包含平仓盈利 +defineDict["THOST_FTDC_ICP_Include"] = '0' +#不包含平仓盈利 +defineDict["THOST_FTDC_ICP_NotInclude"] = '2' + +typedefDict["TThostFtdcIncludeCloseProfitType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAllWithoutTradeType是一个是否受可提比例限制类型 +#////////////////////////////////////////////////////////////////////// +#不受可提比例限制 +defineDict["THOST_FTDC_AWT_Enable"] = '0' +#受可提比例限制 +defineDict["THOST_FTDC_AWT_Disable"] = '2' + +typedefDict["TThostFtdcAllWithoutTradeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommentType是一个盈亏算法说明类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCommentType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVersionType是一个版本号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcVersionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeCodeType是一个交易代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeDateType是一个交易日期类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeDateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeTimeType是一个交易时间类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeTimeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeSerialType是一个发起方流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeSerialType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeSerialNoType是一个发起方流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeSerialNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureIDType是一个期货公司代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankIDType是一个银行代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankBrchIDType是一个银行分中心代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankBrchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankBranchIDType是一个分中心代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankBranchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOperNoType是一个交易柜员类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOperNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDeviceIDType是一个渠道标志类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDeviceIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRecordNumType是一个记录数类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRecordNumType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureAccountType是一个期货资金账号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureAccountType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFuturePwdFlagType是一个资金密码核对标志类型 +#////////////////////////////////////////////////////////////////////// +#不核对 +defineDict["THOST_FTDC_FPWD_UnCheck"] = '0' +#核对 +defineDict["THOST_FTDC_FPWD_Check"] = '1' + +typedefDict["TThostFtdcFuturePwdFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTransferTypeType是一个银期转账类型类型 +#////////////////////////////////////////////////////////////////////// +#银行转期货 +defineDict["THOST_FTDC_TT_BankToFuture"] = '0' +#期货转银行 +defineDict["THOST_FTDC_TT_FutureToBank"] = '1' + +typedefDict["TThostFtdcTransferTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureAccPwdType是一个期货资金密码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureAccPwdType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCurrencyCodeType是一个币种类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCurrencyCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRetCodeType是一个响应代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRetCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRetInfoType是一个响应信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRetInfoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeAmtType是一个银行总余额类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeAmtType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUseAmtType是一个银行可用余额类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUseAmtType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFetchAmtType是一个银行可取余额类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFetchAmtType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTransferValidFlagType是一个转账有效标志类型 +#////////////////////////////////////////////////////////////////////// +#无效或失败 +defineDict["THOST_FTDC_TVF_Invalid"] = '0' +#有效 +defineDict["THOST_FTDC_TVF_Valid"] = '1' +#冲正 +defineDict["THOST_FTDC_TVF_Reverse"] = '2' + +typedefDict["TThostFtdcTransferValidFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCertCodeType是一个证件号码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCertCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReasonType是一个事由类型 +#////////////////////////////////////////////////////////////////////// +#错单 +defineDict["THOST_FTDC_RN_CD"] = '0' +#资金在途 +defineDict["THOST_FTDC_RN_ZT"] = '1' +#其它 +defineDict["THOST_FTDC_RN_QT"] = '2' + +typedefDict["TThostFtdcReasonType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFundProjectIDType是一个资金项目编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFundProjectIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSexType是一个性别类型 +#////////////////////////////////////////////////////////////////////// +#未知 +defineDict["THOST_FTDC_SEX_None"] = '0' +#男 +defineDict["THOST_FTDC_SEX_Man"] = '1' +#女 +defineDict["THOST_FTDC_SEX_Woman"] = '2' + +typedefDict["TThostFtdcSexType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProfessionType是一个职业类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProfessionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcNationalType是一个国籍类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcNationalType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProvinceType是一个省类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProvinceType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRegionType是一个区类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRegionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCountryType是一个国家类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCountryType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLicenseNOType是一个营业执照类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLicenseNOType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCompanyTypeType是一个企业性质类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCompanyTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBusinessScopeType是一个经营范围类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBusinessScopeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCapitalCurrencyType是一个注册资本币种类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCapitalCurrencyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserTypeType是一个用户类型类型 +#////////////////////////////////////////////////////////////////////// +#投资者 +defineDict["THOST_FTDC_UT_Investor"] = '0' +#操作员 +defineDict["THOST_FTDC_UT_Operator"] = '1' +#管理员 +defineDict["THOST_FTDC_UT_SuperUser"] = '2' + +typedefDict["TThostFtdcUserTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRateTypeType是一个费率类型类型 +#////////////////////////////////////////////////////////////////////// +#保证金率 +defineDict["THOST_FTDC_RATETYPE_MarginRate"] = '2' + +typedefDict["TThostFtdcRateTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcNoteTypeType是一个通知类型类型 +#////////////////////////////////////////////////////////////////////// +#交易结算单 +defineDict["THOST_FTDC_NOTETYPE_TradeSettleBill"] = '1' +#交易结算月报 +defineDict["THOST_FTDC_NOTETYPE_TradeSettleMonth"] = '2' +#追加保证金通知书 +defineDict["THOST_FTDC_NOTETYPE_CallMarginNotes"] = '3' +#强行平仓通知书 +defineDict["THOST_FTDC_NOTETYPE_ForceCloseNotes"] = '4' +#成交通知书 +defineDict["THOST_FTDC_NOTETYPE_TradeNotes"] = '5' +#交割通知书 +defineDict["THOST_FTDC_NOTETYPE_DelivNotes"] = '6' + +typedefDict["TThostFtdcNoteTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettlementStyleType是一个结算单方式类型 +#////////////////////////////////////////////////////////////////////// +#逐日盯市 +defineDict["THOST_FTDC_SBS_Day"] = '1' +#逐笔对冲 +defineDict["THOST_FTDC_SBS_Volume"] = '2' + +typedefDict["TThostFtdcSettlementStyleType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerDNSType是一个域名类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBrokerDNSType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSentenceType是一个语句类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSentenceType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettlementBillTypeType是一个结算单类型类型 +#////////////////////////////////////////////////////////////////////// +#日报 +defineDict["THOST_FTDC_ST_Day"] = '0' +#月报 +defineDict["THOST_FTDC_ST_Month"] = '1' + +typedefDict["TThostFtdcSettlementBillTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserRightTypeType是一个客户权限类型类型 +#////////////////////////////////////////////////////////////////////// +#登录 +defineDict["THOST_FTDC_URT_Logon"] = '1' +#银期转帐 +defineDict["THOST_FTDC_URT_Transfer"] = '2' +#邮寄结算单 +defineDict["THOST_FTDC_URT_EMail"] = '3' +#传真结算单 +defineDict["THOST_FTDC_URT_Fax"] = '4' +#条件单 +defineDict["THOST_FTDC_URT_ConditionOrder"] = '5' + +typedefDict["TThostFtdcUserRightTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMarginPriceTypeType是一个保证金价格类型类型 +#////////////////////////////////////////////////////////////////////// +#昨结算价 +defineDict["THOST_FTDC_MPT_PreSettlementPrice"] = '1' +#最新价 +defineDict["THOST_FTDC_MPT_SettlementPrice"] = '2' +#成交均价 +defineDict["THOST_FTDC_MPT_AveragePrice"] = '3' +#开仓价 +defineDict["THOST_FTDC_MPT_OpenPrice"] = '4' + +typedefDict["TThostFtdcMarginPriceTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBillGenStatusType是一个结算单生成状态类型 +#////////////////////////////////////////////////////////////////////// +#不生成 +defineDict["THOST_FTDC_BGS_None"] = '0' +#未生成 +defineDict["THOST_FTDC_BGS_NoGenerated"] = '1' +#已生成 +defineDict["THOST_FTDC_BGS_Generated"] = '2' + +typedefDict["TThostFtdcBillGenStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAlgoTypeType是一个算法类型类型 +#////////////////////////////////////////////////////////////////////// +#持仓处理算法 +defineDict["THOST_FTDC_AT_HandlePositionAlgo"] = '1' +#寻找保证金率算法 +defineDict["THOST_FTDC_AT_FindMarginRateAlgo"] = '2' + +typedefDict["TThostFtdcAlgoTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcHandlePositionAlgoIDType是一个持仓处理算法编号类型 +#////////////////////////////////////////////////////////////////////// +#基本 +defineDict["THOST_FTDC_HPA_Base"] = '1' +#大连商品交易所 +defineDict["THOST_FTDC_HPA_DCE"] = '2' +#郑州商品交易所 +defineDict["THOST_FTDC_HPA_CZCE"] = '3' + +typedefDict["TThostFtdcHandlePositionAlgoIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFindMarginRateAlgoIDType是一个寻找保证金率算法编号类型 +#////////////////////////////////////////////////////////////////////// +#基本 +defineDict["THOST_FTDC_FMRA_Base"] = '1' +#大连商品交易所 +defineDict["THOST_FTDC_FMRA_DCE"] = '2' +#郑州商品交易所 +defineDict["THOST_FTDC_FMRA_CZCE"] = '3' + +typedefDict["TThostFtdcFindMarginRateAlgoIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcHandleTradingAccountAlgoIDType是一个资金处理算法编号类型 +#////////////////////////////////////////////////////////////////////// +#基本 +defineDict["THOST_FTDC_HTAA_Base"] = '1' +#大连商品交易所 +defineDict["THOST_FTDC_HTAA_DCE"] = '2' +#郑州商品交易所 +defineDict["THOST_FTDC_HTAA_CZCE"] = '3' + +typedefDict["TThostFtdcHandleTradingAccountAlgoIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPersonTypeType是一个联系人类型类型 +#////////////////////////////////////////////////////////////////////// +#指定下单人 +defineDict["THOST_FTDC_PST_Order"] = '1' +#开户授权人 +defineDict["THOST_FTDC_PST_Open"] = '2' +#资金调拨人 +defineDict["THOST_FTDC_PST_Fund"] = '3' +#结算单确认人 +defineDict["THOST_FTDC_PST_Settlement"] = '4' +#法人 +defineDict["THOST_FTDC_PST_Company"] = '5' +#法人代表 +defineDict["THOST_FTDC_PST_Corporation"] = '6' +#投资者联系人 +defineDict["THOST_FTDC_PST_LinkMan"] = '7' + +typedefDict["TThostFtdcPersonTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcQueryInvestorRangeType是一个查询范围类型 +#////////////////////////////////////////////////////////////////////// +#所有 +defineDict["THOST_FTDC_QIR_All"] = '1' +#查询分类 +defineDict["THOST_FTDC_QIR_Group"] = '2' +#单一投资者 +defineDict["THOST_FTDC_QIR_Single"] = '3' + +typedefDict["TThostFtdcQueryInvestorRangeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorRiskStatusType是一个投资者风险状态类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_IRS_Normal"] = '1' +#警告 +defineDict["THOST_FTDC_IRS_Warn"] = '2' +#追保 +defineDict["THOST_FTDC_IRS_Call"] = '3' +#强平 +defineDict["THOST_FTDC_IRS_Force"] = '4' +#异常 +defineDict["THOST_FTDC_IRS_Exception"] = '5' + +typedefDict["TThostFtdcInvestorRiskStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLegIDType是一个单腿编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLegIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLegMultipleType是一个单腿乘数类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLegMultipleType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcImplyLevelType是一个派生层数类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcImplyLevelType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClearAccountType是一个结算账户类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClearAccountType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrganNOType是一个结算账户类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrganNOType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClearbarchIDType是一个结算账户联行号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClearbarchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserEventTypeType是一个用户事件类型类型 +#////////////////////////////////////////////////////////////////////// +#登录 +defineDict["THOST_FTDC_UET_Login"] = '1' +#登出 +defineDict["THOST_FTDC_UET_Logout"] = '2' +#交易成功 +defineDict["THOST_FTDC_UET_Trading"] = '3' +#交易失败 +defineDict["THOST_FTDC_UET_TradingError"] = '4' +#修改密码 +defineDict["THOST_FTDC_UET_UpdatePassword"] = '5' +#客户端认证 +defineDict["THOST_FTDC_UET_Authenticate"] = '6' +#其他 +defineDict["THOST_FTDC_UET_Other"] = '9' + +typedefDict["TThostFtdcUserEventTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserEventInfoType是一个用户事件信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUserEventInfoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCloseStyleType是一个平仓方式类型 +#////////////////////////////////////////////////////////////////////// +#先开先平 +defineDict["THOST_FTDC_ICS_Close"] = '0' +#先平今再平昨 +defineDict["THOST_FTDC_ICS_CloseToday"] = '1' + +typedefDict["TThostFtdcCloseStyleType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcStatModeType是一个统计方式类型 +#////////////////////////////////////////////////////////////////////// +#---- +defineDict["THOST_FTDC_SM_Non"] = '0' +#按合约统计 +defineDict["THOST_FTDC_SM_Instrument"] = '1' +#按产品统计 +defineDict["THOST_FTDC_SM_Product"] = '2' +#按投资者统计 +defineDict["THOST_FTDC_SM_Investor"] = '3' + +typedefDict["TThostFtdcStatModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcParkedOrderStatusType是一个预埋单状态类型 +#////////////////////////////////////////////////////////////////////// +#未发送 +defineDict["THOST_FTDC_PAOS_NotSend"] = '1' +#已发送 +defineDict["THOST_FTDC_PAOS_Send"] = '2' +#已删除 +defineDict["THOST_FTDC_PAOS_Deleted"] = '3' + +typedefDict["TThostFtdcParkedOrderStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcParkedOrderIDType是一个预埋报单编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcParkedOrderIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcParkedOrderActionIDType是一个预埋撤单编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcParkedOrderActionIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVirDealStatusType是一个处理状态类型 +#////////////////////////////////////////////////////////////////////// +#正在处理 +defineDict["THOST_FTDC_VDS_Dealing"] = '1' +#处理成功 +defineDict["THOST_FTDC_VDS_DeaclSucceed"] = '2' + +typedefDict["TThostFtdcVirDealStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrgSystemIDType是一个原有系统代码类型 +#////////////////////////////////////////////////////////////////////// +#综合交易平台 +defineDict["THOST_FTDC_ORGS_Standard"] = '0' +#易盛系统 +defineDict["THOST_FTDC_ORGS_ESunny"] = '1' +#金仕达V6系统 +defineDict["THOST_FTDC_ORGS_KingStarV6"] = '2' + +typedefDict["TThostFtdcOrgSystemIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVirTradeStatusType是一个交易状态类型 +#////////////////////////////////////////////////////////////////////// +#正常处理中 +defineDict["THOST_FTDC_VTS_NaturalDeal"] = '0' +#成功结束 +defineDict["THOST_FTDC_VTS_SucceedEnd"] = '1' +#失败结束 +defineDict["THOST_FTDC_VTS_FailedEND"] = '2' +#异常中 +defineDict["THOST_FTDC_VTS_Exception"] = '3' +#已人工异常处理 +defineDict["THOST_FTDC_VTS_ManualDeal"] = '4' +#通讯异常 ,请人工处理 +defineDict["THOST_FTDC_VTS_MesException"] = '5' +#系统出错,请人工处理 +defineDict["THOST_FTDC_VTS_SysException"] = '6' + +typedefDict["TThostFtdcVirTradeStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVirBankAccTypeType是一个银行帐户类型类型 +#////////////////////////////////////////////////////////////////////// +#存折 +defineDict["THOST_FTDC_VBAT_BankBook"] = '1' +#储蓄卡 +defineDict["THOST_FTDC_VBAT_BankCard"] = '2' +#信用卡 +defineDict["THOST_FTDC_VBAT_CreditCard"] = '3' + +typedefDict["TThostFtdcVirBankAccTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVirementStatusType是一个银行帐户类型类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_VMS_Natural"] = '0' +#销户 +defineDict["THOST_FTDC_VMS_Canceled"] = '9' + +typedefDict["TThostFtdcVirementStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVirementAvailAbilityType是一个有效标志类型 +#////////////////////////////////////////////////////////////////////// +#未确认 +defineDict["THOST_FTDC_VAA_NoAvailAbility"] = '0' +#有效 +defineDict["THOST_FTDC_VAA_AvailAbility"] = '1' +#冲正 +defineDict["THOST_FTDC_VAA_Repeal"] = '2' + +typedefDict["TThostFtdcVirementAvailAbilityType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcVirementTradeCodeType是一个交易代码类型 +#////////////////////////////////////////////////////////////////////// +#银行发起银行资金转期货 +defineDict["THOST_FTDC_VTC_BankBankToFuture"] = '102001' +#银行发起期货资金转银行 +defineDict["THOST_FTDC_VTC_BankFutureToBank"] = '102002' +#期货发起银行资金转期货 +defineDict["THOST_FTDC_VTC_FutureBankToFuture"] = '202001' +#期货发起期货资金转银行 +defineDict["THOST_FTDC_VTC_FutureFutureToBank"] = '202002' + +typedefDict["TThostFtdcVirementTradeCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPhotoTypeNameType是一个影像类型名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPhotoTypeNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPhotoTypeIDType是一个影像类型代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPhotoTypeIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPhotoNameType是一个影像名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPhotoNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTopicIDType是一个主题代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTopicIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReportTypeIDType是一个交易报告类型标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcReportTypeIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCharacterIDType是一个交易特征代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCharacterIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLParamIDType是一个参数代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLParamIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLInvestorTypeType是一个投资者类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLInvestorTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLIdCardTypeType是一个证件类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLIdCardTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLTradeDirectType是一个资金进出方向类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLTradeDirectType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLTradeModelType是一个资金进出方式类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLTradeModelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLParamIDType是一个参数代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLParamIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLOpParamValueType是一个业务参数代码值类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLOpParamValueType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLCustomerCardTypeType是一个客户身份证件/证明文件类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLCustomerCardTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLInstitutionNameType是一个金融机构网点名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLInstitutionNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLDistrictIDType是一个金融机构网点所在地区行政区划代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLDistrictIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLRelationShipType是一个金融机构网点与大额交易的关系类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLRelationShipType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLInstitutionTypeType是一个金融机构网点代码类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLInstitutionTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLInstitutionIDType是一个金融机构网点代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLInstitutionIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLAccountTypeType是一个账户类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLAccountTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLTradingTypeType是一个交易方式类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLTradingTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLTransactClassType是一个涉外收支交易分类与代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLTransactClassType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLCapitalIOType是一个资金收付标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLCapitalIOType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLSiteType是一个交易地点类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLSiteType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLCapitalPurposeType是一个资金用途类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLCapitalPurposeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLReportTypeType是一个报文类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLReportTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLSerialNoType是一个编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLSerialNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLStatusType是一个状态类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLGenStatusType是一个Aml生成方式类型 +#////////////////////////////////////////////////////////////////////// +#程序生成 +defineDict["THOST_FTDC_GEN_Program"] = '0' +#人工生成 +defineDict["THOST_FTDC_GEN_HandWork"] = '1' + +typedefDict["TThostFtdcAMLGenStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLSeqCodeType是一个业务标识号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLSeqCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLFileNameType是一个AML文件名类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLFileNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLMoneyType是一个反洗钱资金类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLMoneyType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLFileAmountType是一个反洗钱资金类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLFileAmountType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCFMMCKeyType是一个密钥类型(保证金监管)类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCFMMCKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCFMMCKeyKindType是一个动态密钥类别(保证金监管)类型 +#////////////////////////////////////////////////////////////////////// +#主动请求更新 +defineDict["THOST_FTDC_CFMMCKK_REQUEST"] = 'R' +#CFMMC自动更新 +defineDict["THOST_FTDC_CFMMCKK_AUTO"] = 'A' +#CFMMC手动更新 +defineDict["THOST_FTDC_CFMMCKK_MANUAL"] = 'M' + +typedefDict["TThostFtdcCFMMCKeyKindType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLReportNameType是一个报文名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAMLReportNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIndividualNameType是一个个人姓名类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcIndividualNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCurrencyIDType是一个币种代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCurrencyIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCustNumberType是一个客户编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCustNumberType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrganCodeType是一个机构编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrganCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrganNameType是一个机构名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrganNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSuperOrganCodeType是一个上级机构编码,即期货公司总部、银行总行类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSuperOrganCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSubBranchIDType是一个分支机构类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSubBranchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSubBranchNameType是一个分支机构名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSubBranchNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBranchNetCodeType是一个机构网点号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBranchNetCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBranchNetNameType是一个机构网点名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBranchNetNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrganFlagType是一个机构标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOrganFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankCodingForFutureType是一个银行对期货公司的编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankCodingForFutureType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankReturnCodeType是一个银行对返回码的定义类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankReturnCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPlateReturnCodeType是一个银期转帐平台对返回码的定义类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPlateReturnCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankSubBranchIDType是一个银行分支机构编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankSubBranchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureBranchIDType是一个期货分支机构编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureBranchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReturnCodeType是一个返回代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcReturnCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOperatorCodeType是一个操作员类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOperatorCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClearDepIDType是一个机构结算帐户机构号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClearDepIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClearBrchIDType是一个机构结算帐户联行号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClearBrchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClearNameType是一个机构结算帐户名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClearNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankAccountNameType是一个银行帐户名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankAccountNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvDepIDType是一个机构投资人账号机构号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInvDepIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvBrchIDType是一个机构投资人联行号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInvBrchIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMessageFormatVersionType是一个信息格式版本类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMessageFormatVersionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDigestType是一个摘要类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDigestType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAuthenticDataType是一个认证数据类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAuthenticDataType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPasswordKeyType是一个密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPasswordKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureAccountNameType是一个期货帐户名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureAccountNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMobilePhoneType是一个手机类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcMobilePhoneType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureMainKeyType是一个期货公司主密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureMainKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureWorkKeyType是一个期货公司工作密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureWorkKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureTransKeyType是一个期货公司传输密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureTransKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankMainKeyType是一个银行主密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankMainKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankWorkKeyType是一个银行工作密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankWorkKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankTransKeyType是一个银行传输密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankTransKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankServerDescriptionType是一个银行服务器描述信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankServerDescriptionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAddInfoType是一个附加信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAddInfoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDescrInfoForReturnCodeType是一个返回码描述类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDescrInfoForReturnCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCountryCodeType是一个国家代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCountryCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSerialType是一个流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSerialType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPlateSerialType是一个平台流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPlateSerialType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankSerialType是一个银行流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankSerialType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCorrectSerialType是一个被冲正交易流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCorrectSerialType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureSerialType是一个期货公司流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureSerialType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcApplicationIDType是一个应用标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcApplicationIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankProxyIDType是一个银行代理标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankProxyIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTCoreIDType是一个银期转帐核心系统标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFBTCoreIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcServerPortType是一个服务端口号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcServerPortType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRepealedTimesType是一个已经冲正次数类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRepealedTimesType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRepealTimeIntervalType是一个冲正时间间隔类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRepealTimeIntervalType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTotalTimesType是一个每日累计转帐次数类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTotalTimesType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTRequestIDType是一个请求ID类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFBTRequestIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTIDType是一个交易ID类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeAmountType是一个交易金额(元)类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTradeAmountType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCustFeeType是一个应收客户费用(元)类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCustFeeType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureFeeType是一个应收期货公司费用(元)类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFutureFeeType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSingleMaxAmtType是一个单笔最高限额类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSingleMaxAmtType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSingleMinAmtType是一个单笔最低限额类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSingleMinAmtType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTotalAmtType是一个每日累计转帐额度类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTotalAmtType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCertificationTypeType是一个证件类型类型 +#////////////////////////////////////////////////////////////////////// +#身份证 +defineDict["THOST_FTDC_CFT_IDCard"] = '0' +#护照 +defineDict["THOST_FTDC_CFT_Passport"] = '1' +#军官证 +defineDict["THOST_FTDC_CFT_OfficerIDCard"] = '2' +#士兵证 +defineDict["THOST_FTDC_CFT_SoldierIDCard"] = '3' +#回乡证 +defineDict["THOST_FTDC_CFT_HomeComingCard"] = '4' +#户口簿 +defineDict["THOST_FTDC_CFT_HouseholdRegister"] = '5' +#营业执照号 +defineDict["THOST_FTDC_CFT_LicenseNo"] = '6' +#组织机构代码证 +defineDict["THOST_FTDC_CFT_InstitutionCodeCard"] = '7' +#临时营业执照号 +defineDict["THOST_FTDC_CFT_TempLicenseNo"] = '8' +#民办非企业登记证书 +defineDict["THOST_FTDC_CFT_NoEnterpriseLicenseNo"] = '9' +#其他证件 +defineDict["THOST_FTDC_CFT_OtherCard"] = 'x' +#主管部门批文 +defineDict["THOST_FTDC_CFT_SuperDepAgree"] = 'a' + +typedefDict["TThostFtdcCertificationTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileBusinessCodeType是一个文件业务功能类型 +#////////////////////////////////////////////////////////////////////// +#其他 +defineDict["THOST_FTDC_FBC_Others"] = '0' +#转账交易明细对账 +defineDict["THOST_FTDC_FBC_TransferDetails"] = '1' +#客户账户状态对账 +defineDict["THOST_FTDC_FBC_CustAccStatus"] = '2' +#账户类交易明细对账 +defineDict["THOST_FTDC_FBC_AccountTradeDetails"] = '3' +#期货账户信息变更明细对账 +defineDict["THOST_FTDC_FBC_FutureAccountChangeInfoDetails"] = '4' +#客户资金台账余额明细对账 +defineDict["THOST_FTDC_FBC_CustMoneyDetail"] = '5' +#客户销户结息明细对账 +defineDict["THOST_FTDC_FBC_CustCancelAccountInfo"] = '6' +#客户资金余额对账结果 +defineDict["THOST_FTDC_FBC_CustMoneyResult"] = '7' +#其它对账异常结果文件 +defineDict["THOST_FTDC_FBC_OthersExceptionResult"] = '8' +#客户结息净额明细 +defineDict["THOST_FTDC_FBC_CustInterestNetMoneyDetails"] = '9' +#客户资金交收明细 +defineDict["THOST_FTDC_FBC_CustMoneySendAndReceiveDetails"] = 'a' +#法人存管银行资金交收汇总 +defineDict["THOST_FTDC_FBC_CorporationMoneyTotal"] = 'b' +#主体间资金交收汇总 +defineDict["THOST_FTDC_FBC_MainbodyMoneyTotal"] = 'c' +#总分平衡监管数据 +defineDict["THOST_FTDC_FBC_MainPartMonitorData"] = 'd' +#存管银行备付金余额 +defineDict["THOST_FTDC_FBC_PreparationMoney"] = 'e' +#协办存管银行资金监管数据 +defineDict["THOST_FTDC_FBC_BankMoneyMonitorData"] = 'f' + +typedefDict["TThostFtdcFileBusinessCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCashExchangeCodeType是一个汇钞标志类型 +#////////////////////////////////////////////////////////////////////// +#汇 +defineDict["THOST_FTDC_CEC_Exchange"] = '1' +#钞 +defineDict["THOST_FTDC_CEC_Cash"] = '2' + +typedefDict["TThostFtdcCashExchangeCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcYesNoIndicatorType是一个是或否标识类型 +#////////////////////////////////////////////////////////////////////// +#是 +defineDict["THOST_FTDC_YNI_Yes"] = '0' +#否 +defineDict["THOST_FTDC_YNI_No"] = '1' + +typedefDict["TThostFtdcYesNoIndicatorType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBanlanceTypeType是一个余额类型类型 +#////////////////////////////////////////////////////////////////////// +#当前余额 +defineDict["THOST_FTDC_BLT_CurrentMoney"] = '0' +#可用余额 +defineDict["THOST_FTDC_BLT_UsableMoney"] = '1' +#可取余额 +defineDict["THOST_FTDC_BLT_FetchableMoney"] = '2' +#冻结余额 +defineDict["THOST_FTDC_BLT_FreezeMoney"] = '3' + +typedefDict["TThostFtdcBanlanceTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcGenderType是一个性别类型 +#////////////////////////////////////////////////////////////////////// +#未知状态 +defineDict["THOST_FTDC_GD_Unknown"] = '0' +#男 +defineDict["THOST_FTDC_GD_Male"] = '1' +#女 +defineDict["THOST_FTDC_GD_Female"] = '2' + +typedefDict["TThostFtdcGenderType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFeePayFlagType是一个费用支付标志类型 +#////////////////////////////////////////////////////////////////////// +#由受益方支付费用 +defineDict["THOST_FTDC_FPF_BEN"] = '0' +#由发送方支付费用 +defineDict["THOST_FTDC_FPF_OUR"] = '1' +#由发送方支付发起的费用,受益方支付接受的费用 +defineDict["THOST_FTDC_FPF_SHA"] = '2' + +typedefDict["TThostFtdcFeePayFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPassWordKeyTypeType是一个密钥类型类型 +#////////////////////////////////////////////////////////////////////// +#交换密钥 +defineDict["THOST_FTDC_PWKT_ExchangeKey"] = '0' +#密码密钥 +defineDict["THOST_FTDC_PWKT_PassWordKey"] = '1' +#MAC密钥 +defineDict["THOST_FTDC_PWKT_MACKey"] = '2' +#报文密钥 +defineDict["THOST_FTDC_PWKT_MessageKey"] = '3' + +typedefDict["TThostFtdcPassWordKeyTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTPassWordTypeType是一个密码类型类型 +#////////////////////////////////////////////////////////////////////// +#查询 +defineDict["THOST_FTDC_PWT_Query"] = '0' +#取款 +defineDict["THOST_FTDC_PWT_Fetch"] = '1' +#转帐 +defineDict["THOST_FTDC_PWT_Transfer"] = '2' +#交易 +defineDict["THOST_FTDC_PWT_Trade"] = '3' + +typedefDict["TThostFtdcFBTPassWordTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTEncryModeType是一个加密方式类型 +#////////////////////////////////////////////////////////////////////// +#不加密 +defineDict["THOST_FTDC_EM_NoEncry"] = '0' +#DES +defineDict["THOST_FTDC_EM_DES"] = '1' +#3DES +defineDict["THOST_FTDC_EM_3DES"] = '2' + +typedefDict["TThostFtdcFBTEncryModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankRepealFlagType是一个银行冲正标志类型 +#////////////////////////////////////////////////////////////////////// +#银行无需自动冲正 +defineDict["THOST_FTDC_BRF_BankNotNeedRepeal"] = '0' +#银行待自动冲正 +defineDict["THOST_FTDC_BRF_BankWaitingRepeal"] = '1' +#银行已自动冲正 +defineDict["THOST_FTDC_BRF_BankBeenRepealed"] = '2' + +typedefDict["TThostFtdcBankRepealFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerRepealFlagType是一个期商冲正标志类型 +#////////////////////////////////////////////////////////////////////// +#期商无需自动冲正 +defineDict["THOST_FTDC_BRORF_BrokerNotNeedRepeal"] = '0' +#期商待自动冲正 +defineDict["THOST_FTDC_BRORF_BrokerWaitingRepeal"] = '1' +#期商已自动冲正 +defineDict["THOST_FTDC_BRORF_BrokerBeenRepealed"] = '2' + +typedefDict["TThostFtdcBrokerRepealFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstitutionTypeType是一个机构类别类型 +#////////////////////////////////////////////////////////////////////// +#银行 +defineDict["THOST_FTDC_TS_Bank"] = '0' +#期商 +defineDict["THOST_FTDC_TS_Future"] = '1' +#券商 +defineDict["THOST_FTDC_TS_Store"] = '2' + +typedefDict["TThostFtdcInstitutionTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLastFragmentType是一个最后分片标志类型 +#////////////////////////////////////////////////////////////////////// +#是最后分片 +defineDict["THOST_FTDC_LF_Yes"] = '0' +#不是最后分片 +defineDict["THOST_FTDC_LF_No"] = '1' + +typedefDict["TThostFtdcLastFragmentType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankAccStatusType是一个银行账户状态类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_BAS_Normal"] = '0' +#冻结 +defineDict["THOST_FTDC_BAS_Freeze"] = '1' +#挂失 +defineDict["THOST_FTDC_BAS_ReportLoss"] = '2' + +typedefDict["TThostFtdcBankAccStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMoneyAccountStatusType是一个资金账户状态类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_MAS_Normal"] = '0' +#销户 +defineDict["THOST_FTDC_MAS_Cancel"] = '1' + +typedefDict["TThostFtdcMoneyAccountStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcManageStatusType是一个存管状态类型 +#////////////////////////////////////////////////////////////////////// +#指定存管 +defineDict["THOST_FTDC_MSS_Point"] = '0' +#预指定 +defineDict["THOST_FTDC_MSS_PrePoint"] = '1' +#撤销指定 +defineDict["THOST_FTDC_MSS_CancelPoint"] = '2' + +typedefDict["TThostFtdcManageStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSystemTypeType是一个应用系统类型类型 +#////////////////////////////////////////////////////////////////////// +#银期转帐 +defineDict["THOST_FTDC_SYT_FutureBankTransfer"] = '0' +#银证转帐 +defineDict["THOST_FTDC_SYT_StockBankTransfer"] = '1' +#第三方存管 +defineDict["THOST_FTDC_SYT_TheThirdPartStore"] = '2' + +typedefDict["TThostFtdcSystemTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTxnEndFlagType是一个银期转帐划转结果标志类型 +#////////////////////////////////////////////////////////////////////// +#正常处理中 +defineDict["THOST_FTDC_TEF_NormalProcessing"] = '0' +#成功结束 +defineDict["THOST_FTDC_TEF_Success"] = '1' +#失败结束 +defineDict["THOST_FTDC_TEF_Failed"] = '2' +#异常中 +defineDict["THOST_FTDC_TEF_Abnormal"] = '3' +#已人工异常处理 +defineDict["THOST_FTDC_TEF_ManualProcessedForException"] = '4' +#通讯异常 ,请人工处理 +defineDict["THOST_FTDC_TEF_CommuFailedNeedManualProcess"] = '5' +#系统出错,请人工处理 +defineDict["THOST_FTDC_TEF_SysErrorNeedManualProcess"] = '6' + +typedefDict["TThostFtdcTxnEndFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProcessStatusType是一个银期转帐服务处理状态类型 +#////////////////////////////////////////////////////////////////////// +#未处理 +defineDict["THOST_FTDC_PSS_NotProcess"] = '0' +#开始处理 +defineDict["THOST_FTDC_PSS_StartProcess"] = '1' +#处理完成 +defineDict["THOST_FTDC_PSS_Finished"] = '2' + +typedefDict["TThostFtdcProcessStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCustTypeType是一个客户类型类型 +#////////////////////////////////////////////////////////////////////// +#自然人 +defineDict["THOST_FTDC_CUSTT_Person"] = '0' +#机构户 +defineDict["THOST_FTDC_CUSTT_Institution"] = '1' + +typedefDict["TThostFtdcCustTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTTransferDirectionType是一个银期转帐方向类型 +#////////////////////////////////////////////////////////////////////// +#入金,银行转期货 +defineDict["THOST_FTDC_FBTTD_FromBankToFuture"] = '1' +#出金,期货转银行 +defineDict["THOST_FTDC_FBTTD_FromFutureToBank"] = '2' + +typedefDict["TThostFtdcFBTTransferDirectionType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOpenOrDestroyType是一个开销户类别类型 +#////////////////////////////////////////////////////////////////////// +#开户 +defineDict["THOST_FTDC_OOD_Open"] = '1' +#销户 +defineDict["THOST_FTDC_OOD_Destroy"] = '0' + +typedefDict["TThostFtdcOpenOrDestroyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAvailabilityFlagType是一个有效标志类型 +#////////////////////////////////////////////////////////////////////// +#未确认 +defineDict["THOST_FTDC_AVAF_Invalid"] = '0' +#有效 +defineDict["THOST_FTDC_AVAF_Valid"] = '1' +#冲正 +defineDict["THOST_FTDC_AVAF_Repeal"] = '2' + +typedefDict["TThostFtdcAvailabilityFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrganTypeType是一个机构类型类型 +#////////////////////////////////////////////////////////////////////// +#银行代理 +defineDict["THOST_FTDC_OT_Bank"] = '1' +#交易前置 +defineDict["THOST_FTDC_OT_Future"] = '2' +#银期转帐平台管理 +defineDict["THOST_FTDC_OT_PlateForm"] = '9' + +typedefDict["TThostFtdcOrganTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrganLevelType是一个机构级别类型 +#////////////////////////////////////////////////////////////////////// +#银行总行或期商总部 +defineDict["THOST_FTDC_OL_HeadQuarters"] = '1' +#银行分中心或期货公司营业部 +defineDict["THOST_FTDC_OL_Branch"] = '2' + +typedefDict["TThostFtdcOrganLevelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProtocalIDType是一个协议类型类型 +#////////////////////////////////////////////////////////////////////// +#期商协议 +defineDict["THOST_FTDC_PID_FutureProtocal"] = '0' +#工行协议 +defineDict["THOST_FTDC_PID_ICBCProtocal"] = '1' +#农行协议 +defineDict["THOST_FTDC_PID_ABCProtocal"] = '2' +#中国银行协议 +defineDict["THOST_FTDC_PID_CBCProtocal"] = '3' +#建行协议 +defineDict["THOST_FTDC_PID_CCBProtocal"] = '4' +#交行协议 +defineDict["THOST_FTDC_PID_BOCOMProtocal"] = '5' +#银期转帐平台协议 +defineDict["THOST_FTDC_PID_FBTPlateFormProtocal"] = 'X' + +typedefDict["TThostFtdcProtocalIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcConnectModeType是一个套接字连接方式类型 +#////////////////////////////////////////////////////////////////////// +#短连接 +defineDict["THOST_FTDC_CM_ShortConnect"] = '0' +#长连接 +defineDict["THOST_FTDC_CM_LongConnect"] = '1' + +typedefDict["TThostFtdcConnectModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSyncModeType是一个套接字通信方式类型 +#////////////////////////////////////////////////////////////////////// +#异步 +defineDict["THOST_FTDC_SRM_ASync"] = '0' +#同步 +defineDict["THOST_FTDC_SRM_Sync"] = '1' + +typedefDict["TThostFtdcSyncModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankAccTypeType是一个银行帐号类型类型 +#////////////////////////////////////////////////////////////////////// +#银行存折 +defineDict["THOST_FTDC_BAT_BankBook"] = '1' +#储蓄卡 +defineDict["THOST_FTDC_BAT_SavingCard"] = '2' +#信用卡 +defineDict["THOST_FTDC_BAT_CreditCard"] = '3' + +typedefDict["TThostFtdcBankAccTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureAccTypeType是一个期货公司帐号类型类型 +#////////////////////////////////////////////////////////////////////// +#银行存折 +defineDict["THOST_FTDC_FAT_BankBook"] = '1' +#储蓄卡 +defineDict["THOST_FTDC_FAT_SavingCard"] = '2' +#信用卡 +defineDict["THOST_FTDC_FAT_CreditCard"] = '3' + +typedefDict["TThostFtdcFutureAccTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOrganStatusType是一个接入机构状态类型 +#////////////////////////////////////////////////////////////////////// +#启用 +defineDict["THOST_FTDC_OS_Ready"] = '0' +#签到 +defineDict["THOST_FTDC_OS_CheckIn"] = '1' +#签退 +defineDict["THOST_FTDC_OS_CheckOut"] = '2' +#对帐文件到达 +defineDict["THOST_FTDC_OS_CheckFileArrived"] = '3' +#对帐 +defineDict["THOST_FTDC_OS_CheckDetail"] = '4' +#日终清理 +defineDict["THOST_FTDC_OS_DayEndClean"] = '5' +#注销 +defineDict["THOST_FTDC_OS_Invalid"] = '9' + +typedefDict["TThostFtdcOrganStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCCBFeeModeType是一个建行收费模式类型 +#////////////////////////////////////////////////////////////////////// +#按金额扣收 +defineDict["THOST_FTDC_CCBFM_ByAmount"] = '1' +#按月扣收 +defineDict["THOST_FTDC_CCBFM_ByMonth"] = '2' + +typedefDict["TThostFtdcCCBFeeModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommApiTypeType是一个通讯API类型类型 +#////////////////////////////////////////////////////////////////////// +#客户端 +defineDict["THOST_FTDC_CAPIT_Client"] = '1' +#服务端 +defineDict["THOST_FTDC_CAPIT_Server"] = '2' +#交易系统的UserApi +defineDict["THOST_FTDC_CAPIT_UserApi"] = '3' + +typedefDict["TThostFtdcCommApiTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcServiceIDType是一个服务编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcServiceIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcServiceLineNoType是一个服务线路编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcServiceLineNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcServiceNameType是一个服务名类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcServiceNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLinkStatusType是一个连接状态类型 +#////////////////////////////////////////////////////////////////////// +#已经连接 +defineDict["THOST_FTDC_LS_Connected"] = '1' +#没有连接 +defineDict["THOST_FTDC_LS_Disconnected"] = '2' + +typedefDict["TThostFtdcLinkStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommApiPointerType是一个通讯API指针类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCommApiPointerType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPwdFlagType是一个密码核对标志类型 +#////////////////////////////////////////////////////////////////////// +#不核对 +defineDict["THOST_FTDC_BPWDF_NoCheck"] = '0' +#明文核对 +defineDict["THOST_FTDC_BPWDF_BlankCheck"] = '1' +#密文核对 +defineDict["THOST_FTDC_BPWDF_EncryptCheck"] = '2' + +typedefDict["TThostFtdcPwdFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSecuAccTypeType是一个期货帐号类型类型 +#////////////////////////////////////////////////////////////////////// +#资金帐号 +defineDict["THOST_FTDC_SAT_AccountID"] = '1' +#资金卡号 +defineDict["THOST_FTDC_SAT_CardID"] = '2' +#上海股东帐号 +defineDict["THOST_FTDC_SAT_SHStockholderID"] = '3' +#深圳股东帐号 +defineDict["THOST_FTDC_SAT_SZStockholderID"] = '4' + +typedefDict["TThostFtdcSecuAccTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTransferStatusType是一个转账交易状态类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_TRFS_Normal"] = '0' +#被冲正 +defineDict["THOST_FTDC_TRFS_Repealed"] = '1' + +typedefDict["TThostFtdcTransferStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSponsorTypeType是一个发起方类型 +#////////////////////////////////////////////////////////////////////// +#期商 +defineDict["THOST_FTDC_SPTYPE_Broker"] = '0' +#银行 +defineDict["THOST_FTDC_SPTYPE_Bank"] = '1' + +typedefDict["TThostFtdcSponsorTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcReqRspTypeType是一个请求响应类别类型 +#////////////////////////////////////////////////////////////////////// +#请求 +defineDict["THOST_FTDC_REQRSP_Request"] = '0' +#响应 +defineDict["THOST_FTDC_REQRSP_Response"] = '1' + +typedefDict["TThostFtdcReqRspTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTUserEventTypeType是一个银期转帐用户事件类型类型 +#////////////////////////////////////////////////////////////////////// +#签到 +defineDict["THOST_FTDC_FBTUET_SignIn"] = '0' +#银行转期货 +defineDict["THOST_FTDC_FBTUET_FromBankToFuture"] = '1' +#期货转银行 +defineDict["THOST_FTDC_FBTUET_FromFutureToBank"] = '2' +#开户 +defineDict["THOST_FTDC_FBTUET_OpenAccount"] = '3' +#销户 +defineDict["THOST_FTDC_FBTUET_CancelAccount"] = '4' +#变更银行账户 +defineDict["THOST_FTDC_FBTUET_ChangeAccount"] = '5' +#冲正银行转期货 +defineDict["THOST_FTDC_FBTUET_RepealFromBankToFuture"] = '6' +#冲正期货转银行 +defineDict["THOST_FTDC_FBTUET_RepealFromFutureToBank"] = '7' +#查询银行账户 +defineDict["THOST_FTDC_FBTUET_QueryBankAccount"] = '8' +#查询期货账户 +defineDict["THOST_FTDC_FBTUET_QueryFutureAccount"] = '9' +#签退 +defineDict["THOST_FTDC_FBTUET_SignOut"] = 'A' +#密钥同步 +defineDict["THOST_FTDC_FBTUET_SyncKey"] = 'B' +#其他 +defineDict["THOST_FTDC_FBTUET_Other"] = 'Z' + +typedefDict["TThostFtdcFBTUserEventTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankIDByBankType是一个银行自己的编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcBankIDByBankType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcNotifyClassType是一个风险通知类型类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_NC_NOERROR"] = '0' +#警示 +defineDict["THOST_FTDC_NC_Warn"] = '1' +#追保 +defineDict["THOST_FTDC_NC_Call"] = '2' +#强平 +defineDict["THOST_FTDC_NC_Force"] = '3' +#穿仓 +defineDict["THOST_FTDC_NC_CHUANCANG"] = '4' +#异常 +defineDict["THOST_FTDC_NC_Exception"] = '5' + +typedefDict["TThostFtdcNotifyClassType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRiskNofityInfoType是一个客户风险通知消息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRiskNofityInfoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcForceCloseSceneIdType是一个强平场景编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcForceCloseSceneIdType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcForceCloseTypeType是一个强平单类型类型 +#////////////////////////////////////////////////////////////////////// +#手工强平 +defineDict["THOST_FTDC_FCT_Manual"] = '0' +#单一投资者辅助强平 +defineDict["THOST_FTDC_FCT_Single"] = '1' +#批量投资者辅助强平 +defineDict["THOST_FTDC_FCT_Group"] = '2' + +typedefDict["TThostFtdcForceCloseTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInstrumentIDsType是一个多个产品代码,用+分隔,如cu+zn类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInstrumentIDsType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRiskNotifyMethodType是一个风险通知途径类型 +#////////////////////////////////////////////////////////////////////// +#系统通知 +defineDict["THOST_FTDC_RNM_System"] = '0' +#短信通知 +defineDict["THOST_FTDC_RNM_SMS"] = '1' +#邮件通知 +defineDict["THOST_FTDC_RNM_EMail"] = '2' +#人工通知 +defineDict["THOST_FTDC_RNM_Manual"] = '3' + +typedefDict["TThostFtdcRiskNotifyMethodType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRiskNotifyStatusType是一个风险通知状态类型 +#////////////////////////////////////////////////////////////////////// +#未生成 +defineDict["THOST_FTDC_RNS_NotGen"] = '0' +#已生成未发送 +defineDict["THOST_FTDC_RNS_Generated"] = '1' +#发送失败 +defineDict["THOST_FTDC_RNS_SendError"] = '2' +#已发送未接收 +defineDict["THOST_FTDC_RNS_SendOk"] = '3' +#已接收未确认 +defineDict["THOST_FTDC_RNS_Received"] = '4' +#已确认 +defineDict["THOST_FTDC_RNS_Confirmed"] = '5' + +typedefDict["TThostFtdcRiskNotifyStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRiskUserEventType是一个风控用户操作事件类型 +#////////////////////////////////////////////////////////////////////// +#导出数据 +defineDict["THOST_FTDC_RUE_ExportData"] = '0' + +typedefDict["TThostFtdcRiskUserEventType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcParamIDType是一个参数代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcParamIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcParamNameType是一个参数名类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcParamNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcParamValueType是一个参数值类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcParamValueType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcConditionalOrderSortTypeType是一个条件单索引条件类型 +#////////////////////////////////////////////////////////////////////// +#使用最新价升序 +defineDict["THOST_FTDC_COST_LastPriceAsc"] = '0' +#使用最新价降序 +defineDict["THOST_FTDC_COST_LastPriceDesc"] = '1' +#使用卖价升序 +defineDict["THOST_FTDC_COST_AskPriceAsc"] = '2' +#使用卖价降序 +defineDict["THOST_FTDC_COST_AskPriceDesc"] = '3' +#使用买价升序 +defineDict["THOST_FTDC_COST_BidPriceAsc"] = '4' +#使用买价降序 +defineDict["THOST_FTDC_COST_BidPriceDesc"] = '5' + +typedefDict["TThostFtdcConditionalOrderSortTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSendTypeType是一个报送状态类型 +#////////////////////////////////////////////////////////////////////// +#未发送 +defineDict["THOST_FTDC_UOAST_NoSend"] = '0' +#已发送 +defineDict["THOST_FTDC_UOAST_Sended"] = '1' +#已生成 +defineDict["THOST_FTDC_UOAST_Generated"] = '2' +#报送失败 +defineDict["THOST_FTDC_UOAST_SendFail"] = '3' +#接收成功 +defineDict["THOST_FTDC_UOAST_Success"] = '4' +#接收失败 +defineDict["THOST_FTDC_UOAST_Fail"] = '5' +#取消报送 +defineDict["THOST_FTDC_UOAST_Cancel"] = '6' + +typedefDict["TThostFtdcSendTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClientIDStatusType是一个交易编码状态类型 +#////////////////////////////////////////////////////////////////////// +#未申请 +defineDict["THOST_FTDC_UOACS_NoApply"] = '1' +#已提交申请 +defineDict["THOST_FTDC_UOACS_Submited"] = '2' +#已发送申请 +defineDict["THOST_FTDC_UOACS_Sended"] = '3' +#完成 +defineDict["THOST_FTDC_UOACS_Success"] = '4' +#拒绝 +defineDict["THOST_FTDC_UOACS_Refuse"] = '5' +#已撤销编码 +defineDict["THOST_FTDC_UOACS_Cancel"] = '6' + +typedefDict["TThostFtdcClientIDStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIndustryIDType是一个行业编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcIndustryIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcQuestionIDType是一个特有信息编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcQuestionIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcQuestionContentType是一个特有信息说明类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcQuestionContentType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOptionIDType是一个选项编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOptionIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOptionContentType是一个选项说明类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOptionContentType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcQuestionTypeType是一个特有信息类型类型 +#////////////////////////////////////////////////////////////////////// +#单选 +defineDict["THOST_FTDC_QT_Radio"] = '1' +#多选 +defineDict["THOST_FTDC_QT_Option"] = '2' +#填空 +defineDict["THOST_FTDC_QT_Blank"] = '3' + +typedefDict["TThostFtdcQuestionTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProcessIDType是一个业务流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcProcessIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSeqNoType是一个流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSeqNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUOAProcessStatusType是一个流程状态类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUOAProcessStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcProcessTypeType是一个流程功能类型类型 +#////////////////////////////////////////////////////////////////////// +#申请交易编码 +defineDict["THOST_FTDC_PT_ApplyTradingCode"] = '1' +#撤销交易编码 +defineDict["THOST_FTDC_PT_CancelTradingCode"] = '2' +#修改身份信息 +defineDict["THOST_FTDC_PT_ModifyIDCard"] = '3' +#修改一般信息 +defineDict["THOST_FTDC_PT_ModifyNoIDCard"] = '4' +#交易所开户报备 +defineDict["THOST_FTDC_PT_ExchOpenBak"] = '5' +#交易所销户报备 +defineDict["THOST_FTDC_PT_ExchCancelBak"] = '6' +#补报规范资料 +defineDict["THOST_FTDC_PT_StandardAccount"] = '7' +#账户休眠 +defineDict["THOST_FTDC_PT_FreezeAccount"] = '8' +#激活休眠账户 +defineDict["THOST_FTDC_PT_ActiveFreezeAccount"] = '9' + +typedefDict["TThostFtdcProcessTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBusinessTypeType是一个业务类型类型 +#////////////////////////////////////////////////////////////////////// +#请求 +defineDict["THOST_FTDC_BT_Request"] = '1' +#应答 +defineDict["THOST_FTDC_BT_Response"] = '2' +#通知 +defineDict["THOST_FTDC_BT_Notice"] = '3' + +typedefDict["TThostFtdcBusinessTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCfmmcReturnCodeType是一个监控中心返回码类型 +#////////////////////////////////////////////////////////////////////// +#成功 +defineDict["THOST_FTDC_CRC_Success"] = '0' +#该客户已经有流程在处理中 +defineDict["THOST_FTDC_CRC_Working"] = '1' +#监控中客户资料检查失败 +defineDict["THOST_FTDC_CRC_InfoFail"] = '2' +#监控中实名制检查失败 +defineDict["THOST_FTDC_CRC_IDCardFail"] = '3' +#其他错误 +defineDict["THOST_FTDC_CRC_OtherFail"] = '4' + +typedefDict["TThostFtdcCfmmcReturnCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExReturnCodeType是一个交易所返回码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcExReturnCodeType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClientTypeType是一个客户类型类型 +#////////////////////////////////////////////////////////////////////// +#所有 +defineDict["THOST_FTDC_CfMMCCT_All"] = '0' +#个人 +defineDict["THOST_FTDC_CfMMCCT_Person"] = '1' +#单位 +defineDict["THOST_FTDC_CfMMCCT_Company"] = '2' + +typedefDict["TThostFtdcClientTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExchangeIDTypeType是一个交易所编号类型 +#////////////////////////////////////////////////////////////////////// +#上海期货交易所 +defineDict["THOST_FTDC_EIDT_SHFE"] = 'S' +#郑州商品交易所 +defineDict["THOST_FTDC_EIDT_CZCE"] = 'Z' +#大连商品交易所 +defineDict["THOST_FTDC_EIDT_DCE"] = 'D' +#中国金融期货交易所 +defineDict["THOST_FTDC_EIDT_CFFEX"] = 'J' + +typedefDict["TThostFtdcExchangeIDTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExClientIDTypeType是一个交易编码类型类型 +#////////////////////////////////////////////////////////////////////// +#套保 +defineDict["THOST_FTDC_ECIDT_Hedge"] = '1' +#套利 +defineDict["THOST_FTDC_ECIDT_Arbitrage"] = '2' +#投机 +defineDict["THOST_FTDC_ECIDT_Speculation"] = '3' + +typedefDict["TThostFtdcExClientIDTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcClientClassifyType是一个客户分类码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcClientClassifyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUOAOrganTypeType是一个单位性质类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUOAOrganTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUOACountryCodeType是一个国家代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUOACountryCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAreaCodeType是一个区号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAreaCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFuturesIDType是一个监控中心为客户分配的代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFuturesIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCffmcDateType是一个日期类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCffmcDateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCffmcTimeType是一个时间类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCffmcTimeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcNocIDType是一个组织机构代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcNocIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUpdateFlagType是一个更新状态类型 +#////////////////////////////////////////////////////////////////////// +#未更新 +defineDict["THOST_FTDC_UF_NoUpdate"] = '0' +#更新全部信息成功 +defineDict["THOST_FTDC_UF_Success"] = '1' +#更新全部信息失败 +defineDict["THOST_FTDC_UF_Fail"] = '2' +#更新交易编码成功 +defineDict["THOST_FTDC_UF_TCSuccess"] = '3' +#更新交易编码失败 +defineDict["THOST_FTDC_UF_TCFail"] = '4' +#已丢弃 +defineDict["THOST_FTDC_UF_Cancel"] = '5' + +typedefDict["TThostFtdcUpdateFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcApplyOperateIDType是一个申请动作类型 +#////////////////////////////////////////////////////////////////////// +#开户 +defineDict["THOST_FTDC_AOID_OpenInvestor"] = '1' +#修改身份信息 +defineDict["THOST_FTDC_AOID_ModifyIDCard"] = '2' +#修改一般信息 +defineDict["THOST_FTDC_AOID_ModifyNoIDCard"] = '3' +#申请交易编码 +defineDict["THOST_FTDC_AOID_ApplyTradingCode"] = '4' +#撤销交易编码 +defineDict["THOST_FTDC_AOID_CancelTradingCode"] = '5' +#销户 +defineDict["THOST_FTDC_AOID_CancelInvestor"] = '6' +#账户休眠 +defineDict["THOST_FTDC_AOID_FreezeAccount"] = '8' +#激活休眠账户 +defineDict["THOST_FTDC_AOID_ActiveFreezeAccount"] = '9' + +typedefDict["TThostFtdcApplyOperateIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcApplyStatusIDType是一个申请状态类型 +#////////////////////////////////////////////////////////////////////// +#未补全 +defineDict["THOST_FTDC_ASID_NoComplete"] = '1' +#已提交 +defineDict["THOST_FTDC_ASID_Submited"] = '2' +#已审核 +defineDict["THOST_FTDC_ASID_Checked"] = '3' +#已拒绝 +defineDict["THOST_FTDC_ASID_Refused"] = '4' +#已删除 +defineDict["THOST_FTDC_ASID_Deleted"] = '5' + +typedefDict["TThostFtdcApplyStatusIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSendMethodType是一个发送方式类型 +#////////////////////////////////////////////////////////////////////// +#文件发送 +defineDict["THOST_FTDC_UOASM_ByAPI"] = '1' +#电子发送 +defineDict["THOST_FTDC_UOASM_ByFile"] = '2' + +typedefDict["TThostFtdcSendMethodType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcEventTypeType是一个业务操作类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcEventTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcEventModeType是一个操作方法类型 +#////////////////////////////////////////////////////////////////////// +#增加 +defineDict["THOST_FTDC_EvM_ADD"] = '1' +#修改 +defineDict["THOST_FTDC_EvM_UPDATE"] = '2' +#删除 +defineDict["THOST_FTDC_EvM_DELETE"] = '3' +#复核 +defineDict["THOST_FTDC_EvM_CHECK"] = '4' +#复制 +defineDict["THOST_FTDC_EvM_COPY"] = '5' +#注销 +defineDict["THOST_FTDC_EvM_CANCEL"] = '6' +#冲销 +defineDict["THOST_FTDC_EvM_Reverse"] = '7' + +typedefDict["TThostFtdcEventModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUOAAutoSendType是一个统一开户申请自动发送类型 +#////////////////////////////////////////////////////////////////////// +#自动发送并接收 +defineDict["THOST_FTDC_UOAA_ASR"] = '1' +#自动发送,不自动接收 +defineDict["THOST_FTDC_UOAA_ASNR"] = '2' +#不自动发送,自动接收 +defineDict["THOST_FTDC_UOAA_NSAR"] = '3' +#不自动发送,也不自动接收 +defineDict["THOST_FTDC_UOAA_NSR"] = '4' + +typedefDict["TThostFtdcUOAAutoSendType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcQueryDepthType是一个查询深度类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcQueryDepthType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDataCenterIDType是一个数据中心代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDataCenterIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFlowIDType是一个流程ID类型 +#////////////////////////////////////////////////////////////////////// +#投资者对应投资者组设置 +defineDict["THOST_FTDC_EvM_InvestorGroupFlow"] = '1' +#投资者手续费率设置 +defineDict["THOST_FTDC_EvM_InvestorRate"] = '2' +#投资者手续费率模板关系设置 +defineDict["THOST_FTDC_EvM_InvestorCommRateModel"] = '3' + +typedefDict["TThostFtdcFlowIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCheckLevelType是一个复核级别类型 +#////////////////////////////////////////////////////////////////////// +#零级复核 +defineDict["THOST_FTDC_CL_Zero"] = '0' +#一级复核 +defineDict["THOST_FTDC_CL_One"] = '1' +#二级复核 +defineDict["THOST_FTDC_CL_Two"] = '2' + +typedefDict["TThostFtdcCheckLevelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCheckNoType是一个操作次数类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCheckNoType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCheckStatusType是一个复核级别类型 +#////////////////////////////////////////////////////////////////////// +#未复核 +defineDict["THOST_FTDC_CHS_Init"] = '0' +#复核中 +defineDict["THOST_FTDC_CHS_Checking"] = '1' +#已复核 +defineDict["THOST_FTDC_CHS_Checked"] = '2' +#拒绝 +defineDict["THOST_FTDC_CHS_Refuse"] = '3' +#作废 +defineDict["THOST_FTDC_CHS_Cancel"] = '4' + +typedefDict["TThostFtdcCheckStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUsedStatusType是一个生效状态类型 +#////////////////////////////////////////////////////////////////////// +#未生效 +defineDict["THOST_FTDC_CHU_Unused"] = '0' +#已生效 +defineDict["THOST_FTDC_CHU_Used"] = '1' +#生效失败 +defineDict["THOST_FTDC_CHU_Fail"] = '2' + +typedefDict["TThostFtdcUsedStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRateTemplateNameType是一个模型名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRateTemplateNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPropertyStringType是一个用于查询的投资属性字段类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcPropertyStringType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBankAcountOriginType是一个账户来源类型 +#////////////////////////////////////////////////////////////////////// +#手工录入 +defineDict["THOST_FTDC_BAO_ByAccProperty"] = '0' +#银期转账 +defineDict["THOST_FTDC_BAO_ByFBTransfer"] = '1' + +typedefDict["TThostFtdcBankAcountOriginType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcMonthBillTradeSumType是一个结算单月报成交汇总方式类型 +#////////////////////////////////////////////////////////////////////// +#同日同合约 +defineDict["THOST_FTDC_MBTS_ByInstrument"] = '0' +#同日同合约同价格 +defineDict["THOST_FTDC_MBTS_ByDayInsPrc"] = '1' +#同合约 +defineDict["THOST_FTDC_MBTS_ByDayIns"] = '2' + +typedefDict["TThostFtdcMonthBillTradeSumType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTTradeCodeEnumType是一个银期交易代码枚举类型 +#////////////////////////////////////////////////////////////////////// +#银行发起银行转期货 +defineDict["THOST_FTDC_FTC_BankLaunchBankToBroker"] = '102001' +#期货发起银行转期货 +defineDict["THOST_FTDC_FTC_BrokerLaunchBankToBroker"] = '202001' +#银行发起期货转银行 +defineDict["THOST_FTDC_FTC_BankLaunchBrokerToBank"] = '102002' +#期货发起期货转银行 +defineDict["THOST_FTDC_FTC_BrokerLaunchBrokerToBank"] = '202002' + +typedefDict["TThostFtdcFBTTradeCodeEnumType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRateTemplateIDType是一个模型代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRateTemplateIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRiskRateType是一个风险度类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRiskRateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTimestampType是一个时间戳类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTimestampType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorIDRuleNameType是一个号段规则名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInvestorIDRuleNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcInvestorIDRuleExprType是一个号段规则表达式类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcInvestorIDRuleExprType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLastDriftType是一个上次OTP漂移值类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLastDriftType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLastSuccessType是一个上次OTP成功值类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcLastSuccessType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAuthKeyType是一个令牌密钥类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAuthKeyType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSerialNumberType是一个序列号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSerialNumberType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOTPTypeType是一个动态令牌类型类型 +#////////////////////////////////////////////////////////////////////// +#无动态令牌 +defineDict["THOST_FTDC_OTP_NONE"] = '0' +#时间令牌 +defineDict["THOST_FTDC_OTP_TOTP"] = '1' + +typedefDict["TThostFtdcOTPTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOTPVendorsIDType是一个动态令牌提供商类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOTPVendorsIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOTPVendorsNameType是一个动态令牌提供商名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcOTPVendorsNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcOTPStatusType是一个动态令牌状态类型 +#////////////////////////////////////////////////////////////////////// +#未使用 +defineDict["THOST_FTDC_OTPS_Unused"] = '0' +#已使用 +defineDict["THOST_FTDC_OTPS_Used"] = '1' +#注销 +defineDict["THOST_FTDC_OTPS_Disuse"] = '2' + +typedefDict["TThostFtdcOTPStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcBrokerUserTypeType是一个经济公司用户类型类型 +#////////////////////////////////////////////////////////////////////// +#投资者 +defineDict["THOST_FTDC_BUT_Investor"] = '1' +#操作员 +defineDict["THOST_FTDC_BUT_BrokerUser"] = '2' + +typedefDict["TThostFtdcBrokerUserTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFutureTypeType是一个期货类型类型 +#////////////////////////////////////////////////////////////////////// +#商品期货 +defineDict["THOST_FTDC_FUTT_Commodity"] = '1' +#金融期货 +defineDict["THOST_FTDC_FUTT_Financial"] = '2' + +typedefDict["TThostFtdcFutureTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFundEventTypeType是一个资金管理操作类型类型 +#////////////////////////////////////////////////////////////////////// +#转账限额 +defineDict["THOST_FTDC_FET_Restriction"] = '0' +#当日转账限额 +defineDict["THOST_FTDC_FET_TodayRestriction"] = '1' +#期商流水 +defineDict["THOST_FTDC_FET_Transfer"] = '2' +#资金冻结 +defineDict["THOST_FTDC_FET_Credit"] = '3' +#投资者可提资金比例 +defineDict["THOST_FTDC_FET_InvestorWithdrawAlm"] = '4' +#单个银行帐户转账限额 +defineDict["THOST_FTDC_FET_BankRestriction"] = '5' +#银期签约账户 +defineDict["THOST_FTDC_FET_Accountregister"] = '6' +#交易所出入金 +defineDict["THOST_FTDC_FET_ExchangeFundIO"] = '7' +#投资者出入金 +defineDict["THOST_FTDC_FET_InvestorFundIO"] = '8' + +typedefDict["TThostFtdcFundEventTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAccountSourceTypeType是一个资金账户来源类型 +#////////////////////////////////////////////////////////////////////// +#银期同步 +defineDict["THOST_FTDC_AST_FBTransfer"] = '0' +#手工录入 +defineDict["THOST_FTDC_AST_ManualEntry"] = '1' + +typedefDict["TThostFtdcAccountSourceTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCodeSourceTypeType是一个交易编码来源类型 +#////////////////////////////////////////////////////////////////////// +#统一开户(已规范) +defineDict["THOST_FTDC_CST_UnifyAccount"] = '0' +#手工录入(未规范) +defineDict["THOST_FTDC_CST_ManualEntry"] = '1' + +typedefDict["TThostFtdcCodeSourceTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserRangeType是一个操作员范围类型 +#////////////////////////////////////////////////////////////////////// +#所有 +defineDict["THOST_FTDC_UR_All"] = '0' +#单一操作员 +defineDict["THOST_FTDC_UR_Single"] = '1' + +typedefDict["TThostFtdcUserRangeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTimeSpanType是一个时间跨度类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTimeSpanType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcImportSequenceIDType是一个动态令牌导入批次编号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcImportSequenceIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcByGroupType是一个交易统计表按客户统计方式类型 +#////////////////////////////////////////////////////////////////////// +#按投资者统计 +defineDict["THOST_FTDC_BG_Investor"] = '2' +#按类统计 +defineDict["THOST_FTDC_BG_Group"] = '1' + +typedefDict["TThostFtdcByGroupType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeSumStatModeType是一个交易统计表按范围统计方式类型 +#////////////////////////////////////////////////////////////////////// +#按合约统计 +defineDict["THOST_FTDC_TSSM_Instrument"] = '1' +#按产品统计 +defineDict["THOST_FTDC_TSSM_Product"] = '2' +#按交易所统计 +defineDict["THOST_FTDC_TSSM_Exchange"] = '3' + +typedefDict["TThostFtdcTradeSumStatModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcComTypeType是一个组合成交类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcComTypeType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserProductIDType是一个产品标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUserProductIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserProductNameType是一个产品名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUserProductNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcUserProductMemoType是一个产品说明类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcUserProductMemoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCCancelFlagType是一个新增或变更标志类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCCancelFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCDateType是一个日期类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCDateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCInvestorNameType是一个客户名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCInvestorNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCInvestorIDType是一个客户代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCInvestorIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCIdentifiedCardNoType是一个证件号码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCIdentifiedCardNoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCClientIDType是一个交易编码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCClientIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCBankFlagType是一个银行标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCBankFlagType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCBankAccountType是一个银行账户类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCBankAccountType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCOpenNameType是一个开户人类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCOpenNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCMemoType是一个说明类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCMemoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCTimeType是一个时间类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCTimeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCTradeIDType是一个成交流水号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCTradeIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCExchangeInstIDType是一个合约代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCExchangeInstIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCMortgageNameType是一个质押品名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCMortgageNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCReasonType是一个事由类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCReasonType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcIsSettlementType是一个是否为非结算会员类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcIsSettlementType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCMoneyType是一个资金类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCMoneyType"] = "float" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommModelNameType是一个手续费率模板名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCommModelNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCommModelMemoType是一个手续费率模板备注类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCommModelMemoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRateInvestorRangeType是一个投资者范围类型 +#////////////////////////////////////////////////////////////////////// +#所有 +defineDict["THOST_FTDC_RIR_All"] = '1' +#费率模板 +defineDict["THOST_FTDC_RIR_Model"] = '2' +#单一投资者 +defineDict["THOST_FTDC_RIR_Single"] = '3' + +typedefDict["TThostFtdcRateInvestorRangeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAgentBrokerIDType是一个代理经纪公司代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAgentBrokerIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDRIdentityIDType是一个交易中心代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDRIdentityIDType"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDRIdentityNameType是一个交易中心名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDRIdentityNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDBLinkIDType是一个DBLink标识号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDBLinkIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSyncDataStatusType是一个主次用系统数据同步状态类型 +#////////////////////////////////////////////////////////////////////// +#未同步 +defineDict["THOST_FTDC_SDS_Initialize"] = '0' +#同步中 +defineDict["THOST_FTDC_SDS_Settlementing"] = '1' +#已同步 +defineDict["THOST_FTDC_SDS_Settlemented"] = '2' + +typedefDict["TThostFtdcSyncDataStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcTradeSourceType是一个成交来源类型 +#////////////////////////////////////////////////////////////////////// +#来自交易所普通回报 +defineDict["THOST_FTDC_TSRC_NORMAL"] = '0' +#来自查询 +defineDict["THOST_FTDC_TSRC_QUERY"] = '1' + +typedefDict["TThostFtdcTradeSourceType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFlexStatModeType是一个产品合约统计方式类型 +#////////////////////////////////////////////////////////////////////// +#产品统计 +defineDict["THOST_FTDC_FSM_Product"] = '1' +#交易所统计 +defineDict["THOST_FTDC_FSM_Exchange"] = '2' +#统计所有 +defineDict["THOST_FTDC_FSM_All"] = '3' + +typedefDict["TThostFtdcFlexStatModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcByInvestorRangeType是一个投资者范围统计方式类型 +#////////////////////////////////////////////////////////////////////// +#属性统计 +defineDict["THOST_FTDC_BIR_Property"] = '1' +#统计所有 +defineDict["THOST_FTDC_BIR_All"] = '2' + +typedefDict["TThostFtdcByInvestorRangeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSRiskRateType是一个风险度类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSRiskRateType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFBTBankIDType是一个银行标识类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFBTBankIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSequenceNo12Type是一个序号类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSequenceNo12Type"] = "int" + +#////////////////////////////////////////////////////////////////////// +#TFtdcPropertyInvestorRangeType是一个投资者范围类型 +#////////////////////////////////////////////////////////////////////// +#所有 +defineDict["THOST_FTDC_PIR_All"] = '1' +#投资者属性 +defineDict["THOST_FTDC_PIR_Property"] = '2' +#单一投资者 +defineDict["THOST_FTDC_PIR_Single"] = '3' + +typedefDict["TThostFtdcPropertyInvestorRangeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileStatusType是一个文件状态类型 +#////////////////////////////////////////////////////////////////////// +#未生成 +defineDict["THOST_FTDC_FIS_NoCreate"] = '0' +#已生成 +defineDict["THOST_FTDC_FIS_Created"] = '1' +#生成失败 +defineDict["THOST_FTDC_FIS_Failed"] = '2' + +typedefDict["TThostFtdcFileStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFileGenStyleType是一个文件生成方式类型 +#////////////////////////////////////////////////////////////////////// +#下发 +defineDict["THOST_FTDC_FGS_FileTransmit"] = '0' +#生成 +defineDict["THOST_FTDC_FGS_FileGen"] = '1' + +typedefDict["TThostFtdcFileGenStyleType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSysOperModeType是一个系统日志操作方法类型 +#////////////////////////////////////////////////////////////////////// +#增加 +defineDict["THOST_FTDC_SoM_Add"] = '1' +#修改 +defineDict["THOST_FTDC_SoM_Update"] = '2' +#删除 +defineDict["THOST_FTDC_SoM_Delete"] = '3' +#复制 +defineDict["THOST_FTDC_SoM_Copy"] = '4' +#激活 +defineDict["THOST_FTDC_SoM_AcTive"] = '5' +#注销 +defineDict["THOST_FTDC_SoM_CanCel"] = '6' +#重置 +defineDict["THOST_FTDC_SoM_ReSet"] = '7' + +typedefDict["TThostFtdcSysOperModeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSysOperTypeType是一个系统日志操作类型类型 +#////////////////////////////////////////////////////////////////////// +#修改操作员密码 +defineDict["THOST_FTDC_SoT_UpdatePassword"] = '0' +#操作员组织架构关系 +defineDict["THOST_FTDC_SoT_UserDepartment"] = '1' +#角色管理 +defineDict["THOST_FTDC_SoT_RoleManager"] = '2' +#角色功能设置 +defineDict["THOST_FTDC_SoT_RoleFunction"] = '3' +#基础参数设置 +defineDict["THOST_FTDC_SoT_BaseParam"] = '4' +#设置操作员 +defineDict["THOST_FTDC_SoT_SetUserID"] = '5' +#用户角色设置 +defineDict["THOST_FTDC_SoT_SetUserRole"] = '6' +#用户IP限制 +defineDict["THOST_FTDC_SoT_UserIpRestriction"] = '7' +#组织架构管理 +defineDict["THOST_FTDC_SoT_DepartmentManager"] = '8' +#组织架构向查询分类复制 +defineDict["THOST_FTDC_SoT_DepartmentCopy"] = '9' +#交易编码管理 +defineDict["THOST_FTDC_SoT_Tradingcode"] = 'A' +#投资者状态维护 +defineDict["THOST_FTDC_SoT_InvestorStatus"] = 'B' +#投资者权限管理 +defineDict["THOST_FTDC_SoT_InvestorAuthority"] = 'C' +#属性设置 +defineDict["THOST_FTDC_SoT_PropertySet"] = 'D' +#重置投资者密码 +defineDict["THOST_FTDC_SoT_ReSetInvestorPasswd"] = 'E' +#投资者个性信息维护 +defineDict["THOST_FTDC_SoT_InvestorPersonalityInfo"] = 'F' + +typedefDict["TThostFtdcSysOperTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCDataQueyTypeType是一个上报数据查询类型类型 +#////////////////////////////////////////////////////////////////////// +#查询当前交易日报送的数据 +defineDict["THOST_FTDC_CSRCQ_Current"] = '0' +#查询历史报送的代理经纪公司的数据 +defineDict["THOST_FTDC_CSRCQ_History"] = '1' + +typedefDict["TThostFtdcCSRCDataQueyTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFreezeStatusType是一个休眠状态类型 +#////////////////////////////////////////////////////////////////////// +#活跃 +defineDict["THOST_FTDC_FRS_Normal"] = '1' +#休眠 +defineDict["THOST_FTDC_FRS_Freeze"] = '0' + +typedefDict["TThostFtdcFreezeStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcStandardStatusType是一个规范状态类型 +#////////////////////////////////////////////////////////////////////// +#已规范 +defineDict["THOST_FTDC_STST_Standard"] = '0' +#未规范 +defineDict["THOST_FTDC_STST_NonStandard"] = '1' + +typedefDict["TThostFtdcStandardStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCSRCFreezeStatusType是一个休眠状态类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCSRCFreezeStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRightParamTypeType是一个配置类型类型 +#////////////////////////////////////////////////////////////////////// +#休眠户 +defineDict["THOST_FTDC_RPT_Freeze"] = '1' +#激活休眠户 +defineDict["THOST_FTDC_RPT_FreezeActive"] = '2' + +typedefDict["TThostFtdcRightParamTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRightTemplateIDType是一个模板代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRightTemplateIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcRightTemplateNameType是一个模板名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcRightTemplateNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDataStatusType是一个反洗钱审核表数据状态类型 +#////////////////////////////////////////////////////////////////////// +#正常 +defineDict["THOST_FTDC_AMLDS_Normal"] = '0' +#已删除 +defineDict["THOST_FTDC_AMLDS_Deleted"] = '1' + +typedefDict["TThostFtdcDataStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAMLCheckStatusType是一个审核状态类型 +#////////////////////////////////////////////////////////////////////// +#未复核 +defineDict["THOST_FTDC_AMLCHS_Init"] = '0' +#复核中 +defineDict["THOST_FTDC_AMLCHS_Checking"] = '1' +#已复核 +defineDict["THOST_FTDC_AMLCHS_Checked"] = '2' +#拒绝上报 +defineDict["THOST_FTDC_AMLCHS_RefuseReport"] = '3' + +typedefDict["TThostFtdcAMLCheckStatusType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAmlDateTypeType是一个日期类型类型 +#////////////////////////////////////////////////////////////////////// +#检查日期 +defineDict["THOST_FTDC_AMLDT_DrawDay"] = '0' +#发生日期 +defineDict["THOST_FTDC_AMLDT_TouchDay"] = '1' + +typedefDict["TThostFtdcAmlDateTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAmlCheckLevelType是一个审核级别类型 +#////////////////////////////////////////////////////////////////////// +#零级审核 +defineDict["THOST_FTDC_AMLCL_CheckLevel0"] = '0' +#一级审核 +defineDict["THOST_FTDC_AMLCL_CheckLevel1"] = '1' +#二级审核 +defineDict["THOST_FTDC_AMLCL_CheckLevel2"] = '2' +#三级审核 +defineDict["THOST_FTDC_AMLCL_CheckLevel3"] = '3' + +typedefDict["TThostFtdcAmlCheckLevelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAmlCheckFlowType是一个反洗钱数据抽取审核流程类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAmlCheckFlowType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDataTypeType是一个数据类型类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcDataTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcExportFileTypeType是一个导出文件类型类型 +#////////////////////////////////////////////////////////////////////// +#CSV +defineDict["THOST_FTDC_EFT_CSV"] = '0' +#Excel +defineDict["THOST_FTDC_EFT_EXCEL"] = '1' +#DBF +defineDict["THOST_FTDC_EFT_DBF"] = '2' + +typedefDict["TThostFtdcExportFileTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettleManagerTypeType是一个结算配置类型类型 +#////////////////////////////////////////////////////////////////////// +#结算前准备 +defineDict["THOST_FTDC_SMT_Before"] = '1' +#结算 +defineDict["THOST_FTDC_SMT_Settlement"] = '2' +#结算后核对 +defineDict["THOST_FTDC_SMT_After"] = '3' +#结算完成 +defineDict["THOST_FTDC_SMT_Settlemented"] = '4' + +typedefDict["TThostFtdcSettleManagerTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettleManagerIDType是一个结算配置代码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSettleManagerIDType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettleManagerNameType是一个结算配置名称类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcSettleManagerNameType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettleManagerLevelType是一个结算配置等级类型 +#////////////////////////////////////////////////////////////////////// +#必要 +defineDict["THOST_FTDC_SML_Must"] = '1' +#警告 +defineDict["THOST_FTDC_SML_Alarm"] = '2' +#提示 +defineDict["THOST_FTDC_SML_Prompt"] = '3' +#不检查 +defineDict["THOST_FTDC_SML_Ignore"] = '4' + +typedefDict["TThostFtdcSettleManagerLevelType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcSettleManagerGroupType是一个模块分组类型 +#////////////////////////////////////////////////////////////////////// +#交易所核对 +defineDict["THOST_FTDC_SMG_Exhcange"] = '1' +#内部核对 +defineDict["THOST_FTDC_SMG_ASP"] = '2' +#上报数据核对 +defineDict["THOST_FTDC_SMG_CSRC"] = '3' + +typedefDict["TThostFtdcSettleManagerGroupType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcCheckResultMemoType是一个核对结果说明类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcCheckResultMemoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcFunctionUrlType是一个功能链接类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcFunctionUrlType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAuthInfoType是一个客户端认证信息类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAuthInfoType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcAuthCodeType是一个客户端认证码类型 +#////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcAuthCodeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcLimitUseTypeType是一个保值额度使用类型类型 +#////////////////////////////////////////////////////////////////////// +#可重复使用 +defineDict["THOST_FTDC_LUT_Repeatable"] = '1' +#不可重复使用 +defineDict["THOST_FTDC_LUT_Unrepeatable"] = '2' + +typedefDict["TThostFtdcLimitUseTypeType"] = "string" + +#////////////////////////////////////////////////////////////////////// +#TFtdcDataResourceType是一个数据来源类型 +#////////////////////////////////////////////////////////////////////// +#本系统 +defineDict["THOST_FTDC_DAR_Settle"] = '1' +#交易所 +defineDict["THOST_FTDC_DAR_Exchange"] = '2' +#报送数据 +defineDict["THOST_FTDC_DAR_CSRC"] = '3' + +typedefDict["TThostFtdcDataResourceType"] = "string" + + +#/////////////////////////////////////////////////////////////////////// +typedefDict["TThostFtdcTraderIDType"] = "string" + +typedefDict["TThostFtdcMemberIDType"] = "string" + +typedefDict["TThostFtdcMachineIDType"] = "int" + +typedefDict["TThostFtdcLoginBatchType"] = "int" + +typedefDict["TThostFtdcGateWayCurLinkNumType"] = "int" + +typedefDict["TThostFtdcGateWayYYBDBType"] = "string" + +typedefDict["TThostFtdcObligateType"] = "string" + +typedefDict["TThostFtdcMSGType"] = "string" + +typedefDict["TThostFtdcRateType"] = "float" + +typedefDict["TThostFtdcOpenFlagType"] = "string" + +typedefDict["TThostFtdcInstStateFlagType"] = "string" + +typedefDict["TThostFtdInstUnitType"] = "int" + +typedefDict["TThostFtdcVarietyIDType"] = "string" + +typedefDict["TThostFtdcVarietyType"] = "string" + +typedefDict["TThostFtdcMarketType"] = "string" + +typedefDict["TThostFtdcAccountType"] = "string" + +typedefDict["TThostFtdcClientIDType"] = "string" + +typedefDict["TThostFtdcTradeWayType"] = "string" + +typedefDict["TThostFtdcWeightType"] = "float" + +typedefDict["TThostFtdcMarketNameType"] = "string" + +typedefDict["TThostFtdcByteType"] = "string" + +typedefDict["TThostFtdcBsFlagType"] = "string" + +typedefDict["TThostFtdcOrderNoType"] = "string" + +typedefDict["TThostFtdcOffsetFlagType"] = "string" +typedefDict["TThostFtdcMatchNoType"] = "string" + +typedefDict["TThostFtdcSeatIDType"] = "string" +typedefDict["TThostFtdcContractIDType"] = "string" + +typedefDict["TThostFtdcProductIDType"] = "string" + +typedefDict["TThostFtdcOrderStatusType"] = "string" + +typedefDict["TThostFtdcAbbrType"] = "string" + +typedefDict["TThostFtdcMktStatusType"] = "string" + +typedefDict["TThostFtdcExchCodeType"] = "string" + +typedefDict["TThostFtdcMktChgTimeType"] = "string" + +typedefDict["TThostFtdcVolumnCheck"] = "int" + +typedefDict["TThostFtdcModifyFlagType"] = "string" + +typedefDict["TThostFtdcLoginType"] = "int" + +#/////////////////////////////////////////////////////////////////////// + + diff --git a/vn.trader/ksgoldGateway/ksgoldGateway.py b/vn.trader/ksgoldGateway/ksgoldGateway.py new file mode 100644 index 00000000..9842f126 --- /dev/null +++ b/vn.trader/ksgoldGateway/ksgoldGateway.py @@ -0,0 +1,799 @@ +# encoding: UTF-8 + +''' +vn.ksgold的gateway接入 + +金仕达黄金接口在用户登录后,并不提供之前的Order和Trade数据主动推送, +而是需要用户自行查询,因此API里做了初始化后的查询设计。 +''' + +import os +import json +import time + +from vnksgoldtd import TdApi +from ksgoldDataType import * +from vtGateway import * + +# 价格类型映射 +#priceTypeMap = {} +#priceTypeMap[PRICETYPE_LIMITPRICE] = defineDict["THOST_FTDC_OPT_LimitPrice"] +#priceTypeMap[PRICETYPE_MARKETPRICE] = defineDict["THOST_FTDC_OPT_AnyPrice"] +#priceTypeMapReverse = {v: k for k, v in priceTypeMap.items()} + +# 以下类型映射参考的是原生API里的Constant.h + +# 方向类型映射 +directionMap = {} +directionMap[DIRECTION_LONG] = '0' +directionMap[DIRECTION_SHORT] = '1' +directionMapReverse = {v: k for k, v in directionMap.items()} + +# 开平类型映射 +offsetMap = {} +offsetMap[OFFSET_OPEN] = '0' +offsetMap[OFFSET_CLOSE] = '1' +offsetMapReverse = {v:k for k,v in offsetMap.items()} + + +######################################################################## +class KsgoldGateway(VtGateway): + """金仕达黄金接口""" + + #---------------------------------------------------------------------- + def __init__(self, eventEngine, gatewayName='KSGOLD'): + """Constructor""" + super(KsgoldGateway, self).__init__(eventEngine, gatewayName) + + self.tdApi = KsgoldTdApi(self) # 黄金接口只有交易API + self.tdConnected = False # 交易API连接状态 + self.qryEnabled = False # 是否要启动循环查询 + + self.orderInited = False # 委托初始化查询 + self.tradeInited = False # 成交初始化查询 + + #---------------------------------------------------------------------- + def connect(self): + """连接""" + # 载入json文件 + fileName = self.gatewayName + '_connect.json' + fileName = os.getcwd() + '\\ksgoldGateway\\' + fileName + + try: + f = file(fileName) + except IOError: + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'读取连接配置出错,请检查' + self.onLog(log) + return + + # 解析json文件 + setting = json.load(f) + try: + accountID = str(setting['accountID']) + password = str(setting['password']) + address = str(setting['address']) + except KeyError: + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'连接配置缺少字段,请检查' + self.onLog(log) + return + + # 创建行情和交易接口对象 + self.tdApi.connect(accountID, password, address) + + # 初始化并启动查询 + self.initQuery() + + #---------------------------------------------------------------------- + def subscribe(self, subscribeReq): + """订阅行情""" + self.tdApi.subscribe(subscribeReq) + + #---------------------------------------------------------------------- + def sendOrder(self, orderReq): + """发单""" + return self.tdApi.sendOrder(orderReq) + + #---------------------------------------------------------------------- + def cancelOrder(self, cancelOrderReq): + """撤单""" + self.tdApi.cancelOrder(cancelOrderReq) + + #---------------------------------------------------------------------- + def getAccount(self): + """查询账户资金""" + self.tdApi.getAccount() + + #---------------------------------------------------------------------- + def getPosition(self): + """查询持仓""" + self.tdApi.getPosition() + + #---------------------------------------------------------------------- + def close(self): + """关闭""" + if self.mdConnected: + self.mdApi.close() + if self.tdConnected: + self.tdApi.close() + + #---------------------------------------------------------------------- + def initQuery(self): + """初始化连续查询""" + # 需要循环的查询函数列表 + self.qryFunctionList = [self.getAccount, self.getPosition] + + self.qryCount = 0 # 查询触发倒计时 + self.qryTrigger = 2 # 查询触发点 + self.qryNextFunction = 0 # 上次运行的查询函数索引 + + #---------------------------------------------------------------------- + def query(self, event): + """注册到事件处理引擎上的查询函数""" + self.qryCount += 1 + + if self.qryCount > self.qryTrigger: + # 清空倒计时 + self.qryCount = 0 + + # 如果尚未完成委托查询则先查询委托 + if not self.orderInited: + self.tdApi.getOrder() + # 然后如果未完成成交查询则再查询成交 + elif not self.tradeInited: + self.tdApi.getTrade() + else: + # 执行查询函数 + function = self.qryFunctionList[self.qryNextFunction] + function() + + # 计算下次查询函数的索引,如果超过了列表长度,则重新设为0 + self.qryNextFunction += 1 + if self.qryNextFunction == len(self.qryFunctionList): + self.qryNextFunction = 0 + + #---------------------------------------------------------------------- + def startQuery(self): + """启动连续查询""" + if self.qryEnabled: + self.eventEngine.register(EVENT_TIMER, self.query) + + #---------------------------------------------------------------------- + def setQryEnabled(self, qryEnabled): + """设置是否要启动循环查询""" + self.qryEnabled = qryEnabled + + +######################################################################## +class KsgoldTdApi(TdApi): + """金仕达黄金交易API实现""" + + #---------------------------------------------------------------------- + def __init__(self, gateway): + """API对象的初始化函数""" + super(KsgoldTdApi, self).__init__() + + self.gateway = gateway # gateway对象 + self.gatewayName = gateway.gatewayName # gateway对象名称 + + self.reqID = EMPTY_INT # 操作请求编号 + self.orderRef = EMPTY_INT # 订单编号 + + self.connectionStatus = False # 连接状态 + self.loginStatus = False # 登录状态 + + self.accountID = EMPTY_STRING # 账号 + self.password = EMPTY_STRING # 密码 + self.memberID = EMPTY_STRING # 会员代码(应该是银行) + self.address = EMPTY_STRING # 服务器地址 + + self.seatID = EMPTY_STRING; # 席位号 + self.tradeCode = EMPTY_STRING # 交易编码 + + self.subscribedSymbols = set() # 已订阅合约代码 + + self.orderDict = {} # 委托字典,用于缓存委托对象,key为整数 + + # 循环登录相关 + self.loginThread = None + + #---------------------------------------------------------------------- + def onFrontConnected(self): + """服务器连接""" + self.connectionStatus = True + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'交易服务器连接成功' + self.gateway.onLog(log) + + self.login() + + #---------------------------------------------------------------------- + def onFrontDisconnected(self, n): + """服务器断开""" + self.connectionStatus = False + self.loginStatus = False + self.gateway.tdConnected = False + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'交易服务器连接断开' + self.gateway.onLog(log) + + #---------------------------------------------------------------------- + def onRspUserLogin(self, data, error, n, last): + """登陆回报""" + # 如果登录成功,推送日志信息 + if error['ErrorID'] == 0: + self.seatID = str(data['SeatNo']) + self.tradeCode = str(data['tradeCode']) + + self.loginStatus = True + self.gateway.tdConnected = True + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'交易服务器登录完成' + self.gateway.onLog(log) + + # 重新订阅之前订阅的合约 + for subscribeReq in self.subscribedSymbols: + self.subscribe(subscribeReq) + + # 查询合约信息 + self.reqID += 1 + self.reqQryInstrument({}, self.reqID) + + # 启动查询 + self.gateway.startQuery() + + # 否则,推送错误信息 + else: + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = error['ErrorID'] + err.errorMsg = error['ErrorMsg'].decode('gbk') + self.gateway.onError(err) + + if error['ErrorID'] == -8: + self.login() + + #---------------------------------------------------------------------- + def onRspUserLogout(self, data, error, n, last): + """登出回报""" + # 如果登出成功,推送日志信息 + if error['ErrorID'] == 0: + self.loginStatus = False + self.gateway.tdConnected = False + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'交易服务器登出完成' + self.gateway.onLog(log) + + # 否则,推送错误信息 + else: + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = error['ErrorID'] + err.errorMsg = error['ErrorMsg'].decode('gbk') + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def onNtyMktStatus(self, data, error, n, last): + """更新市场状态""" + pass + + #---------------------------------------------------------------------- + def onRspOrderInsert(self, data, error, n, last): + """发单错误(柜台)""" + if error['ErrorID']: + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = error['ErrorID'] + err.errorMsg = error['ErrorMsg'].decode('gbk') + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def onRspOrderAction(self, data, error, n, last): + """撤单错误(柜台)""" + if error['ErrorID']: + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = error['ErrorID'] + err.errorMsg = error['ErrorMsg'].decode('gbk') + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def onRspQryOrder(self, data, error, n, last): + """""" + if not self.gateway.orderInited: + self.gateway.orderInited = True + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'委托查询完成' + self.gateway.onLog(log) + + # 更新最大报单编号 + newref = data['localOrderNo'] + self.orderRef = max(self.orderRef, int(newref)) + + # 创建报单数据对象 + order = VtOrderData() + order.gatewayName = self.gatewayName + + # 保存代码和报单号 + order.symbol = data['instID'] + order.exchange = EXCHANGE_SGE + order.vtSymbol = order.symbol + + order.orderID = data['localOrderNo'] + + # 方向 + if data['buyOrSell'] == '0': + order.direction = DIRECTION_LONG + elif data['buyOrSell'] == '1': + order.direction = DIRECTION_SHORT + else: + order.direction = DIRECTION_UNKNOWN + + # 开平 + if data['offsetFlag'] == '0': + order.offset = OFFSET_OPEN + elif data['offsetFlag'] == '1': + order.offset = OFFSET_CLOSE + else: + order.offset = OFFSET_UNKNOWN + + # 状态 + if data['status'] == '5': + order.status = STATUS_ALLTRADED + elif data['status'] == '6': + order.status = STATUS_PARTTRADED + elif data['status'] == '3': + order.status = STATUS_NOTTRADED + elif data['status'] == '4' or data['status'] == '7': # 全部撤销和部成部撤 + order.status = STATUS_CANCELLED + else: + order.status = STATUS_UNKNOWN + + # CTP的报单号一致性维护需要基于frontID, sessionID, orderID三个字段 + # 但在本接口设计中,已经考虑了CTP的OrderRef的自增性,避免重复 + # 唯一可能出现OrderRef重复的情况是多处登录并在非常接近的时间内(几乎同时发单) + # 考虑到VtTrader的应用场景,认为以上情况不会构成问题 + order.vtOrderID = '.'.join([self.gatewayName, order.orderID]) + + # 价格、报单量等数值 + order.price = data['price'] + order.totalVolume = data['amount'] + order.tradedVolume = data['matchQty'] + order.orderTime = data['entrustTime'] + order.cancelTime = data['cancelTime'] + + # 推送 + self.gateway.onOrder(order) + + #---------------------------------------------------------------------- + def onRspQryTrade(self, data, error, n, last): + """""" + if not self.gateway.tradeInited: + self.gateway.tradeInited = True + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'成交查询完成' + self.gateway.onLog(log) + + # 创建报单数据对象 + trade = VtTradeData() + trade.gatewayName = self.gatewayName + + # 保存代码和报单号 + trade.symbol = data['instID'] + trade.exchange = EXCHANGE_SGE + trade.vtSymbol = trade.symbol + + trade.tradeID = data['matchNo'] + trade.vtTradeID = '.'.join([self.gatewayName, trade.tradeID]) + + trade.orderID = data['localOrderNo'] + trade.vtOrderID = '.'.join([self.gatewayName, trade.orderID]) + + # 方向 + trade.direction = directionMapReverse.get(data['buyOrSell'], '') + + # 开平 + trade.offset = offsetMapReverse.get(data['offSetFlag'], '') + + # 价格、报单量等数值 + trade.price = data['price'] + trade.volume = data['volume'] + trade.tradeTime = data['matchTime'] + + # 推送 + self.gateway.onTrade(trade) + + #---------------------------------------------------------------------- + def onRspQryInvestorPosition(self, data, error, n, last): + """持仓查询回报""" + # 过滤一些空的数据 + if data['instID']: + # 黄金API推送的持仓数据把多空仓放在了一条中,需要分离 + longPos = VtPositionData() + longPos.gatewayName = self.gatewayName + longPos.symbol = data['instID'] + longPos.vtSymbol = longPos.symbol + longPos.direction = DIRECTION_LONG + longPos.frozen = data['longPosiFrozen'] + longPos.position = data['longPosiVol'] + longPos.ydPosition = data['lastLong'] + longPos.price = data['longPosiAvgPrice'] + longPos.vtPositionName = '.'.join([longPos.vtSymbol, longPos.direction]) + self.gateway.onPosition(longPos) + + shortPos = VtPositionData() + shortPos.gatewayName = self.gatewayName + shortPos.symbol = data['instID'] + shortPos.vtSymbol = shortPos.symbol + shortPos.direction = DIRECTION_SHORT + shortPos.frozen = data['shortPosiFrozen'] + shortPos.position = data['shortPosiVol'] + shortPos.ydPosition = data['lastShort'] + shortPos.price = data['shortPosiAvgPrice'] + shortPos.vtPositionName = '.'.join([shortPos.vtSymbol, shortPos.direction]) + self.gateway.onPosition(shortPos) + + #---------------------------------------------------------------------- + def onRspQryTradingAccount(self, data, error, n, last): + """资金账户查询回报""" + account = VtAccountData() + account.gatewayName = self.gatewayName + + # 账户代码 + account.accountID = 'sge_account' # API不提供该字段,自行定义 + account.vtAccountID = '.'.join([self.gatewayName, account.accountID]) + + # 数值相关 + account.available = data['availCap'] + account.commission = data['totalFee'] + account.margin = data['posiMargin'] + + # 推送 + self.gateway.onAccount(account) + + #---------------------------------------------------------------------- + def onRspQryInstrument(self, data, error, n, last): + """合约查询回报""" + contract = VtContractData() + contract.gatewayName = self.gatewayName + + contract.symbol = data['instID'] + contract.exchange = EXCHANGE_SGE # 交易所只有金交所 + + # 合约类型分为现货、延期、未知 + if data['marketID'] == '00': + contract.productClass = PRODUCT_SPOT + elif data['marketID'] == '10': + contract.productClass = PRODUCT_DEFER + else: + contract.productclass = PRODUCT_UNKNOWN + + contract.vtSymbol = contract.symbol + contract.name = data['name'].decode('GBK') + + # 合约数值 + contract.size = data['unit'] + contract.priceTick = data['tick'] + + # 推送,考虑到只对T+D类带杠杆的产品感兴趣,API里默认过滤了现货 + if data['marketID'] == '10': + self.gateway.onContract(contract) + + if last: + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'交易合约信息获取完成' + self.gateway.onLog(log) + + #---------------------------------------------------------------------- + def onRtnDepthMarketData(self, data): + """行情推送""" + tick = VtTickData() + tick.gatewayName = self.gatewayName + + tick.symbol = data['InstID'] + tick.vtSymbol = tick.symbol + + tick.lastPrice = data['Last'] + tick.volume = data['Volume'] + tick.openInterest = data['OpenInt'] + tick.time = data['QuoteTime'] + tick.date = data['QuoteDate'] + + tick.openPrice = data['Open'] + tick.highPrice = data['High'] + tick.lowPrice = data['Low'] + tick.preClosePrice = data['PreClose'] + + tick.upperLimit = data['highLimit'] + tick.lowerLimit = data['lowLimit'] + + # CTP只有一档行情 + tick.bidPrice1 = data['Bid1'] + tick.bidPrice2 = data['Bid2'] + tick.bidPrice3 = data['Bid3'] + tick.bidPrice4 = data['Bid4'] + tick.bidPrice5 = data['Bid5'] + + tick.askPrice1 = data['Ask1'] + tick.askPrice2 = data['Ask2'] + tick.askPrice3 = data['Ask3'] + tick.askPrice4 = data['Ask4'] + tick.askPrice5 = data['Ask5'] + + tick.bidVolume1 = data['BidLot1'] + tick.bidVolume2 = data['BidLot2'] + tick.bidVolume3 = data['BidLot3'] + tick.bidVolume4 = data['BidLot4'] + tick.bidVolume5 = data['BidLot5'] + + tick.askVolume1 = data['AskLot1'] + tick.askVolume2 = data['AskLot2'] + tick.askVolume3 = data['AskLot3'] + tick.askVolume4 = data['AskLot4'] + tick.askVolume5 = data['AskLot5'] + + self.gateway.onTick(tick) + + #---------------------------------------------------------------------- + def onRtnOrder(self, data): + """报单回报""" + # 更新最大报单编号 + newref = data['localOrderNo'] + self.orderRef = max(self.orderRef, int(newref)) + + # 创建报单数据对象 + order = self.orderDict.get(int(newref), VtOrderData()) + order.gatewayName = self.gatewayName + order.exchange = EXCHANGE_SGE + order.orderID = data['localOrderNo'] + + # 状态 + if data['status'] == '5': + order.status = STATUS_ALLTRADED + elif data['status'] == '6': + order.status = STATUS_PARTTRADED + elif data['status'] == '3': + order.status = STATUS_NOTTRADED + elif data['status'] == '4' or data['status'] == '7': # 全部撤销和部成部撤 + order.status = STATUS_CANCELLED + else: + order.status = STATUS_UNKNOWN + + # 推送 + self.gateway.onOrder(order) + + #---------------------------------------------------------------------- + def onForceLogout(self, data): + """强制登出推送""" + self.gateway.onLog(u'被强制登出') + + #---------------------------------------------------------------------- + def onRtnTrade(self, data): + """成交回报""" + # 创建报单数据对象 + trade = VtTradeData() + trade.gatewayName = self.gatewayName + + # 保存代码和报单号 + trade.symbol = data['instID'] + trade.exchange = EXCHANGE_SGE + trade.vtSymbol = trade.symbol + + trade.tradeID = data['matchNo'] + trade.vtTradeID = '.'.join([self.gatewayName, trade.tradeID]) + + trade.orderID = data['localOrderNo'] + trade.vtOrderID = '.'.join([self.gatewayName, trade.orderID]) + + # 方向 + trade.direction = directionMapReverse.get(data['buyOrSell'], '') + + # 开平 + trade.offset = offsetMapReverse.get(data['offSetFlag'], '') + + # 价格、报单量等数值 + trade.price = data['price'] + trade.volume = data['volume'] + trade.tradeTime = data['matchTime'] + + # 推送 + self.gateway.onTrade(trade) + + # 计算还原Order状态,并推送 + order = self.orderDict.get(int(trade.orderID), None) + if order: + order.tradedVolume = order.tradedVolume + trade.volume + + if order.tradedVolume == order.totalVolume: + order.status = STATUS_ALLTRADED + else: + order.status = STATUS_PARTTRADED + + self.gateway.onOrder(order) + + #---------------------------------------------------------------------- + def onErrRtnOrderInsert(self, data, error): + """发单错误回报(交易所)""" + if error['ErrorID']: + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = error['ErrorID'] + err.errorMsg = error['ErrorMsg'].decode('gbk') + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def onErrRtnOrderAction(self, data, error): + """撤单错误回报(交易所)""" + if error['ErrorID']: + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = error['ErrorID'] + err.errorMsg = error['ErrorMsg'].decode('gbk') + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def onRspQryClientStorage(self, data, error, n, last): + """""" + pass + + #---------------------------------------------------------------------- + def onRspSubMarketData(self, data, error, n, last): + """""" + pass + + #---------------------------------------------------------------------- + def connect(self, accountID, password, address): + """初始化连接""" + self.accountID = accountID + self.password = password + self.address = address + + # 如果尚未建立服务器连接,则进行连接 + if not self.connectionStatus: + self.createGoldTraderApi() + + # 注册服务器地址 + self.registerFront(self.address) + + # 初始化连接,成功会调用onFrontConnected + self.init(False) + self.connectionStatus = True + + # 金仕达接口第一次连接不会调用onFrontConnected(只有断线重连才会),直接登录 + self.login() + + # 若已经连接但尚未登录,则进行登录 + else: + if not self.loginStatus: + self.login() + + #---------------------------------------------------------------------- + def login(self): + """连接服务器""" + # 如果填入了用户名密码等,则登录 + if self.accountID and self.password: + req = {} + req['accountID'] = self.accountID + req['password'] = self.password + req['loginType'] = 1 + self.reqID += 1 + self.reqUserLogin(req, self.reqID) + + #---------------------------------------------------------------------- + def getAccount(self): + """查询账户""" + self.reqID += 1 + self.reqQryTradingAccount({}, self.reqID) + + #---------------------------------------------------------------------- + def getPosition(self): + """查询持仓""" + self.reqID += 1 + self.reqQryInvestorPosition({}, self.reqID) + + #---------------------------------------------------------------------- + def getTrade(self): + """查询成交""" + self.reqID += 1 + self.reqQryTrade({}, self.reqID) + + #---------------------------------------------------------------------- + def getOrder(self): + """查询委托""" + self.reqID += 1 + self.reqQryOrder({}, self.reqID) + + #---------------------------------------------------------------------- + def sendOrder(self, orderReq): + """发单""" + self.reqID += 1 + self.orderRef += 1 + + req = {} + + req['instID'] = orderReq.symbol + req['marketID'] = '10' + + req['price'] = orderReq.price + req['amount'] = orderReq.volume + + # 下面如果由于传入的类型本接口不支持,则会返回空字符串 + try: + req['buyOrSell'] = directionMap[orderReq.direction] + req['offsetFlag'] = offsetMap[orderReq.offset] + except KeyError: + return '' + + strOrderID = generateStrLocalID(self.orderRef) + req['LocalOrderNo'] = strOrderID + req['seatID'] = self.seatID + req['tradeCode'] = self.tradeCode + + self.reqOrderInsert(req, self.reqID) + + # 返回订单号(字符串),便于某些算法进行动态管理 + vtOrderID = '.'.join([self.gatewayName, strOrderID]) + + # 保存请求到本地,用于在收到回报时查询 + # 金仕达黄金API的onRtnOrder只推送很有限的几个数据,因此整个数据需要自己还原 + order = VtOrderData() + order.gatewayName = self.gatewayName + order.symbol = orderReq.symbol + order.vtSymbol = orderReq.symbol + order.exchange = EXCHANGE_SGE + order.orderID = strOrderID + order.vtOrderID = strOrderID + order.direction = orderReq.direction + order.offset = orderReq.offset + order.price = orderReq.price + order.totalVolume = orderReq.volume + order.orderTime = time.strftime('%H:%M:%S') # 保存委托时间 + self.orderDict[self.orderRef] = order + + return vtOrderID + + #---------------------------------------------------------------------- + def cancelOrder(self, cancelOrderReq): + """撤单""" + self.reqID += 1 + + req = {} + req['localOrderNo'] = cancelOrderReq.orderID + req['marketID'] = '10' # API默认只允许交易T+D延期 + + self.reqOrderAction(req, self.reqID) + + #---------------------------------------------------------------------- + def subscribe(self, subscribeReq): + """订阅行情""" + # 黄金API的订阅传入的参数不是具体交易合约代码,而是类型代码 + # 考虑到只希望交易T+D,这里直接传入'10' + self.subscribeMarketData('10') + + #---------------------------------------------------------------------- + def close(self): + """关闭""" + self.exit() + + +#---------------------------------------------------------------------- +def generateStrLocalID(localID): + """把整数的本地委托号转化为字符串""" + return str(localID).rjust(12, '0') + diff --git a/vn.trader/ksgoldGateway/sTrader.ini b/vn.trader/ksgoldGateway/sTrader.ini new file mode 100644 index 00000000..75468d0b --- /dev/null +++ b/vn.trader/ksgoldGateway/sTrader.ini @@ -0,0 +1,24 @@ +[MemberInfo] +//Ա +MemberID=0001 +//ʱ +TimeOut = 15000 +//߿ͻѡĽ +SelectServer=1 +//Ƿʾ¼صϢ(0-ʾ 1-ʾ) +bShowLoginInfo=1 +//־(0-¼־ 1-¼־) +KLG_LOG=0 +//ʾ +Caption =SunGard KingStar ƽ׼׿ͻ +//˵rootڵʾ +RootMenu=˴ƽ + +// +[GateWay] +GateWayName= +//IPַ, ҲΪ +IPAddress=124.74.239.38 + +//˿,˿Ҫ10000 +Port=18961 \ No newline at end of file diff --git a/vn.trader/ksgoldGateway/vnksgoldtd.pyd b/vn.trader/ksgoldGateway/vnksgoldtd.pyd new file mode 100644 index 00000000..67160dbd Binary files /dev/null and b/vn.trader/ksgoldGateway/vnksgoldtd.pyd differ diff --git a/vn.trader/ksgoldGateway/xSafeEngine.dll b/vn.trader/ksgoldGateway/xSafeEngine.dll new file mode 100644 index 00000000..592a4c3b Binary files /dev/null and b/vn.trader/ksgoldGateway/xSafeEngine.dll differ diff --git a/vn.trader/KSOTP_connect.json b/vn.trader/ksotpGateway/KSOTP_connect.json similarity index 100% rename from vn.trader/KSOTP_connect.json rename to vn.trader/ksotpGateway/KSOTP_connect.json diff --git a/vn.trader/SSPXEncode.dll b/vn.trader/ksotpGateway/SSPXEncode.dll similarity index 100% rename from vn.trader/SSPXEncode.dll rename to vn.trader/ksotpGateway/SSPXEncode.dll diff --git a/vn.trader/ksotpGateway/__init__.py b/vn.trader/ksotpGateway/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vn.trader/ksPortalAPI.dll b/vn.trader/ksotpGateway/ksPortalAPI.dll similarity index 100% rename from vn.trader/ksPortalAPI.dll rename to vn.trader/ksotpGateway/ksPortalAPI.dll diff --git a/vn.trader/ksotpDataType.py b/vn.trader/ksotpGateway/ksotpDataType.py similarity index 100% rename from vn.trader/ksotpDataType.py rename to vn.trader/ksotpGateway/ksotpDataType.py diff --git a/vn.trader/ksotpGateway.py b/vn.trader/ksotpGateway/ksotpGateway.py similarity index 99% rename from vn.trader/ksotpGateway.py rename to vn.trader/ksotpGateway/ksotpGateway.py index cb617416..bfd5da2c 100644 --- a/vn.trader/ksotpGateway.py +++ b/vn.trader/ksotpGateway/ksotpGateway.py @@ -74,6 +74,8 @@ class KsotpGateway(VtGateway): """连接""" # 载入json文件 fileName = self.gatewayName + '_connect.json' + fileName = os.getcwd() + '\\ksotpGateway\\' + fileName + try: f = file(fileName) except IOError: diff --git a/vn.trader/ksotpmarketdataapi.dll b/vn.trader/ksotpGateway/ksotpmarketdataapi.dll similarity index 100% rename from vn.trader/ksotpmarketdataapi.dll rename to vn.trader/ksotpGateway/ksotpmarketdataapi.dll diff --git a/vn.trader/ksotptraderapi.dll b/vn.trader/ksotpGateway/ksotptraderapi.dll similarity index 100% rename from vn.trader/ksotptraderapi.dll rename to vn.trader/ksotpGateway/ksotptraderapi.dll diff --git a/vn.trader/lkcdll.dll b/vn.trader/ksotpGateway/lkcdll.dll similarity index 100% rename from vn.trader/lkcdll.dll rename to vn.trader/ksotpGateway/lkcdll.dll diff --git a/vn.trader/vnksotpmd.pyd b/vn.trader/ksotpGateway/vnksotpmd.pyd similarity index 100% rename from vn.trader/vnksotpmd.pyd rename to vn.trader/ksotpGateway/vnksotpmd.pyd diff --git a/vn.trader/vnksotptd.pyd b/vn.trader/ksotpGateway/vnksotptd.pyd similarity index 100% rename from vn.trader/vnksotptd.pyd rename to vn.trader/ksotpGateway/vnksotptd.pyd diff --git a/vn.trader/LTS_connect.json b/vn.trader/ltsGateway/LTS_connect.json similarity index 100% rename from vn.trader/LTS_connect.json rename to vn.trader/ltsGateway/LTS_connect.json diff --git a/vn.trader/ltsGateway/__init__.py b/vn.trader/ltsGateway/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vn.trader/ltsDataType.py b/vn.trader/ltsGateway/ltsDataType.py similarity index 100% rename from vn.trader/ltsDataType.py rename to vn.trader/ltsGateway/ltsDataType.py diff --git a/vn.trader/ltsGateway.py b/vn.trader/ltsGateway/ltsGateway.py similarity index 99% rename from vn.trader/ltsGateway.py rename to vn.trader/ltsGateway/ltsGateway.py index cf4730d2..32d79469 100644 --- a/vn.trader/ltsGateway.py +++ b/vn.trader/ltsGateway/ltsGateway.py @@ -75,6 +75,8 @@ class LtsGateway(VtGateway): """连接""" # 载入json 文件 fileName = self.gatewayName + '_connect.json' + fileName = os.getcwd() + '\\ltsGateway\\' + fileName + try: f = file(fileName) except IOError: diff --git a/vn.trader/securitymduserapi.dll b/vn.trader/ltsGateway/securitymduserapi.dll similarity index 100% rename from vn.trader/securitymduserapi.dll rename to vn.trader/ltsGateway/securitymduserapi.dll diff --git a/vn.trader/securityqueryapi.dll b/vn.trader/ltsGateway/securityqueryapi.dll similarity index 100% rename from vn.trader/securityqueryapi.dll rename to vn.trader/ltsGateway/securityqueryapi.dll diff --git a/vn.trader/securitytraderapi.dll b/vn.trader/ltsGateway/securitytraderapi.dll similarity index 100% rename from vn.trader/securitytraderapi.dll rename to vn.trader/ltsGateway/securitytraderapi.dll diff --git a/vn.trader/vnltsmd.pyd b/vn.trader/ltsGateway/vnltsmd.pyd similarity index 100% rename from vn.trader/vnltsmd.pyd rename to vn.trader/ltsGateway/vnltsmd.pyd diff --git a/vn.trader/vnltsqry.pyd b/vn.trader/ltsGateway/vnltsqry.pyd similarity index 100% rename from vn.trader/vnltsqry.pyd rename to vn.trader/ltsGateway/vnltsqry.pyd diff --git a/vn.trader/vnltstd.pyd b/vn.trader/ltsGateway/vnltstd.pyd similarity index 100% rename from vn.trader/vnltstd.pyd rename to vn.trader/ltsGateway/vnltstd.pyd diff --git a/vn.trader/uiMainWindow.py b/vn.trader/uiMainWindow.py index 1e427b43..ad5be586 100644 --- a/vn.trader/uiMainWindow.py +++ b/vn.trader/uiMainWindow.py @@ -83,6 +83,9 @@ class MainWindow(QtGui.QMainWindow): connectFemasAction = QtGui.QAction(u'连接飞马', self) connectFemasAction.triggered.connect(self.connectFemas) + connectKsgoldAction = QtGui.QAction(u'连接金仕达黄金', self) + connectKsgoldAction.triggered.connect(self.connectKsgold) + connectWindAction = QtGui.QAction(u'连接Wind', self) connectWindAction.triggered.connect(self.connectWind) @@ -93,7 +96,7 @@ class MainWindow(QtGui.QMainWindow): connectDbAction.triggered.connect(self.mainEngine.dbConnect) testAction = QtGui.QAction(u'测试', self) - testAction.triggered.connect(self.testSubscribe) + testAction.triggered.connect(self.test) exitAction = QtGui.QAction(u'退出', self) exitAction.triggered.connect(self.close) @@ -113,14 +116,15 @@ class MainWindow(QtGui.QMainWindow): sysMenu = menubar.addMenu(u'系统') sysMenu.addAction(connectCtpAction) sysMenu.addAction(connectLtsAction) - sysMenu.addAction(connectKsotpAction) sysMenu.addAction(connectFemasAction) - sysMenu.addAction(connectIbAction) + sysMenu.addAction(connectKsotpAction) + sysMenu.addAction(connectKsgoldAction) + sysMenu.addAction(connectIbAction) + sysMenu.addSeparator() sysMenu.addAction(connectWindAction) sysMenu.addSeparator() sysMenu.addAction(connectDbAction) sysMenu.addSeparator() - sysMenu.addAction(testAction) sysMenu.addAction(exitAction) functionMenu = menubar.addMenu(u'功能') @@ -132,7 +136,8 @@ class MainWindow(QtGui.QMainWindow): # 帮助 helpMenu = menubar.addMenu(u'帮助') - helpMenu.addAction(aboutAction) + helpMenu.addAction(aboutAction) + helpMenu.addAction(testAction) #---------------------------------------------------------------------- def initStatusBar(self): @@ -182,6 +187,11 @@ class MainWindow(QtGui.QMainWindow): def connectFemas(self): """连接飞马接口""" self.mainEngine.connect('FEMAS') + + #---------------------------------------------------------------------- + def connectKsgold(self): + """连接金仕达黄金接口""" + self.mainEngine.connect('KSGOLD') #---------------------------------------------------------------------- def connectWind(self): @@ -194,31 +204,13 @@ class MainWindow(QtGui.QMainWindow): self.mainEngine.connect('IB') #---------------------------------------------------------------------- - def testSubscribe(self): - """测试订阅""" - api = self.mainEngine.gatewayDict['LTS'].qryApi + def test(self): + """测试按钮用的函数""" + api = self.mainEngine.gatewayDict['KSGOLD'].tdApi api.reqID += 1 - api.reqQryOFInstrument({}, api.reqID) - - #req = VtSubscribeReq() - #req.symbol = 'GOOG' - #req.productClass = PRODUCT_EQUITY - #req.exchange = EXCHANGE_SMART - #req.currency = CURRENCY_USD - #self.mainEngine.subscribe(req, 'IB') - - #req.symbol = 'AAPL' - #self.mainEngine.subscribe(req, 'IB') - - #req.symbol = 'YHOO' - #self.mainEngine.subscribe(req, 'IB') - - #req.symbol = 'MSFT' - #self.mainEngine.subscribe(req, 'IB') - - #req.symbol = 'GE' - #self.mainEngine.subscribe(req, 'IB') - + api.reqQryOrder({}, api.reqID) + #api.reqQryTrade({}, api.reqID) + #---------------------------------------------------------------------- def openAbout(self): """打开关于""" diff --git a/vn.trader/vtConstant.py b/vn.trader/vtConstant.py index d9b13913..db6cb70f 100644 --- a/vn.trader/vtConstant.py +++ b/vn.trader/vtConstant.py @@ -37,6 +37,8 @@ PRODUCT_INDEX = u'指数' PRODUCT_COMBINATION = u'组合' PRODUCT_FOREX = u'外汇' PRODUCT_UNKNOWN = u'未知' +PRODUCT_SPOT = u'现货' +PRODUCT_DEFER = u'延期' # 价格类型常量 PRICETYPE_LIMITPRICE = u'限价' @@ -55,7 +57,7 @@ EXCHANGE_CFFEX = 'CFFEX' # 中金所 EXCHANGE_SHFE = 'SHFE' # 上期所 EXCHANGE_CZCE = 'CZCE' # 郑商所 EXCHANGE_DCE = 'DCE' # 大商所 - +EXCHANGE_SGE = 'SGE' # 上金所 EXCHANGE_UNKNOWN = 'UNKNOWN'# 未知交易所 EXCHANGE_NONE = '' # 空交易所 diff --git a/vn.trader/vtEngine.py b/vn.trader/vtEngine.py index 036c31fe..60376dd0 100644 --- a/vn.trader/vtEngine.py +++ b/vn.trader/vtEngine.py @@ -32,41 +32,48 @@ class MainEngine(object): # 创建我们想要接入的接口对象 try: - from ctpGateway import CtpGateway + from ctpGateway.ctpGateway import CtpGateway self.addGateway(CtpGateway, 'CTP') self.gatewayDict['CTP'].setQryEnabled(True) except Exception, e: print e try: - from ltsGateway import LtsGateway + from ltsGateway.ltsGateway import LtsGateway self.addGateway(LtsGateway, 'LTS') self.gatewayDict['LTS'].setQryEnabled(True) except Exception, e: print e try: - from ksotpGateway import KsotpGateway + from ksotpGateway.ksotpGateway import KsotpGateway self.addGateway(KsotpGateway, 'KSOTP') self.gatewayDict['KSOTP'].setQryEnabled(True) except Exception, e: print e try: - from femasGateway import FemasGateway + from femasGateway.femasGateway import FemasGateway self.addGateway(FemasGateway, 'FEMAS') self.gatewayDict['FEMAS'].setQryEnabled(True) except Exception, e: print e try: - from windGateway import WindGateway + from ksgoldGateway.ksgoldGateway import KsgoldGateway + self.addGateway(KsgoldGateway, 'KSGOLD') + self.gatewayDict['KSGOLD'].setQryEnabled(True) + except Exception, e: + print e + + try: + from windGateway.windGateway import WindGateway self.addGateway(WindGateway, 'Wind') except Exception, e: print e try: - from ibGateway import IbGateway + from ibGateway.ibGateway import IbGateway self.addGateway(IbGateway, 'IB') except Exception, e: print e diff --git a/vn.trader/windGateway/__init__.py b/vn.trader/windGateway/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vn.trader/windGateway.py b/vn.trader/windGateway/windGateway.py similarity index 100% rename from vn.trader/windGateway.py rename to vn.trader/windGateway/windGateway.py