void Awake() { variables = GameObject.FindObjectOfType(typeof(Variables)) as Variables; shareHolder = GameObject.FindObjectOfType(typeof(ShareHolder)) as ShareHolder; lastTradesList = GameObject.FindObjectOfType(typeof(LastTradesList)) as LastTradesList; buyOrder = GameObject.FindObjectOfType(typeof(BuyOrder)) as BuyOrder; sellOrder = GameObject.FindObjectOfType(typeof(SellOrder)) as SellOrder; }
public void Exchange(float EP, float EA, float EF, bool matchFound, string buyUser, string sellUser, bool whoIsMaker) { if (matchFound == true) { if (buyOrder.buyOrders[0].Amount >= sellOrder.sellOrders[0].Amount) { EA = sellOrder.sellOrders[0].Amount; EF = sellOrder.sellOrders[0].Amount * EP; } else { EA = buyOrder.buyOrders[0].Amount; EF = buyOrder.buyOrders[0].Amount * EP; } shareHolder.ShareHolders(); //Now that Price, Amount and Funds variables for this transaction have been calculated, let's make the transaction! int buyerIndex = shareHolder.GetIndexOfUser(buyUser); int sellerIndex = shareHolder.GetIndexOfUser(sellUser); shareHolder.ShareholdersList[buyerIndex].Shares += EA * variables.Fee; //Updates the buyer assets in ShareHolderList shareHolder.ShareholdersList[buyerIndex].AvailableShares += EA * variables.Fee; shareHolder.ShareholdersList[buyerIndex].Funds -= EF; shareHolder.ShareholdersList[sellerIndex].Shares -= EA; //Updates the seller assets in ShareHolderList shareHolder.ShareholdersList[sellerIndex].Funds += EF * variables.Fee; shareHolder.ShareholdersList[sellerIndex].AvailableFunds += EF * variables.Fee; variables.Balance += EF * (1 - variables.Fee); variables.DividendsShare += EA * (1 - variables.Fee); buyOrder.buyOrders[0].Amount -= EA; buyOrder.buyOrders[0].Funds -= EF; sellOrder.sellOrders[0].Amount -= EA; sellOrder.sellOrders[0].Funds -= EF; var order = new LastTradesList(buyOrder.buyOrders[0].Username, EA, EF, EP); lastTradesList.lastTradesList.Add(order); variables.lastPrice = lastTradesList.lastTradesList[0].Price; variables.totalValuation = variables.totalShares * variables.lastPrice; matchFound = false; DeleteNullOrder(); buyOrder.DisplayBuyList(); sellOrder.DisplaySellList(); shareHolder.ShareHolders(); //Actualizar la lista de accionistas CheckMatch(); //Checks for another match } }
public void Start() { if (lastTradesList == null) { lastTradesList = new List <LastTradesList>(); for (int i = 0; i <= 9; i++) { var order = new LastTradesList("System", 0, 0, 0); lastTradesList.Add(order); } } var order1 = new LastTradesList("System", 0, 0, 0); lastTradesList.Add(order1); InvokeRepeating("DisplayLastTradesList", 1, 1); }
void Start() { SetPriceText(); SetAmountText(); SetLoanFundsText(); Hour = 0; Day = 1; buyOrder = GameObject.FindObjectOfType(typeof(BuyOrder)) as BuyOrder; //Funciona!!!!! Sirve para poder llamar funciones de otros scripts sellOrder = GameObject.FindObjectOfType(typeof(SellOrder)) as SellOrder; loanController = GameObject.FindObjectOfType(typeof(LoanController)) as LoanController; shareHolder = GameObject.FindObjectOfType(typeof(ShareHolder)) as ShareHolder; lastTradesList = GameObject.FindObjectOfType(typeof(LastTradesList)) as LastTradesList; matchEngine = GameObject.FindObjectOfType(typeof(MatchEngine)) as MatchEngine; InvokeRepeating("DistributeBalance", 1, 1); InvokeRepeating("GetData", 5, 5); InvokeRepeating("SetMarketData", 1, 1); InvokeRepeating("GetTime", 1, 1); InvokeRepeating("TimeContador", 0.1f, 0.1f); }