/// <summary>
        /// Sell crypto
        /// </summary>
        /// <param name="orderPrice">Current price</param>
        private void SellCrypto(decimal orderPrice)
        {
            CancelStopLoss();

            var trade = MakeTrade(orderPrice);

            bool tradeComplete = false;

            while (!tradeComplete)
            {
                tradeComplete = CheckTradeStatus(trade.orderId);
            }
            lastSell = orderPrice;

            lastTrade = new TradeInformation
            {
                pair      = _symbol,
                price     = orderPrice,
                quantity  = trade.origQty,
                timestamp = _dtHelper.UnixTimeToUTC(trade.transactTime),
                tradeType = EnumHelper.GetEnumDescription((TradeType)tradeType)
            };

            tradeInformation.Add(lastTrade);

            LogTransaction(lastTrade);

            tradeType = TradeType.BUY;
        }
Exemple #2
0
 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (listBox1.SelectedItem != null)
     {
         string           curItem = listBox1.SelectedItem.ToString();
         TradeInformation trade   = new TradeInformation(curItem);
         label7.Text = trade.Value.ToString();
         label8.Text = trade.ClientSector;
     }
 }
Exemple #3
0
        /// <summary>
        /// Write transaction to log
        /// </summary>
        /// <param name="tradeInformation">TradeInformation to write</param>
        /// <returns>Boolean when complete</returns>
        public bool LogTransaction(TradeInformation tradeInformation, bool noWrite = true)
        {
            if (!noWrite)
            {
                var json = JsonConvert.SerializeObject(tradeInformation);

                using (StreamWriter s = File.AppendText(transactionPath))
                {
                    s.WriteLine(json + ",");

                    json = null;

                    return(true);
                }
            }
            return(true);
        }
Exemple #4
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (listBox2.Items.Count <= 0)
     {
         MessageBox.Show("Your portfolio is Empty.");
     }
     else
     {
         List <string> categories = new List <string>();
         foreach (var item in listBox2.Items)
         {
             listBox1.Items.Add(item);
             TradeInformation trade = new TradeInformation(item.ToString());
             categories.Add(TradeFactory.Create(trade.Value, trade.ClientSector).GetTradeCategory());
         }
         listBox2.Items.Clear();
         textBox1.Text = JsonSerializer.Serialize(categories);
     }
 }
        public void Initial(TradeInformation tradeInfo)
        {
            bool          canBuy = true;
            StringBuilder rewardStringBuilder = new StringBuilder("商品:");

            foreach (var reward in tradeInfo.Rewards)
            {
                Item item = ItemFactory.Instance.FindItem(reward.itemID);
                rewardStringBuilder.AppendFormat("{0}x{1} ", item.ItemName, reward.count);
            }
            rewardText.text = rewardStringBuilder.ToString();

            StringBuilder costStringBuilder = new StringBuilder("價格:");

            foreach (var cost in tradeInfo.Costs)
            {
                Item item = ItemFactory.Instance.FindItem(cost.itemID);
                costStringBuilder.AppendFormat("{0}x{1} ", item.ItemName, cost.count);
                if (PlayerManager.Instance.Player.Inventory.ItemCount(cost.itemID) < cost.count)
                {
                    canBuy = false;
                }
            }
            costText.text = costStringBuilder.ToString();

            tradeButton.gameObject.SetActive(canBuy);
            tradeButton.onClick.AddListener(() =>
            {
                Inventory inventory = PlayerManager.Instance.Player.Inventory;
                foreach (var cost in tradeInfo.Costs)
                {
                    inventory.RemoveItem(cost.itemID, cost.count);
                }
                foreach (var reward in tradeInfo.Rewards)
                {
                    Item item = ItemFactory.Instance.FindItem(reward.itemID);
                    inventory.AddItem(item, reward.count);
                }
            });
        }
        /// <summary>
        /// Buy crypto
        /// </summary>
        /// <param name="orderPrice">Buy price</param>
        private void BuyCrypto(decimal orderPrice)
        {
            var trade = MakeTrade(orderPrice);

            bool tradeComplete = false;

            while (!tradeComplete)
            {
                tradeComplete = CheckTradeStatus(trade.orderId);
            }
            lastBuy = orderPrice;

            lastTrade = new TradeInformation
            {
                pair      = _symbol,
                price     = orderPrice,
                quantity  = trade.origQty,
                timestamp = _dtHelper.UnixTimeToUTC(trade.transactTime),
                tradeType = EnumHelper.GetEnumDescription((TradeType)tradeType)
            };
            tradeInformation.Add(lastTrade);

            LogTransaction(lastTrade);

            var stopLoss = PlaceStopLoss(orderPrice, trade.origQty);

            openStopLossList.Add(
                new OpenStopLoss
            {
                symbol        = _symbol,
                clientOrderId = stopLoss.clientOrderId,
                orderId       = stopLoss.orderId,
                price         = stopLoss.price
            });

            tradeType = TradeType.SELL;
        }
Exemple #7
0
        private void AddTradeInfomationCommandTask()
        {
            TradeInformation tradeInformation = new TradeInformation();
            string           inputString;

            do
            {
                int itemID = 0;
                int count  = 0;
                Console.Write("請輸入消耗物品 ID(輸入end結束): ");
                inputString = Console.ReadLine();
                while (inputString != "end" && (!int.TryParse(inputString, out itemID)))
                {
                    Console.Write("不合法的輸入 請輸入消耗物品 ID(整數)(輸入cancel取消): ");
                    inputString = Console.ReadLine();
                }
                if (inputString != "end")
                {
                    Console.Write("請輸入消耗物品 數量(輸入end結束): ");
                    inputString = Console.ReadLine();
                    while (inputString != "end" && (!int.TryParse(inputString, out count)))
                    {
                        Console.Write("不合法的輸入 請輸入消耗物品 數量(整數)(輸入cancel取消): ");
                        inputString = Console.ReadLine();
                    }
                    if (inputString != "end")
                    {
                        tradeInformation.AddCost(new TradeItemInformation {
                            itemID = itemID, count = count
                        });
                    }
                }
            }while (inputString != "end");
            do
            {
                int itemID = 0;
                int count  = 0;
                Console.Write("請輸入取得物品 ID(輸入end結束): ");
                inputString = Console.ReadLine();
                while (inputString != "end" && (!int.TryParse(inputString, out itemID)))
                {
                    Console.Write("不合法的輸入 請輸入取得物品 ID(整數)(輸入cancel取消): ");
                    inputString = Console.ReadLine();
                }
                if (inputString != "end")
                {
                    Console.Write("請輸入取得物品 數量(輸入end結束): ");
                    inputString = Console.ReadLine();
                    while (inputString != "end" && (!int.TryParse(inputString, out count)))
                    {
                        Console.Write("不合法的輸入 請輸入取得物品 數量(整數)(輸入cancel取消): ");
                        inputString = Console.ReadLine();
                    }
                    if (inputString != "end")
                    {
                        tradeInformation.AddReward(new TradeItemInformation {
                            itemID = itemID, count = count
                        });
                    }
                }
            }while (inputString != "end");
            editingStore.AddTradeInformation(tradeInformation);
            ViewCommandTask();
        }
 /// <summary>
 /// Log Trades
 /// </summary>
 /// <param name="tradeInformation">New TradeInformation object</param>
 /// <returns></returns>
 private bool LogTransaction(TradeInformation tradeInformation)
 {
     return(_fileRepo.LogTransaction(tradeInformation));
 }
Exemple #9
0
 public void AddTradeInformation(TradeInformation tradeInformation)
 {
     tradeInformations.Add(tradeInformation);
 }