public GoldCupTradeData ParseGCTradeData(string message) { var messageupper = message.ToUpper(); var indexTp = AllIndexOf(messageupper.ToUpper(), "TP"); var indexSL = AllIndexOf(messageupper.ToUpper(), "SL"); var tp1Price = ExtractPrice(indexTp[0] + 3, messageupper); var tp2Price = ExtractPrice(indexTp[1] + 3, messageupper); var slPrice = ExtractPrice(indexSL[0] + 2, messageupper); var entry = ExtractPrice(0, RemoveSubString(slPrice.ToString(), RemoveSubString(tp2Price.ToString(), RemoveSubString(tp1Price.ToString(), messageupper)))); var instrument = ParseInstrument(messageupper).Name; var action = messageupper.IndexOf("SELL") > -1 ? "SELL" : "BUY"; var gctd = new GoldCupTradeData { Action = action, Entry = entry, InstrumentName = instrument, SL = slPrice, TP = tp1Price }; return(gctd); }
public void PlaceGoldCupOrder(GoldCupTradeData goldCupTradeData) { var isLong = goldCupTradeData.Action == "BUY" ? true : false; var price = new PriceService().GetPriceList(goldCupTradeData.InstrumentName).Prices[0]; var units = CalculateUnits(price); if (units >= 1) { if (!isLong) { units *= -1; } PlaceLimitOrder(goldCupTradeData.InstrumentName, goldCupTradeData.TP, goldCupTradeData.SL, goldCupTradeData.Entry, units); } }