private void GetMoneyTwoWaysResults(IDictionary <int, List <Market> > periodMarkets, bool started) { const string tableName = "MNL2"; string[] indexArray = { "iGP", "iGL2", "iSW", "iAdjT", "iAdjS" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); for (int gp = lowerBound0; gp <= upperBound0; gp++) { const string s1 = "A"; const string s2 = "H"; double value1 = GetArrayValue(array, gp, 1, _iSw, _iAdjS, _iAdjT); double value2 = GetArrayValue(array, gp, 2, _iSw, _iAdjS, _iAdjT); double value3 = GetArrayValue(array, gp, 3, _iSw, _iAdjS, _iAdjT); if (value3.IsNotEqualToZero()) { //Logger.Debug("value3 is not equal to zero"); } MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = "ML", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); if (!periodMarkets.ContainsKey(gp)) { List <Market> markets = new List <Market>(); periodMarkets.Add(gp, markets); } market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{gp}{market.Tp}"; periodMarkets[gp].Add(market); } }
public void IsMappedCorrectly() { var competition = new Models.Betfair.Response.Competition { Id = "compId", Name = "compName" }; var homeTeam = new Models.Betfair.Response.Team { SelectionId = "home", Name = "homeTeamName", Metadata = new Metadata { Id = "123456" }, Odds = 3.5m }; var awayTeam = new Models.Betfair.Response.Team { SelectionId = "away", Name = "awayTeamName", Metadata = new Metadata { Id = "987654" }, Odds = 12m }; var source = new Market { Id = "id", Competition = competition, StartTime = DateTime.UtcNow, Teams = new[] { homeTeam, awayTeam } }; var result = MatchOdds.From(source); Assert.Equal(source.Id, result.Id); Assert.Equal(competition.Id, result.CompetitionId); Assert.Equal(competition.Name, result.CompetitionName); Assert.Equal(source.StartTime, result.Date); Assert.Equal(homeTeam.Id, result.HomeTeamId); Assert.Equal(awayTeam.Id, result.AwayTeamId); Assert.Equal(homeTeam.Name, result.HomeTeamName); Assert.Equal(awayTeam.Name, result.AwayTeamName); Assert.Equal(homeTeam.Odds, result.HomeTeamOddsDecimal); Assert.Equal(awayTeam.Odds, result.AwayTeamOddsDecimal); Assert.Equal(OddsConverter.ToFractional(homeTeam.Odds), result.HomeTeamOdds); Assert.Equal(OddsConverter.ToFractional(awayTeam.Odds), result.AwayTeamOdds); }
public void ToFractional_DecimalBetween3And10_Create10RoundingSteps(decimal value, string expected) { //Arrange //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_NoKnownSubDivisibleBy100_FindClosestMatch(decimal value, string expected) { //Arrange //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_PreknownSubstitions_ReturnCorrectFraction(decimal value, string expected) { //Arrange //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_NumberOver5_ReturnCorrectValue() { //Arrange decimal value = 12; string expected = "11/1"; //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_NumberOver5AndHalfNumber_DoubleAndReturnOverTwo() { //Arrange decimal value = 5.5m; string expected = "9/2"; //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_NumberOver5_MinusOneAndReturnOverOne() { //Arrange decimal value = 15; string expected = "14/1"; //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_ComplexFractionOver2_ReturnCorrectFraction() { //Arrange decimal value = 3.2m; string expected = "11/5"; //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_WholeNumberIs2_ReturnEvens() { //Arrange decimal value = 2; string expected = "1/1"; //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
public void ToFractional_WholeNumberOver2_ReturnOverOne() { //Arrange decimal value = 3; string expected = "2/1"; //Act var result = OddsConverter.ToFractional(value); //Assert Assert.Equal(expected, result); }
private static List <LiveGame> GetOddsForCurrentLiveGames(IEnumerable <LiveGame> currentLiveGames) { foreach (var liveGame in currentLiveGames) { var currentOddsUrl = $"https://api.sofascore.com/api/v1/event/{liveGame.Id}/odds/1/all"; using WebClient webClient = new WebClient(); var liveGamesString = webClient.DownloadString(currentOddsUrl); var currentOdds = JsonConvert.DeserializeObject <Odds.RootObject>(liveGamesString); var fullTimeOdds = currentOdds.markets.Where(input => input.marketName == "Full time"); if (fullTimeOdds.Any()) { var closingOdds = fullTimeOdds.First(); var homeTeamClosingOdds = closingOdds.choices.FirstOrDefault(input => input.name == "1"); if (homeTeamClosingOdds != null) { liveGame.HomeTeamClosingOdds = OddsConverter.FractionToDecimalOdds(homeTeamClosingOdds.fractionalValue); } var awayTeamClosingOdds = closingOdds.choices.FirstOrDefault(input => input.name == "2"); if (awayTeamClosingOdds != null) { liveGame.AwayTeamClosingOdds = OddsConverter.FractionToDecimalOdds(awayTeamClosingOdds.fractionalValue); } liveGame.HasCurrentOdds = fullTimeOdds.Count() > 1; } } return((List <LiveGame>)currentLiveGames); }
private void GetTeamTotalsThreeWaysResults(IDictionary <int, List <Market> > periodMarkets, bool started) { const string tableName = "TTL3"; string[] indexArray = { "iGP", "iALT", "iTVH", "iGL3", "iSW" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); for (int period = lowerBound0; period <= upperBound0; period++) { for (int alt = lowerBound1; alt <= upperBound1; alt++) { const string s1 = "U"; const string s2 = "O"; const string s3 = "X"; double value1 = GetArrayValue(array, period, alt, 1, 1, _iSw); double value2 = GetArrayValue(array, period, alt, 1, 2, _iSw); double value4 = GetArrayValue(array, period, alt, 1, 4, _iSw); MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = "ATTL3W", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s2 }; market.MarketRunnerList.Add(marketRunner); // X marketRunner = new MarketRunner { Total = value1, Price = value4, Side = s3 }; market.MarketRunnerList.Add(marketRunner); if (!periodMarkets.ContainsKey(period)) { List <Market> markets = new List <Market>(); periodMarkets.Add(period, markets); } market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{period}{market.Tp}"; periodMarkets[period].Add(market); // market.Tp = "HTTL3W"; value1 = GetArrayValue(array, period, alt, 2, 1, _iSw); value2 = GetArrayValue(array, period, alt, 2, 2, _iSw); double value3 = GetArrayValue(array, period, alt, 2, 3, _iSw); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; market = new Market { Tp = "HTTL3W", Target = marketRunner.Total }; //market.Target = marketRunner.Total; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s3 }; market.MarketRunnerList.Add(marketRunner); if (!periodMarkets.ContainsKey(period)) { List <Market> markets = new List <Market>(); periodMarkets.Add(period, markets); } market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{period}{market.Tp}"; periodMarkets[period].Add(market); } } }
private void GetMainLinesTwoWaysResults(IDictionary <int, List <Market> > periodMarkets, bool started, bool live, Dictionary <string, double> adjust) { //const string tableName = "ML2"; string liveNotLive = live == false ? "ML2" : "SML"; string tableName = liveNotLive; string[] indexArray = { "iGP", "iALT", "iTGT", "iGL2", "iSW", "iAdjS", "iAdjT" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); for (int gp = lowerBound0; gp <= upperBound0; gp++) { for (int altp = lowerBound1; altp <= upperBound1; altp++) { string s1 = "U"; string s2 = "O"; string type = "TL"; //CHECK ADJUSTMENTS string key = $"{type},{gp}"; if (adjust.ContainsKey(key)) { _iAdjT = ToInt16(adjust[key]); } else { _iAdjT = 11; } double value1 = GetArrayValue(array, gp, altp, 2, 1, _iSw, _iAdjS, _iAdjT); double value2 = GetArrayValue(array, gp, altp, 2, 2, _iSw, _iAdjS, _iAdjT); double value3 = GetArrayValue(array, gp, altp, 2, 3, _iSw, _iAdjS, _iAdjT); if (value3.IsNotEqualToZero()) { //Logger.Debug("value3 is not equal to zero"); } MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = type, Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); if (!periodMarkets.ContainsKey(gp)) { List <Market> markets = new List <Market>(); periodMarkets.Add(gp, markets); } market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{gp}{market.Tp}"; periodMarkets[gp].Add(market); // spreads s1 = "A"; s2 = "H"; type = "SP"; //CHECK ADJUSTMENTS key = $"{type},{gp}"; if (adjust.ContainsKey(key)) { _iAdjS = ToInt16(adjust[key]); } else { _iAdjS = 11; } value1 = GetArrayValue(array, gp, altp, 1, 1, _iSw, _iAdjS, _iAdjT); value2 = GetArrayValue(array, gp, altp, 1, 2, _iSw, _iAdjS, _iAdjT); value3 = GetArrayValue(array, gp, altp, 1, 3, _iSw, _iAdjS, _iAdjT); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; market = new Market { Tp = type, Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = -value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); // if (market.MarketRunnerList[0].Price > 0) // { market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{gp}{market.Tp}"; periodMarkets[gp].Add(market); // } } } }
private void GetInningTeamTotalsThreeWaysResults(IDictionary <int, List <Market> > periodMarkets, bool started, bool live) { const int inning = 4; string tableName = live ? "MITT3W" : "ITT3W"; string[] indexArray = { "iGP", "TTRI", "iTVH", "iGL3" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); for (int period = lowerBound0; period <= upperBound0; period++) { for (int alt = lowerBound1; alt <= upperBound1; alt++) { const string s1 = "U"; const string s2 = "O"; const string s3 = "X"; double value1 = GetArrayValue(array, period, alt, 1, 1); double value2 = GetArrayValue(array, period, alt, 1, 2); double value3 = GetArrayValue(array, period, alt, 1, 3); double value4 = GetArrayValue(array, period, alt, 1, 4); // O MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = "ATTL3W", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); // U marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); // X marketRunner = new MarketRunner { Total = value1, Price = value4, Side = s3 }; market.MarketRunnerList.Add(marketRunner); int init = inning + period; if (!periodMarkets.ContainsKey(init)) { List <Market> marketSide = new List <Market>(); periodMarkets.Add(init, marketSide); } // if (value4.IsNotEqualToZero()) // { market = OddsConverter.FinishedOdds(market, started, _threeWayVig, _threeWayVig); market.Key = $"{market.MarketRunnerList[0].Total}{init}{market.Tp}"; periodMarkets[init].Add(market); // } market = new Market { Tp = "HTTL3W" }; value1 = GetArrayValue(array, period, alt, 2, 1); value2 = GetArrayValue(array, period, alt, 2, 2); value3 = GetArrayValue(array, period, alt, 2, 3); value4 = GetArrayValue(array, period, alt, 2, 4); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; market.Target = marketRunner.Total; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value4, Side = s3 }; market.MarketRunnerList.Add(marketRunner); init = inning + period; if (!periodMarkets.ContainsKey(init)) { List <Market> marketSide = new List <Market>(); periodMarkets.Add(init, marketSide); } // if (value4.IsNotEqualToZero()) // { market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{init}{market.Tp}"; periodMarkets[init].Add(market); // } } } }
public static void TwoPointO(LiveGame game, double maxDecimal) { if (game.SetAlgorithms.Any(input => input == 1)) { return; } var teamToWatch = game.HomeTeamClosingOdds < maxDecimal ? 1 : 2; var currentOddsUrl = $"https://api.sofascore.com/api/v1/event/{game.Id}/odds/1/all"; using WebClient webClient = new WebClient(); var liveGamesString = webClient.DownloadString(currentOddsUrl); var currentOdds = JsonConvert.DeserializeObject <Odds.RootObject>(liveGamesString); var fullTimeOdds = currentOdds.markets.Where(input => input.marketName == "Full time"); var currentFullTimeOdds = fullTimeOdds.Skip(1).FirstOrDefault(); var fraction = currentFullTimeOdds?.choices.FirstOrDefault(input => input.name == teamToWatch.ToString()); if (fraction == null) { return; } var odds = OddsConverter.FractionToDecimalOdds(fraction.fractionalValue); if (!(odds > 2.0)) { return; } var bet = new PlacedBet { Id = game.Id, Sport = (int)game.Sport, SportName = game.Sport.ToString(), AlgorithmId = 1, CustomId = game.CustomId, Game = game.GameName, OddsPlaced = odds, TournamentName = game.TournamentName, TournamentId = game.TournamentId, BetPlacedOnTeam = teamToWatch, }; var pending = new Pending { CustomId = game.CustomId, DatePlaced = DateTime.Today.ToString("yyyy-MM-dd"), Sport = game.Sport.ToString(), }; //var pending = new Dictionary<string, string> {{game.CustomId, DateTime.Today.ToString("yyyy-MM-dd")}}; var client = new FirebaseClient(_config); try { //Task<SetResponse> response = client.SetAsync($"placed_bets/{DateTime.Now.Year.ToString()}/{DateTime.Now.Month.ToString()}/{DateTime.Now.Day.ToString()}/{game.Sport.ToString()}/{game.CustomId}", bet); Task <SetResponse> response = client.SetAsync(Helper.GetPlacedBetUrl(DateTime.Now.ToString("yyyy-MM-dd"), game.CustomId, game.Sport.ToString()), bet); Task <SetResponse> reTask = client.SetAsync($"pending_game_evaluation/{game.CustomId}", pending); game.SetAlgorithms.Add(1); Console.WriteLine($"Placed bet on {bet.Game} ({bet.SportName}) on team {bet.BetPlacedOnTeam} to odds {bet.OddsPlaced}"); Console.WriteLine(); } catch (Exception e) { Console.WriteLine("Could not add the bet. See error message: " + e.Message); } }
private void GetMainLinesThreeWaysResults(IDictionary <int, List <Market> > periodMarkets, bool started, bool live) { string tableName = live ? "MGML3W" : "GML3W"; string[] indexArray = { "GP", "altp", "iTGT", "iGL3" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); for (int period = lowerBound0; period <= upperBound0; period++) { for (int alt = lowerBound1; alt <= upperBound1; alt++) { string s1 = "U"; string s2 = "O"; const string s3 = "X"; double value1 = GetArrayValue(array, period, alt, 2, 1); double value2 = GetArrayValue(array, period, alt, 2, 2); double value3 = GetArrayValue(array, period, alt, 2, 3); double value4 = GetArrayValue(array, period, alt, 2, 4); MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = "TL3W", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.Target = marketRunner.Total; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value4, Side = s3 }; market.MarketRunnerList.Add(marketRunner); if (!periodMarkets.ContainsKey(period)) { List <Market> marketSide = new List <Market>(); periodMarkets.Add(period, marketSide); } if (value4.IsNotEqualToZero()) { market = OddsConverter.FinishedOdds(market, started, _threeWayVig, _threeWayVig); market.Key = $"{market.MarketRunnerList[0].Total}{period}{market.Tp}"; periodMarkets[period].Add(market); } // spreads s1 = "A"; s2 = "H"; value1 = GetArrayValue(array, period, alt, 1, 1); value2 = GetArrayValue(array, period, alt, 1, 2); value3 = GetArrayValue(array, period, alt, 1, 3); value4 = GetArrayValue(array, period, alt, 1, 4); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; market = new Market { Tp = "SP3W", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = -value1, Price = value3, Side = s2 }; market.Target = marketRunner.Total; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value4, Side = s3 }; market.MarketRunnerList.Add(marketRunner); if (value4.IsNotEqualToZero()) { market = OddsConverter.FinishedOdds(market, started, _threeWayVig, _threeWayVig); market.Key = $"{market.MarketRunnerList[0].Total}{period}{market.Tp}"; periodMarkets[period].Add(market); } } } }
private void GetInningMainLinesTwoWaysResults(IDictionary <int, List <Market> > periodMarkets, bool started, bool live) { const int inning = 4; string tableName = live ? "Miml2w" : "iml2w"; string[] indexArray = { "iGP", "alti", "iTGT", "iGL2" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); for (int period = lowerBound0; period <= upperBound0; period++) { for (int alt = lowerBound1; alt <= upperBound1; alt++) { try { string s1 = "U"; string s2 = "O"; double value1 = GetArrayValue(array, period, alt, 2, 1); double value2 = GetArrayValue(array, period, alt, 2, 2); double value3 = GetArrayValue(array, period, alt, 2, 3); MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = "TL", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); int init = inning + period; if (!periodMarkets.ContainsKey(init)) { List <Market> marketSide = new List <Market>(); periodMarkets.Add(init, marketSide); } market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{init}{market.Tp}"; periodMarkets[init].Add(market); s1 = "A"; s2 = "H"; value1 = GetArrayValue(array, period, alt, 1, 1); value2 = GetArrayValue(array, period, alt, 1, 2); value3 = GetArrayValue(array, period, alt, 1, 3); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; market = new Market { Tp = "SP", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = -value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); decimal test = ToDecimal(market.MarketRunnerList[0].Total); int count = BitConverter.GetBytes(decimal.GetBits(test)[3])[2]; market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{init}{market.Tp}"; periodMarkets[init].Add(market); } catch (Exception exception) { Logger.Error(exception); } } } }
private void GetMainLinesTwoWaysResults(IDictionary <int, List <Market> > periodMarkets, bool started, bool live) { string tableName = live ? "Mgml2w" : "gml2w"; string[] indexArray = { "GP", "altp", "iTGT", "iGL2" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); for (int gp = lowerBound0; gp <= upperBound0; gp++) { for (int altp = lowerBound1; altp <= upperBound1; altp++) { string s1 = "U"; string s2 = "O"; double value1 = GetArrayValue(array, gp, altp, 2, 1); double value2 = GetArrayValue(array, gp, altp, 2, 2); double value3 = GetArrayValue(array, gp, altp, 2, 3); MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = "TL", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); if (!periodMarkets.ContainsKey(gp)) { List <Market> marketSide = new List <Market>(); periodMarkets.Add(gp, marketSide); } market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{gp}{market.Tp}"; periodMarkets[gp].Add(market); //------------------spread------------------------------------------ s1 = "A"; s2 = "H"; value1 = GetArrayValue(array, gp, altp, 1, 1); value2 = GetArrayValue(array, gp, altp, 1, 2); value3 = GetArrayValue(array, gp, altp, 1, 3); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; market = new Market { Tp = "SP", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = -value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{gp}{market.Tp}"; periodMarkets[gp].Add(market); } } }
private void GetGoalieProps(IDictionary <int, List <Market> > periodMarkets, bool started, bool live, Dictionary <string, double> adjust) { const string liveNotLive = "GGAP"; const string tableName = liveNotLive; string[] indexArray = { "iTVH", "iGO", "ST", "iGL2" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); int lowerBound2 = array.GetLowerBound(2); int upperBound2 = array.GetUpperBound(2); int lowerBound3 = array.GetLowerBound(3); int upperBound3 = array.GetUpperBound(3); const string s1 = "U"; const string s2 = "O"; //string[] types = { "GA" }; string metricStr = "GA"; //get type string for (int side = lowerBound0; side <= upperBound0; side++) //side { string sideStr = side == 1 ? "away" : "home"; for (int player = lowerBound1; player <= upperBound1; player++) //side { //Player playerEl = gm.roster.players.Find(player => player.side == sideStr & player.num == pNum); //create a new player for (int alts = lowerBound2; alts <= upperBound2; alts++) { double value1 = GetArrayValue(array, side, player, alts, 1); double value2 = GetArrayValue(array, side, player, alts, 2); double value3 = GetArrayValue(array, side, player, alts, 3); Market market = new Market { Tp = metricStr, Target = value1, Player = $"{sideStr}_{player}" }; market.MarketRunnerList.Add(new MarketRunner { Total = value1, Price = value2, Side = s1 }); market.MarketRunnerList.Add(new MarketRunner { Total = value1, Price = value3, Side = s2 }); market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}1{market.Tp}"; if (!periodMarkets.ContainsKey(1)) { periodMarkets.Add(1, new List <Market>()); } periodMarkets[1].Add(market); } } } }
private void GetMainLinesTwoWaysResultsLive(IDictionary <int, List <Market> > periodMarkets, bool started, bool live) { const string liveNotLive = "SML"; const string tableName = liveNotLive; string[] indexArray = { "iGP", "iALT", "iTGT", "iGL2", "iAdjT", "iAdjS" }; Array array = GetTableArray(tableName, indexArray); int lowerBound0 = array.GetLowerBound(0); int upperBound0 = array.GetUpperBound(0); int lowerBound1 = array.GetLowerBound(1); int upperBound1 = array.GetUpperBound(1); for (int gp = lowerBound0; gp <= upperBound0; gp++) { for (int altp = lowerBound1; altp <= upperBound1; altp++) { string s1 = "U"; string s2 = "O"; double value1 = GetArrayValue(array, gp, altp, 2, 1, _iAdjS, _iAdjT); double value2 = GetArrayValue(array, gp, altp, 2, 2, _iAdjS, _iAdjT); double value3 = GetArrayValue(array, gp, altp, 2, 3, _iAdjS, _iAdjT); if (value3.IsNotEqualToZero()) { //Logger.Debug("value3 is not equal to zero"); } MarketRunner marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; Market market = new Market { Tp = "TL", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); if (!periodMarkets.ContainsKey(gp)) { List <Market> markets = new List <Market>(); periodMarkets.Add(gp, markets); } market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{gp}{market.Tp}"; periodMarkets[gp].Add(market); // spreads // get totals s1 = "A"; s2 = "H"; value1 = GetArrayValue(array, gp, altp, 1, 1, _iAdjS, _iAdjT); value2 = GetArrayValue(array, gp, altp, 1, 2, _iAdjS, _iAdjT); value3 = GetArrayValue(array, gp, altp, 1, 3, _iAdjS, _iAdjT); marketRunner = new MarketRunner { Total = value1, Price = value2, Side = s1 }; market = new Market { Tp = "SP", Target = marketRunner.Total }; market.MarketRunnerList.Add(marketRunner); marketRunner = new MarketRunner { Total = -value1, Price = value3, Side = s2 }; market.MarketRunnerList.Add(marketRunner); if (market.MarketRunnerList[0].Price > 0) { market = OddsConverter.FinishedOdds(market, started, _preVig, _liveVig); market.Key = $"{market.MarketRunnerList[0].Total}{gp}{market.Tp}"; periodMarkets[gp].Add(market); } } } }