/// <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; }
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; } }
/// <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); }
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; }
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)); }
public void AddTradeInformation(TradeInformation tradeInformation) { tradeInformations.Add(tradeInformation); }