Beispiel #1
0
        private void onOrderMsg(string channel, string value)
        {
            if (String.Compare(channel, channelnames[0]) != 0)
            {
                return;
            }

            logger.Info("onOrderMsg : placeOrder message recieved = " + value);

            OrderCmd orderCmd = new OrderCmd();

            string[] items = value.Split(';');

            #region
            foreach (string item in items)
            {
                string[] lArr = item.Split('=');
                if (lArr.Length == 2)
                {
                    string key = lArr[0].ToLower().Trim();
                    switch (key)
                    {
                    case "orderid":
                        orderCmd.orderInfo.orderId = Convert.ToInt32(lArr[1]);
                        orderCmd.orderBehaviorParameters.orderId = orderCmd.orderInfo.orderId;
                        break;

                    case "account":
                        orderCmd.orderInfo.account = lArr[1].Trim();
                        break;

                    case "symbol":
                        orderCmd.orderInfo.abbrName = lArr[1].ToLower().Trim();
                        break;

                    case "position":
                        orderCmd.orderInfo.position = Convert.ToInt32(lArr[1]);
                        break;

                    case "daytrade":
                        orderCmd.orderBehaviorParameters.daytrade = Convert.ToBoolean(lArr[1]);
                        break;

                    case "closed":
                        orderCmd.closed = Convert.ToBoolean(lArr[1]);
                        break;

                    case "profittakepercent":
                        orderCmd.orderBehaviorParameters.profittakepercent = Convert.ToDouble(lArr[1]);
                        break;

                    case "protectiontrigger":
                        orderCmd.orderBehaviorParameters.protectiontrigger = Convert.ToDouble(lArr[1]);
                        break;

                    case "protection":
                        orderCmd.orderBehaviorParameters.protection = Convert.ToDouble(lArr[1]);
                        break;

                    case "hardstop":
                        orderCmd.orderBehaviorParameters.hardstop = Convert.ToDouble(lArr[1]);
                        break;

                    default:
                        break;
                    }
                }
            }

            #endregion

            if (orderCmdValidation(orderCmd))
            {
                logger.Info("onOrderMsg ==> " + orderCmd.getInfo());
                //check touchance active or not

                if (TCMonitor.TouchanceMonitor.Instance.isTouchanceExist())
                {
                    OrderManager.Instance.push(orderCmd);
                }
                else
                {
                    logger.Info("Touchance is not running in this machine, command ignored.");
                }
            }
        }