private static int Order(OrderOptions options) { SwitchAccount(options.Account); IgOrderModel igOrder = new IgOrderModel { epic = options.Epic, size = options.PositionSize, currencyCode = "GBP", level = options.Level, limitDistance = options.LimitDistance, stopDistance = options.StopDistance, direction = options.Direction.ToUpper(), dealReference = $"NMCQReference{1}", expiry = options.Expiry }; IgMarkets igMarkets = new IgMarkets(); IgEpicModel epic = igMarkets.GetEpic(session, options.Epic); Console.WriteLine($"Market Code {epic.instrument.newsCode} {epic.instrument.marketId} {epic.instrument.chartCode} Bid: {epic.snapshot.bid}"); PlaceOrder(igOrder); return(0); }
public static List <Market> MarketSearch(string query, string expiry, string prefix, bool getDetail, string excludeList) { IgMarkets igMarkets = new IgMarkets(); string[] quotes = query.Split(','); List <string> excludes = excludeList.Split(',').ToList(); int count = 0; List <Market> parsedList = new List <Market>(); foreach (string ticker in quotes) { MarketSearchModel marketSearch = igMarkets.Get(session, ticker, getDetail); if (marketSearch != null && marketSearch.Markets != null) { foreach (Market market in marketSearch.Markets) { if (market.Expiry == expiry && market.InstrumentType == InstrumentType.Shares && (string.IsNullOrEmpty(prefix) || market.Epic.StartsWith(prefix))) { if (excludes.Count() != 0 && excludes.Where(p => market.InstrumentName.Contains(p.Trim()) && !string.IsNullOrWhiteSpace(p)).Any()) { } else { parsedList.Add(market); count++; } } } } else { Console.WriteLine($"Could not find '{ticker}'."); } } parsedList = parsedList.OrderBy(p => p.InstrumentName).ToList(); parsedList.ForEach(market => Console.WriteLine($"{market.InstrumentName.PadLeft(70)} // {market.Epic.ToString().PadRight(30)} Bid {market.Bid}\tExpiry {market.Expiry} Ticker { market.Ticker } Type { market.InstrumentType }")); Console.WriteLine($"Found {count} stocks."); return(parsedList); }