예제 #1
0
        /// <summary>
        /// 创建TapQuoteAPI的接口对象。创建整个行情API的接口
        /// </summary>
        /// <param name="appInfo">应用程序相关信息。</param>
        /// <param name="iResult">创建接口的错误码。</param>
        /// <returns>NULL	创建失败。!NULL	实现了ITapQuoteAPI接口的对象</returns>
        public static ITapQuoteAPI CreateTapQuoteAPI(TapAPIApplicationInfo appInfo, out int iResult)
        {
            global::System.IntPtr cPtr = QTapQuoteApiPINVOKE.CreateTapQuoteAPI(TapAPIApplicationInfo.getCPtr(appInfo), out iResult);
            ITapQuoteAPI          ret  = (cPtr == global::System.IntPtr.Zero) ? null : new ITapQuoteAPI(cPtr, false);

            if (QTapQuoteApiPINVOKE.SWIGPendingException.Pending)
            {
                throw QTapQuoteApiPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
예제 #2
0
        public IMarketApi CreateMarketApi()
        {
            var appInfo = new TapAPIApplicationInfo()
            {
                AuthCode            = _authCode,
                KeyOperationLogPath = _keyOperationLogPath
            };
            int result = 0;

            _api = TapQuoteCppWrapper.CreateTapQuoteAPI(appInfo, ref result);
            return(new EsunnyMarketApi(_api));
        }
예제 #3
0
        public int InitQuoteAPI()
        {
            TapAPIApplicationInfo appInfo = new TapAPIApplicationInfo();

            appInfo.AuthCode = Config.Cert.AuthCode;
            int iResult = 0;

            m_api = TapQuote.CreateTapQuoteAPI(appInfo, out iResult);
            if (m_api != null)
            {
                m_api.SetAPINotify(QuoteNotify);
            }
            return(iResult);
        }
예제 #4
0
        public int InitQuoteAPI()
        {
            TapAPIApplicationInfo appInfo = new TapAPIApplicationInfo();

            appInfo.AuthCode            = "B112F916FE7D27BCE7B97EB620206457946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC5211AF9FEE541DDE9D6F622F72E25D5DEF7F47AA93A738EF5A51B81D8526AB6A9D19E65B41F59D6A946CED32E26C1EACCAF8D4C61E28E2B1ABD9B8F170E14F8847D3EA0BF4E191F5DCB1B791E63DC196D1576DEAF5EC563CA3E560313C0C3411B45076795F550EB050A62C4F74D5892D2D14892E812723FAC858DEBD8D4AF9410729FB849D5D8D6EA48A1B8DC67E037381A279CE9426070929D5DA085659772E24A6F5EA52CF92A4D403F9E46083F27B19A88AD99812DADA44100324759F9FD1964EBD4F2F0FB50B51CD31C0B02BB437";
            appInfo.KeyOperationLogPath = @"LogEsQuote";
            int iResult = 0;

            m_api = QTapQuoteApi.CreateTapQuoteAPI(appInfo, out iResult);
            if (m_api != null)
            {
                m_api.SetAPINotify(QuoteNotify);
            }
            return(iResult);
        }
예제 #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Start...");

            var appInfo = new TapAPIApplicationInfo();

            appInfo.AuthCode =
                "B112F916FE7D27BCE7B97EB620206457946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC5211AF9FEE541DDE9D6F622F72E25D5DEF7F47AA93A738EF5A51B81D8526AB6A9D19E65B41F59D6A946CED32E26C1EACCAF8D4C61E28E2B1ABD9B8F170E14F8847D3EA0BF4E191F5DCB1B791E63DC196D1576DEAF5EC563CA3E560313C0C3411B45076795F550EB050A62C4F74D5892D2D14892E812723FAC858DEBD8D4AF9410729FB849D5D8D6EA48A1B8DC67E037381A279CE9426070929D5DA085659772E24A6F5EA52CF92A4D403F9E46083F27B19A88AD99812DADA44100324759F9FD1964EBD4F2F0FB50B51CD31C0B02BB437";
            appInfo.KeyOperationLogPath = "\\log";

            int result = 0;
            var api    = TapQuoteCppWrapper.CreateTapQuoteAPI(appInfo, ref result);

            var quote = new TapQuoteAPINotifyImpl();

            api.SetAPINotify(quote);

            api.SetHostAddress("222.88.40.170", 6161);
            var loginAuth = new TapAPIQuoteLoginAuth();

            loginAuth.UserNo           = "";
            loginAuth.Password         = "";
            loginAuth.ISModifyPassword = '******';
            loginAuth.ISDDA            = 'N';
            var err = api.Login(loginAuth);

            while (!quote.ApiReady)
            {
                Thread.Sleep(1000);
                Console.WriteLine("api not ready...");
            }

            var contracts = GetTestContracts();

            foreach (var contract in contracts)
            {
                api.SubscribeQuote(ref quote.SessionId, contract);
            }

            while (true)
            {
                Thread.Sleep(100);
            }

            Console.ReadKey();
        }
예제 #6
0
        public int InitTradeAPI()
        {
            TapAPIApplicationInfo appInfo = new TapAPIApplicationInfo();

            appInfo.KeyOperationLogPath = "LogEsTrade";
            appInfo.AuthCode            = "67EA896065459BECDFDB924B29CB7DF1946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC5211AF9FEE541DDE41BCBAB68D525B0D111A0884D847D57163FF7F329FA574E7946CED32E26C1EAC946CED32E26C1EAC733827B0CE853869ABD9B8F170E14F8847D3EA0BF4E191F5D97B3DFE4CCB1F01842DD2B3EA2F4B20CAD19B8347719B7E20EA1FA7A3D1BFEFF22290F4B5C43E6C520ED5A40EC1D50ACDF342F46A92CCF87AEE6D73542C42EC17818349C7DEDAB0E4DB16977714F873D505029E27B3D57EB92D5BEDA0A710197EB67F94BB1892B30F58A3F211D9C3B3839BE2D73FD08DD776B9188654853DDA57675EBB7D6FBBFC";
            int iResult = -1;

            m_api = TapTradeWrapper.CreateITapTradeAPI(appInfo, out iResult);
            if (m_api != null)
            {
                try
                {
                    var t = m_api.SetAPINotify(TradeNotify);
                }catch (Exception ex)
                {
                }
            }
            return(iResult);
        }
예제 #7
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TapAPIApplicationInfo obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
예제 #8
0
        static void Main(string[] args)
        {
            Console.WriteLine("TapTrade Test start");

            var app = new TapAPIApplicationInfo();

            app.AuthCode =
                "67EA896065459BECDFDB924B29CB7DF1946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC946CED32E26C1EAC5211AF9FEE541DDE41BCBAB68D525B0D111A0884D847D57163FF7F329FA574E7946CED32E26C1EAC946CED32E26C1EAC733827B0CE853869ABD9B8F170E14F8847D3EA0BF4E191F5D97B3DFE4CCB1F01842DD2B3EA2F4B20CAD19B8347719B7E20EA1FA7A3D1BFEFF22290F4B5C43E6C520ED5A40EC1D50ACDF342F46A92CCF87AEE6D73542C42EC17818349C7DEDAB0E4DB16977714F873D505029E27B3D57EB92D5BEDA0A710197EB67F94BB1892B30F58A3F211D9C3B3839BE2D73FD08DD776B9188654853DDA57675EBB7D6FBBFC";
            app.KeyOperationLogPath = "\\log";
            int iResult = 0;
            var api     = TapTradeCppWrapper.CreateTapTradeAPI(app, ref iResult);

            if (api == null)
            {
                Console.WriteLine("Failed to create api");
                return;
            }

            var trade = new TapTradeAPINotifyImpl();

            api.SetAPINotify(trade);

            const string userName = "******";

            api.SetHostAddress("123.15.58.21", 6060);
            var loginAuth = new TapAPITradeLoginAuth();

            loginAuth.UserNo           = userName;
            loginAuth.Password         = "******";
            loginAuth.ISModifyPassword = '******';
            loginAuth.ISDDA            = 'N';
            var err = api.Login(loginAuth);

            while (!trade.ApiReady)
            {
                Thread.Sleep(1000);
                Console.WriteLine("api not ready...");
            }

            var order = new TapAPINewOrder();

            order.AccountNo                = userName;
            order.ExchangeNo               = "CFFEX";
            order.CommodityType            = 'F';
            order.CommodityNo              = "IF";
            order.ContractNo               = "1803";
            order.StrikePrice              = "";
            order.CallOrPutFlag            = 'N';
            order.ContractNo2              = "";
            order.StrikePrice2             = "";
            order.CallOrPutFlag2           = 'N';
            order.OrderType                = '1';
            order.OrderSource              = 'A';
            order.TimeInForce              = '0';
            order.ExpireTime               = "";
            order.IsRiskOrder              = 'N';
            order.OrderSide                = 'B';
            order.PositionEffect           = 'O';
            order.PositionEffect2          = 'N';
            order.InquiryNo                = "";
            order.HedgeFlag                = 'T';
            order.OrderPrice               = 0.0;
            order.OrderQty                 = 1;
            order.TacticsType              = 'N';
            order.TriggerCondition         = 'N';
            order.TriggerPriceType         = 'N';
            order.AddOneIsValid            = 'N';
            order.HedgeFlag2               = 'N';
            order.MarketLevel              = 0;
            order.OrderDeleteByDisConnFlag = 'N';

            api.InsertOrder(ref trade.SessionId, order);

            while (true)
            {
                Thread.Sleep(100);
            }
        }