Exemplo n.º 1
0
        private void sellStock(object obj)
        {
            Surface.MyTimer.Data.StockInfo si = (Surface.MyTimer.Data.StockInfo)obj;
            bool          changeFlag          = false;
            bool          sellFlag            = false;
            int           count;
            double        price;
            countAndPrice cp = calculateCount(si.StockID, si.Proportion, Surface.MyTimer.Data.HoldingValue, "Sell");

            count = cp.Count;
            price = cp.Price;
            //Surface.WinfairTDAPI.Function.OrderInsert(si.StockID, price, count);
            string localHandleID = Surface.WinfairTDAPI.Function.TDOrderInsert();

            Thread.Sleep(SellWaitTime);
            if (orderStatus[localHandleID] == "ALLTRADED")
            {
                changeFlag = true;
            }
            if (changeFlag)
            {
                //Surface.WinfairTDAPI.Function.OrderAction();
                for (int i = 1; i < SellTry; i++)
                {
                    cp    = calculateCount(si.StockID, si.Proportion, Surface.MyTimer.Data.HoldingValue, "Sell");
                    count = cp.Count;
                    price = cp.Price;
                    //Surface.WinfairTDAPI.Function.OrderInsert(si.StockID, price, count);
                    localHandleID = Surface.WinfairTDAPI.Function.TDOrderInsert();
                    Thread.Sleep(SellWaitTime);
                    if (orderStatus[localHandleID] == "ALLTRADED")
                    {
                        changeFlag = true;
                    }
                    if (changeFlag)
                    {
                        //Surface.WinfairTDAPI.Function.OrderAction();
                        if (i == SellTry - 1)
                        {
                            cp    = calculateCount(si.StockID, si.Proportion, Surface.MyTimer.Data.HoldingValue, "SellLimit");
                            count = cp.Count;
                            price = cp.Price;
                            //Surface.WinfairTDAPI.Function.OrderInsert(si.StockID, price, count);
                            localHandleID = Surface.WinfairTDAPI.Function.TDOrderInsert();
                            Thread.Sleep(SellWaitTime);
                            if (orderStatus[localHandleID] == "ALLTRADED")
                            {
                                changeFlag = true;
                            }
                            if (sellFlag)
                            {
                                Console.WriteLine("Selling failed.");
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
 private void stockExchange(string stockID, double changingProportion, double value, int order)
 {
     if (Surface.MyTimer.Data.MDDict.ContainsKey(stockID))
     {
         string optionStockID = "";
         if (order == 1)
         {
             optionStockID = Surface.MyTimer.Data.OperationDict[stockID].OptionStockID1;
             BuyInfo bi = new BuyInfo(Surface.MyTimer.Data.OperationDict[stockID], stockID, 1);
             Surface.MyTimer.Data.StockInfo si = bi.Si;
             si            = new Surface.MyTimer.Data.StockInfo();
             si.StockID    = optionStockID;
             si.Proportion = changingProportion;
             buyStock(bi);
         }
         else if (order == 2)
         {
             optionStockID = Surface.MyTimer.Data.OperationDict[stockID].OptionStockID2;
             BuyInfo bi = new BuyInfo(Surface.MyTimer.Data.OperationDict[stockID], stockID, 2);
             Surface.MyTimer.Data.StockInfo si = bi.Si;
             si            = new Surface.MyTimer.Data.StockInfo();
             si.StockID    = optionStockID;
             si.Proportion = changingProportion;
             buyStock(bi);
         }
         else if (order == 3)
         {
             optionStockID = Surface.MyTimer.Data.OperationDict[stockID].OptionStockID3;
             BuyInfo bi = new BuyInfo(Surface.MyTimer.Data.OperationDict[stockID], stockID, 3);
             Surface.MyTimer.Data.StockInfo si = bi.Si;
             si            = new Surface.MyTimer.Data.StockInfo();
             si.StockID    = optionStockID;
             si.Proportion = changingProportion;
             buyStock(bi);
         }
         else
         {
             Console.WriteLine("Buying option stock failed.");
         }
     }
     else
     {
         Console.WriteLine("Target list add error!");
     }
 }