예제 #1
0
        //public TEsOrderInsertReqField InsertOrder(TradingOrderParameter parameter)
        //{
        //  Symbol symbol = parameter.Symbol;

        //  TEsOrderInsertReqField req = new TEsOrderInsertReqField();

        //  if (symbol.IsCustomCombinSymbol)
        //  {

        //  }
        //  else
        //  {

        //    if (symbol.Market != null)
        //    {
        //      //交易所
        //      req.Exchange = EsunnyConvert.ConvertToEsunny(symbol.Market.MarketCode);
        //    }

        //    if (symbol.SymbolType == SymbolType.CommoditiesSpreadFutures)
        //    {
        //      CombinSymbol combinSymbol = symbol as CombinSymbol;

        //      if (combinSymbol.Items[0].SymbolBlock.BlockCode == combinSymbol.Items[1].SymbolBlock.BlockCode)
        //      {
        //        //跨期
        //        req.CmbType = EsunnyCombinOrderType.Spread;
        //      }
        //      else
        //      {
        //        //跨商品
        //        req.CmbType = EsunnyCombinOrderType.SpreadCommodity;
        //      }

        //      req.Contract1 = combinSymbol.Items[0].ExchangeSymbolCode.ToUpper();
        //      req.Contract2 = combinSymbol.Items[1].ExchangeSymbolCode.ToUpper();
        //    }
        //    else
        //    {
        //      //普通单
        //      req.CmbType = EsunnyCombinOrderType.Normal;
        //      req.Contract1 = symbol.ExchangeSymbolCode.ToUpper();
        //    }


        //    req.Direct = EsunnyConvert.ConvertToEsunny(parameter.Direction);
        //    req.Offset = EsunnyConvert.ConvertToEsunny(parameter.Offset);
        //    req.OrderPrice = Convert.ToDouble(parameter.Price);
        //    req.OrderVol = Convert.ToInt32(parameter.Volume);
        //    req.RequestID = this._requestID++;

        //    req.OrderType = EsunnyOrderType.LimitOrder;
        //    req.Hedge = EsunnyHedgeType.Speculation;

        //    InvokeAPI(EsunnyWrapperAction.OrderInsert, req);
        //  }

        //  return req;
        //}


        int InvokeAPI(EsunnyWrapperAction action, object req)
        {
            return(EsunnyWrapper.InvokeAPI(this._instance, action, req));

            //IntPtr p = IntPtr.Zero;

            //if (req != null)
            //{
            //  p = Marshal.AllocHGlobal(Marshal.SizeOf(req));

            //  Marshal.StructureToPtr(req, p, true);
            //}

            //int result = EsunnyWrapper.Process(this._instance, action, p);

            //if (req != null)
            //{
            //  Marshal.DestroyStructure(p, req.GetType());
            //}
        }
예제 #2
0
        internal static int InvokeAPI(IntPtr handler, EsunnyWrapperAction action, object req)
        {
            IntPtr p      = IntPtr.Zero;
            int    result = 0;

            if (req != null)
            {
                if (req is IntPtr)
                {
                    result = EsunnyWrapper.Process(handler, action, (IntPtr)req);
                }
                else if (req is int)
                {
                    result = EsunnyWrapper.Process(handler, action, (IntPtr)(int)req);
                }
                else if (req is StringBuilder)
                {
                    result = EsunnyWrapper.Process(handler, action, (StringBuilder)req);
                }
                else
                {
                    p = Marshal.AllocHGlobal(Marshal.SizeOf(req));
                    Marshal.StructureToPtr(req, p, true);

                    result = EsunnyWrapper.Process(handler, action, p);

                    Marshal.DestroyStructure(p, req.GetType());
                }
            }
            else
            {
                result = EsunnyWrapper.Process(handler, action, p);
            }

            return(result);
        }
예제 #3
0
 static extern int Process(IntPtr hTrade, EsunnyWrapperAction action, IntPtr req);
예제 #4
0
 static extern int Process(IntPtr hTrade, EsunnyWrapperAction action, StringBuilder req);
예제 #5
0
        //public TEsOrderInsertReqField InsertOrder(TradingOrderParameter parameter)
        //{
        //  Symbol symbol = parameter.Symbol;
        //  TEsOrderInsertReqField req = new TEsOrderInsertReqField();
        //  if (symbol.IsCustomCombinSymbol)
        //  {
        //  }
        //  else
        //  {
        //    if (symbol.Market != null)
        //    {
        //      //交易所
        //      req.Exchange = EsunnyConvert.ConvertToEsunny(symbol.Market.MarketCode);
        //    }
        //    if (symbol.SymbolType == SymbolType.CommoditiesSpreadFutures)
        //    {
        //      CombinSymbol combinSymbol = symbol as CombinSymbol;
        //      if (combinSymbol.Items[0].SymbolBlock.BlockCode == combinSymbol.Items[1].SymbolBlock.BlockCode)
        //      {
        //        //跨期
        //        req.CmbType = EsunnyCombinOrderType.Spread;
        //      }
        //      else
        //      {
        //        //跨商品
        //        req.CmbType = EsunnyCombinOrderType.SpreadCommodity;
        //      }
        //      req.Contract1 = combinSymbol.Items[0].ExchangeSymbolCode.ToUpper();
        //      req.Contract2 = combinSymbol.Items[1].ExchangeSymbolCode.ToUpper();
        //    }
        //    else
        //    {
        //      //普通单
        //      req.CmbType = EsunnyCombinOrderType.Normal;
        //      req.Contract1 = symbol.ExchangeSymbolCode.ToUpper();
        //    }
        //    req.Direct = EsunnyConvert.ConvertToEsunny(parameter.Direction);
        //    req.Offset = EsunnyConvert.ConvertToEsunny(parameter.Offset);
        //    req.OrderPrice = Convert.ToDouble(parameter.Price);
        //    req.OrderVol = Convert.ToInt32(parameter.Volume);
        //    req.RequestID = this._requestID++;
        //    req.OrderType = EsunnyOrderType.LimitOrder;
        //    req.Hedge = EsunnyHedgeType.Speculation;
        //    InvokeAPI(EsunnyWrapperAction.OrderInsert, req);
        //  }
        //  return req;
        //}
        int InvokeAPI(EsunnyWrapperAction action, object req)
        {
            return EsunnyWrapper.InvokeAPI(this._instance, action, req);

              //IntPtr p = IntPtr.Zero;

              //if (req != null)
              //{
              //  p = Marshal.AllocHGlobal(Marshal.SizeOf(req));

              //  Marshal.StructureToPtr(req, p, true);
              //}

              //int result = EsunnyWrapper.Process(this._instance, action, p);

              //if (req != null)
              //{
              //  Marshal.DestroyStructure(p, req.GetType());
              //}
        }