Example #1
0
        //将下单InputOrder结构转换成xml字符串
        public void Transfer(InputOrder inputOrder, ref string strXml)
        {
            int OrderRef = Int32.Parse(RunSingleStrategy.StrategyInfo.OrderRef);

            //生成xml字符串流:
            XmlDocument xmldoc = new XmlDocument();
            XmlElement  xmlelem;

            xmlelem = xmldoc.CreateElement("", "OrderInput", "");
            xmlelem.SetAttribute("DealerID", RunSingleStrategy.StrategyInfo.TraderName);
            xmlelem.SetAttribute("BrokerID", "8090");
            xmlelem.SetAttribute("InstrumentID", inputOrder.InstrumentID);
            xmlelem.SetAttribute("Direction", inputOrder.Direction.ToString());
            xmlelem.SetAttribute("OpenClose", inputOrder.OpenClose.ToString());
            xmlelem.SetAttribute("Hedge", inputOrder.Hedge.ToString());
            xmlelem.SetAttribute("Price", inputOrder.Price.ToString());
            xmlelem.SetAttribute("IsMarket", inputOrder.IsMarket.ToString());
            xmlelem.SetAttribute("Qty", inputOrder.Qty.ToString());
            xmlelem.SetAttribute("SessionID", RunSingleStrategy.StrategyInfo.SessionID.ToString());
            xmlelem.SetAttribute("FrontID", RunSingleStrategy.StrategyInfo.FrontID.ToString());
            xmlelem.SetAttribute("OrderRef", (OrderRef++).ToString());
            RunSingleStrategy.StrategyInfo.OrderRef = OrderRef.ToString();


            xmldoc.AppendChild(xmlelem);

            strXml = xmldoc.InnerXml;
        }
Example #2
0
        public void InsertOrder(InputOrder order)
        {
            LogCenter.Log("下单:" + order.ToString());
            var field = new ThostFtdcInputOrderField
            {
                BrokerID            = order.BrokerID,
                InvestorID          = order.InvestorID,
                Direction           = (EnumDirectionType)order.Direction,
                CombOffsetFlag_0    = (EnumOffsetFlagType)order.OffsetFlag,
                InstrumentID        = order.InstrumentID,
                LimitPrice          = order.Price,
                VolumeTotalOriginal = order.Volume,
                UserID = order.GroupID,

                CombHedgeFlag_0     = EnumHedgeFlagType.Speculation,
                ForceCloseReason    = EnumForceCloseReasonType.NotForceClose,
                ContingentCondition = EnumContingentConditionType.Immediately,
                TimeCondition       = EnumTimeConditionType.GFD,
                VolumeCondition     = EnumVolumeConditionType.AV,
                OrderPriceType      = EnumOrderPriceTypeType.LimitPrice,
                MinVolume           = 1,
                IsAutoSuspend       = 1,
            };
            int i = this.ReqOrderInsert(field, 0);

            if (i != 0)
            {
                LogCenter.Error("输入报单错误:" + CTPErrorHelper.GetError(i));
            }
        }
Example #3
0
    public void InitializeCharacter(CharacterIdentity ci)
    {
        characterIdentity = ci;
        trans             = model.GetComponent <Transform>();
        rigid             = GetComponent <Rigid>();

        mState      = new IdleState();
        mDelayState = new IdleDelayState();

        gameSystemState = SystemOrder.NOTHING;
        inputOrder      = InputOrder.stand;
        attackOrder     = -1;
        walkDirection   = new Vector3(0, 0, 0);
        sightRotation   = new Vector3(0, 0, 0);

        posture     = new Posture(this);
        walkPhase   = 0;
        attackPhase = 0;

        holdingItemIndex = -1;

        if (characterIdentity.isPlayer)
        {
            GetComponent <Basic>().mManager.allManager.SetCamera(gameObject);
            posture.BecomeInvisible();

            targetCharacter = null;
        }
        else
        {
            targetCharacter = GetComponent <Basic>().mManager.allManager.player;
        }
    }
Example #4
0
    public override CharacterState UpdataState(Character character, InputOrder input)
    {
        CharacterState tempState = this;

        if (character.OnGround())
        {
            //Debug.Log("On Ground Now.");
            switch (input)
            {
            case InputOrder.stand:
                tempState = new IdleState();
                break;

            case InputOrder.walk:
                tempState = new WalkState();
                break;

            case InputOrder.squat:
                tempState = new SquatState();
                break;

            default:
                tempState = new IdleState();
                break;
            }
        }

        return(tempState);
    }
Example #5
0
        // 成交通知
        public override bool OnTrade(TradeInfo trade)
        {
            QryTradingAccount qryTA = new QryTradingAccount();
            TradingAccount    taRet = new TradingAccount();

            GetTradingAccount(qryTA, ref taRet);

            QryPosition         qryPiso = new QryPosition();
            List <PositionInfo> lstPosi = new List <PositionInfo>();

            GetPositions(qryPiso, ref lstPosi);

            InputOrder req = new InputOrder();

            req.InstrumentID = trade.InstrumentID;
            req.Qty          = trade.Volume;
            req.Price        = trade.Price + (trade.Direction == '0' ? -1.0 : 1.0);
            req.Hedge        = '1';
            req.IsMarket     = false;
            req.Direction    = trade.Direction == '0' ? '1' : '0';
            req.OpenClose    = '1';

            ReqOrderInsert(req);

            return(true);
        }
Example #6
0
 public void MergeFrom(RspOrderInsertMsg other)
 {
     if (other == null)
     {
         return;
     }
     if (other.inputOrder_ != null)
     {
         if (inputOrder_ == null)
         {
             InputOrder = new global::Evelynn.Base.Request.InputOrderField();
         }
         InputOrder.MergeFrom(other.InputOrder);
     }
     if (other.error_ != null)
     {
         if (error_ == null)
         {
             Error = new global::Evelynn.Base.Response.ErrorField();
         }
         Error.MergeFrom(other.Error);
     }
     if (other.RequestId != 0)
     {
         RequestId = other.RequestId;
     }
     if (other.IsLast != false)
     {
         IsLast = other.IsLast;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
Example #7
0
    public void GetOrder()
    {
        //process system order first
        SystemOrder systemOder = characterIdentity.GetSystemOrder();

        gameSystemState ^= systemOder;
        if (systemOder != SystemOrder.NOTHING)
        {
            GetComponent <Basic>().mManager.allManager.uiManager.ProcessSystemOrder(gameSystemState);
        }

        //process gameplay order
        if (gameSystemState == SystemOrder.NOTHING)
        {
            GameObject target = FindTarget(); //woud be better put in lateupdate (after fixing physics)

            inputOrder    = characterIdentity.GetInputOrder();
            walkDirection = characterIdentity.GetWalkingDirection();
            sightRotation = characterIdentity.GetSightRotation(gameObject, target);
            attackOrder   = characterIdentity.GetAttackOrder();

            if (characterIdentity.GetThrowOrder())
            {
                ThrowHoldingItem();
            }
        }
        else
        {
            inputOrder    = InputOrder.stand;
            walkDirection = Vector3.zero;
            sightRotation = Vector3.zero;
            attackOrder   = -1;
        }
    }
Example #8
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (inputOrder_ != null)
            {
                hash ^= InputOrder.GetHashCode();
            }
            if (error_ != null)
            {
                hash ^= Error.GetHashCode();
            }
            if (RequestId != 0)
            {
                hash ^= RequestId.GetHashCode();
            }
            if (IsLast != false)
            {
                hash ^= IsLast.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Example #9
0
    public override CharacterState UpdataState(Character character, InputOrder input)
    {
        CharacterState tempState = this;

        if (!character.OnGround())
        {
            tempState = new JumpState();
        }
        else
        {
            switch (input)
            {
            case InputOrder.stand:
                tempState = new IdleState();
                break;

            case InputOrder.jump:
                character.DoJump();
                tempState = new JumpState();
                break;

            case InputOrder.squat:
                tempState = new SquatState();
                break;
            }
        }

        return(tempState);
    }
Example #10
0
        public void ShouldNotAllowOrderToAddWhenThereIsOverlapDateTime()
        {
            var gasStation = _orderData.GasStations.First();
            var inputOrder = new InputOrder
            {
                CarrierId    = Guid.NewGuid(),
                Comments     = "Manual Order",
                OrderType    = SharedKernel.Enums.OrderType.Manual,
                GasStationId = gasStation.Id,
                FromTime     = new DateTime(2020, 11, 8, 7, 0, 0),
                ToTime       = new DateTime(2020, 11, 8, 10, 0, 0),
                LineItems    = gasStation.Tanks.Select(
                    x => new InputOrderProduct
                {
                    TankId   = x.Id,
                    Quantity = x.Measurement.Quantity
                })
            };
            Order?entity = Order.Create(inputOrder, gasStation) !.Entity;

            var manageOrder = new ManageOrder(_orderData.Orders);

            Assert.True(manageOrder.Add(entity !).IsConflicting);
            Assert.True(manageOrder.Orders.Count(x => x.GasStationId == entity !.GasStationId) == 3);
        }
Example #11
0
        private void AddProductInputsFromJson(long inputOrderID, JObject json)
        {
            InputOrder inputOrder = ClarityDB.Instance.InputOrders.FirstOrDefault(x => x.ID == inputOrderID);

            var productInputsJsons = json.Value <JArray>("productInputs");

            if (productInputsJsons != null)
            {
                foreach (JObject productInputsJson in productInputsJsons)
                {
                    string  productName = productInputsJson.Value <string>("productName");
                    Product product     = getProductByName(productName);
                    if (product != null)
                    {
                        CreateProductInputForInputOrder(productInputsJson, inputOrder, product.ID);
                    }
                    else
                    {
                        JObject productJson = new JObject();
                        productJson["name"] = productName;
                        ProductService productSevice = new ProductService();
                        productSevice.Create(productJson);

                        Product productAfterCreating = getProductByName(productName);
                        CreateProductInputForInputOrder(productInputsJson, inputOrder, productAfterCreating.ID);
                    }
                }
                ClarityDB.Instance.SaveChanges();
            }
        }
Example #12
0
        public async Task <IActionResult> Add([FromBody] InputOrder input)
        {
            var currentCustomer = await _currentUser.GetCurrentUser();

            if (currentCustomer == null)
            {
                return(Unauthorized());
            }

            var package = await _context.Packages.FindAsync(input.PackageId);

            if (package == null)
            {
                return(NotFound());
            }

            if (!IsValidQuantity(input.ImageQuantity, package))
            {
                return(BadRequest("Invalid quantity"));
            }

            var price = CalculatePrice(package, input.ImageQuantity);

            Order order = input.ToModel(currentCustomer, package, price);

            await _context.Orders.AddAsync(order);

            await _context.SaveChangesAsync();

            return(Ok(await _handler.OutputFor(order)));
        }
Example #13
0
    //Clickable clicked = rayHit.transform.GetComponent<Clickable>() as Clickable;

    void Start()
    {
        inputOrder   = new InputOrder();
        startMouse   = new Vector2(100, 100);
        currentMouse = new Vector2(200, 200);
        clickStart   = false;
        dragStart    = false;
    }
Example #14
0
        // 请求下单
        public int ReqOrderInsert(InputOrder inputOrder)
        {
            DebugOut("Call CStrategy Function ReqOrderInsert from MainForm Successfully");

            if (this.orderServer == null)
            {
                return(999);
            }
            return(this.orderServer.ReqOrderInsert(inputOrder));
        }
Example #15
0
File: Bed.cs Project: pimms/gfh_gj
    public override void OnMouseClick(int mouseButton, InputOrder inOrder)
    {
        if (inOrder.order.actors.Count != 0
        ||  inOrder.order.subject != null) {

            inOrder.AddAsObject(this);
            inOrder.PerformOrder();
            inOrder.Clear();
        }
    }
Example #16
0
        public void GetInputOrder_CreateInputCreateOrderFromArrayOfString_returnTrue()
        {
            string[]     input      = new string[] { "create", "machine2", "IDX147852" };
            OrderManager ordM       = new OrderManager();
            InputOrder   inputOrder = ordM.GetInputOrder(input);

            Assert.IsTrue(inputOrder.Command == "create");
            Assert.IsTrue(inputOrder.Param1 == "machine2");
            Assert.IsTrue(inputOrder.Param2 == "IDX147852");
        }
Example #17
0
File: Bed.cs Project: pimms/gfh_gj
 public override void OnMouseClick(int mouseButton, InputOrder inOrder)
 {
     if (inOrder.order.actors.Count != 0 ||
         inOrder.order.subject != null)
     {
         inOrder.AddAsObject(this);
         inOrder.PerformOrder();
         inOrder.Clear();
     }
 }
Example #18
0
        public void GetInputOrder_AddInputOrderFromArrayOfString_returnTrue()
        {
            string[]     input      = new string[] { "add", "IDX147852", "25" };
            OrderManager ordM       = new OrderManager();
            InputOrder   inputOrder = ordM.GetInputOrder(input);

            Assert.IsTrue(inputOrder.Command == "add");
            Assert.IsTrue(inputOrder.Param1 == "IDX147852");
            Assert.IsTrue(inputOrder.Param2 == "25");
        }
Example #19
0
        public void GetInputOrder_TemperatureInputOrderFromArrayOfString_returnTrue()
        {
            string[]     input      = new string[] { "temperature", "IDX147852", "120" };
            OrderManager ordM       = new OrderManager();
            InputOrder   inputOrder = ordM.GetInputOrder(input);

            Assert.IsTrue(inputOrder.Command == "temperature");
            Assert.IsTrue(inputOrder.Param1 == "IDX147852");
            Assert.IsTrue(inputOrder.Param2 == "120");
        }
Example #20
0
        private void CreateProductInputForInputOrder(JObject json, InputOrder inputOrder, long productId)
        {
            ProductInput productInput = ProductInput.FromJson(json);

            productInput.ProductID    = productId;
            productInput.CreatedDate  = DateTime.Now;
            productInput.InputOrderID = inputOrder.ID;
            inputOrder.ProductInputs.Add(productInput);
            //Increase quantity in Inventory
            updateInventory(productInput);
        }
Example #21
0
        private void updateInventoryAfterDeleteInputOrder(long inputOrderID)
        {
            InputOrder inputOrder = ClarityDB.Instance.InputOrders.FirstOrDefault(x => x.ID == inputOrderID);

            if (inputOrder != null && inputOrder.ProductInputs != null && inputOrder.ProductInputs.Count > 0)
            {
                foreach (ProductInput productInput in inputOrder.ProductInputs)
                {
                    Inventory inventory = ClarityDB.Instance.Inventories.FirstOrDefault(x => x.ProductID == productInput.ProductID);
                    inventory.Quantity -= productInput.Quantity;
                }
            }
        }
        public static void WriteInputOrder(InputOrder inputOrder)
        {
            var orderJson = JsonConvert.SerializeObject(inputOrder, Formatting.Indented);

            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine(@"Input JSON was:");
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.DarkCyan;
            Console.WriteLine(orderJson);
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine();
        }
Example #23
0
            public List <FlatOutput> Convert(InputOrder source, List <FlatOutput> destination, ResolutionContext context)
            {
                List <FlatOutput> result = new List <FlatOutput>(source.Items.Count);

                source.Items.ForEach(i =>
                {
                    //result.Add(context.Mapper.Map<FlatOutput>(i));

                    FlatOutput item = context.Mapper.Map <FlatOutput>(i);
                    item.OrderId    = source.OrderID;
                    result.Add(item);
                });
                return(result);
            }
Example #24
0
        public RestApiResult GetInputOrderByID(long id)
        {
            InputOrder inputOrder = ClarityDB.Instance.InputOrders.FirstOrDefault(x => x.ID == id);

            if (inputOrder == null)
            {
                return(new RestApiResult {
                    StatusCode = HttpStatusCode.NotFound
                });
            }

            return(new RestApiResult {
                StatusCode = HttpStatusCode.OK, Json = inputOrder.ToJson()
            });
        }
Example #25
0
        /// <summary>
        /// 添加新行情。
        /// </summary>
        /// <param name="bCalcImmediately" default=false>是否立即进行指标计算</param>
        /// <returns>
        /// true: 成功
        /// false: 失败,原因指标对象可能未初始化
        /// </returns>
        public override bool AppendMD(MarketDetph md, bool bCalcImmediately)
        {
            // 预处理深度行情,并缓存到未算深度行情队列中。
            base.AppendMD(md, bCalcImmediately);


            // 请在这里填写实现代码。

            ma.AppendMD(md, bCalcImmediately);
            macd.AppendMD(md, bCalcImmediately);

            string[] timesplit = md.updateTime.Split(':');
            if (Int32.Parse(timesplit[2]) < 1)
            {
                InputOrder req = new InputOrder();

                req.InstrumentID = md.instrumentId;
                req.Qty          = 1;
                req.Price        = md.latestPrice;
                req.Hedge        = '0';
                req.IsMarket     = false;
                if (Int32.Parse(timesplit[1]) > 30)
                {
                    req.Direction = '0';
                    req.OpenClose = '0';
                }
                else
                {
                    req.Direction = '1';
                    req.OpenClose = '1';
                }

                ReqOrderInsert(req);
            }

            // 是否需要立即进行指标计算。
            if (bCalcImmediately)
            {
                return(CalculateMDIndicator());
            }
            else
            {
                return(true);
            }
        }
Example #26
0
        public RestApiResult Update(long id, JObject json)
        {
            InputOrder inputOrder = ClarityDB.Instance.InputOrders.FirstOrDefault(x => x.ID == id);

            if (inputOrder == null)
            {
                return(new RestApiResult {
                    StatusCode = HttpStatusCode.NotFound
                });
            }

            inputOrder.ApplyJson(json);
            UpdateProductInputsFromJson(id, json);

            ClarityDB.Instance.SaveChanges();
            return(new RestApiResult {
                StatusCode = HttpStatusCode.OK, Json = json
            });
        }
Example #27
0
        private void AddProductInputsFromJson(long inputOrderID, JObject json)
        {
            InputOrder inputOrder = ClarityDB.Instance.InputOrders.FirstOrDefault(x => x.ID == inputOrderID);

            var productInputsJsons = json.Value <JArray>("productInputs");

            if (productInputsJsons != null)
            {
                foreach (JObject productInputsJson in productInputsJsons)
                {
                    ProductInput productInput = ProductInput.FromJson(productInputsJson);
                    productInput.CreatedDate  = DateTime.Now;
                    productInput.InputOrderID = inputOrderID;
                    inputOrder.ProductInputs.Add(productInput);
                    //Increase quantity in Inventory
                    updateInventory(productInput);
                }
                ClarityDB.Instance.SaveChanges();
            }
        }
Example #28
0
        public RestApiResult Delete(long id)
        {
            InputOrder inputOrder = ClarityDB.Instance.InputOrders.FirstOrDefault(x => x.ID == id);

            if (inputOrder == null)
            {
                return(new RestApiResult {
                    StatusCode = HttpStatusCode.NotFound
                });
            }
            //Decrease quantity in Inventory when delete InputOrder
            updateInventoryAfterDeleteInputOrder(id);

            ClarityDB.Instance.InputOrders.Remove(inputOrder);
            ClarityDB.Instance.SaveChanges();

            return(new RestApiResult {
                StatusCode = HttpStatusCode.OK, Json = inputOrder.ToJson()
            });
        }
Example #29
0
 public void MergeFrom(ReqOrderInsertMsg other)
 {
     if (other == null)
     {
         return;
     }
     if (other.inputOrder_ != null)
     {
         if (inputOrder_ == null)
         {
             InputOrder = new global::Evelynn.Base.Request.InputOrderField();
         }
         InputOrder.MergeFrom(other.InputOrder);
     }
     if (other.RequestId != 0)
     {
         RequestId = other.RequestId;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
Example #30
0
        public void TreatInputOrder_SetMachineTemperature_returnTrue()
        {
            InputOrder io = new InputOrder()
            {
                Command = "temperature",
                Param1  = "IDX123456",
                Param2  = "120"
            };
            //Machine maskin = new Machine()
            //{
            //    MachineId = "IDX123456",
            //    MachineName = "Maskina"
            //};
            var mockMgr = new Mock <IMachineManager>(MockBehavior.Strict);

            //mockMgr.Setup(x => x.CreateMachine(It.IsAny<Machine>())).Returns(()=>true);
            mockMgr.Setup(x => x.SetTemperature(120, "IDX123456")).Returns(true);
            var ordM = new OrderManager(mockMgr.Object);

            Assert.AreEqual(ordM.TreatInputOrder(io), "success");
        }
Example #31
0
        public void TreatInputOrder_CreateMachineFromStringInput_returnTrue()
        {
            InputOrder io = new InputOrder()
            {
                Command = "create",
                Param1  = "MACHINE1",
                Param2  = "IDX123456"
            };
            Machine maskin = new Machine()
            {
                MachineId   = "IDX123456",
                MachineName = "MACHINE1"
            };
            var mockMgr = new Mock <IMachineManager>();

            //mockMgr.Setup(x => x.CreateMachine(maskin)).Returns(true);
            mockMgr.Setup(x => x.CreateMachine(It.IsAny <Machine>())).Returns(() => true);
            OrderManager ordM = new OrderManager(mockMgr.Object);

            Assert.AreEqual(ordM.TreatInputOrder(io), "success");
        }
Example #32
0
 public override void OnMouseClick(int mouseButton, InputOrder inOrder)
 {
     inOrder.AddAsActor(this);
     Debug.Log("BITCH DON'T CLICK ME");
 }
Example #33
0
 public override void OnMouseClick(int mouseButton, InputOrder inOrder)
 {
     inOrder.AddAsSubject(this);
 }
Example #34
0
 /* When the person is clicked, it must respond. How? Dunno.
  * @param mouseButton		0 = left click, 1 = right click
  */
 public virtual void OnMouseClick(int mouseButton, InputOrder queue)
 {
     Debug.Log("OnMouseClick() is not overriden in subclass: " + this.ToString());
 }
Example #35
0
 //Clickable clicked = rayHit.transform.GetComponent<Clickable>() as Clickable;
 void Start()
 {
     inputOrder = new InputOrder();
     startMouse = new Vector2(100, 100);
     currentMouse = new Vector2(200, 200);
     clickStart = false;
     dragStart = false;
 }