public bool runAction(AlgoProcess process) { //Get available amount from process IDictionary <string, int> userCommodities = process.agent.userData.getCommodities(); string commodity = process.commodity.ToString(); int amount = userCommodities[commodity]; //Calculate the buy price: //currentAsk + priceBuffer int priceBuffer = -1; int currentBid = 0; //Find currentBid by using the data from the AMA bool foundPrice = false; for (int i = 0; i <= 9 & !foundPrice; i++) { MQCommodityWrapper current = process.agent.commoditiesInfo[i]; if (current.id == process.commodity) { foundPrice = true; currentBid = current.getBid(); } } int price = currentBid + priceBuffer; //Send request bool success = false; IMarketResponse response = process.comm.SendSellRequest(price, process.commodity, amount); if (response.getType() == ResponseType.buySell) { success = true; MBuySell resp = (MBuySell)response; process.requestID = resp.getID(); } return(success); }
public bool conditionIsMet(AlgoProcess process) { if (process.agent.commoditiesInfo == null) { return(false); } int currentBid = 0; //Find currentBid by using the data from the AMA bool foundPrice = false; for (int i = 0; i < process.agent.commoditiesInfo.Count & !foundPrice; i++) { MQCommodityWrapper current = process.agent.commoditiesInfo[i]; if (current.id == process.commodity) { foundPrice = true; currentBid = current.getBid(); } } return(requiredBid <= currentBid); }