コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }