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);
            }
        }
Example #2
0
 public ctrlMarketRunner(MarketRunner runner)
 {
     System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
     InitializeComponent();
     m_runner                 = runner;
     lblName.Text             = m_runner.Name;
     m_runner.OnUpdateRunner += new MarketRunner.RunnerUpdateDelegate(runner_OnUpdateRunner);
 }
        public static Market FinishedOdds(Market market, bool live, double preVig, double liveVig)
        {
            double overRound             = preVig;
            int    marketRunnerListCount = market.MarketRunnerList.Count;

            if (live)
            {
                overRound = liveVig;
            }

            overRound += 0.015 * (marketRunnerListCount - 2);

            /* weight */
            if (marketRunnerListCount == 2)
            {
                market.Weight = Math.Abs(market.MarketRunnerList[0].Price - market.MarketRunnerList[1].Price);
            }

            if (marketRunnerListCount == 3)
            {
                market.Weight = Math.Abs(market.MarketRunnerList[0].Price + market.MarketRunnerList[1].Price - market.MarketRunnerList[2].Price);
            }

            //  overRound += 0.015 * (marketRunnerListCount - 2);

            List <MarketRunner> tempMarketRunnerList = new List <MarketRunner>();

            foreach (MarketRunner marketRunner in market.MarketRunnerList)
            {
                marketRunner.Probability = marketRunner.Price;
                MarketRunner tempMarketRunner = new MarketRunner
                {
                    Price = marketRunner.Price
                };

                tempMarketRunnerList.Add(tempMarketRunner);
            }

            // steps 1 & 2
            double sum = 0;

            foreach (MarketRunner marketRunner in tempMarketRunnerList)
            {
                marketRunner.Price = 1 / marketRunner.Price;
                sum += marketRunner.Price;
            }

            // step 3
            foreach (MarketRunner marketRunner in tempMarketRunnerList)
            {
                marketRunner.Ratio = marketRunner.Price / sum;
            }

            // step 4
            double uFactor;

            if (marketRunnerListCount == 2)
            {
                MarketRunner marketRunner = market.MarketRunnerList[0];

                if (marketRunner.Price > .5)
                {
                    //   uFactor = ((1 - marketRunner.P) / 0.5 + Math.Abs((0.5 - marketRunner.P) * (1 - marketRunner.P)) / 0.5) * .75 + .25;
                    uFactor = ((1 - marketRunner.Price) / 0.5 + Math.Abs((0.5 - marketRunner.Price) * (1 - marketRunner.Price)) / 0.5) * .75 + .25;
                }
                else
                {
                    uFactor = (marketRunner.Price / 0.5 + Math.Abs((0.5 - marketRunner.Price) * marketRunner.Price) / 0.5) * .75 + .25;

                    //  uFactor = (marketRunner.P / 0.5 + Math.Abs((0.5 - marketRunner.P) * marketRunner.P) / 0.5) * .75 + .25;
                }
            }
            else
            {
                // uFactor = 1.0;
                uFactor = 1 * .75 + 0.25;
            }

            double vFactor = (overRound - 1) * uFactor;

            // steps 6 & 7
            for (int n = 0; n < tempMarketRunnerList.Count; n++)
            {
                //market.MarketRunnerList[n].P = Math.Round(1 / (vFactor * tempMarketRunnerList[n].Ratio + market.MarketRunnerList[n].Probability), 2);
                market.MarketRunnerList[n].Price = Math.Round(1 / (vFactor * tempMarketRunnerList[n].Ratio + market.MarketRunnerList[n].Price), 2);

                if (double.IsNaN(market.MarketRunnerList[n].Price))
                {
                    market.MarketRunnerList[n].Price = 0;
                }
            }

            return(market);
        }
        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);
                }
            }
        }
Example #5
0
        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);
                    //   }
                }
            }
        }
Example #6
0
        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);
                    }
                }
            }
        }
Example #7
0
        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);
                    }
                }
            }
        }
Example #8
0
        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);
                }
            }
        }
Example #9
0
        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);
                    }
                }
            }
        }
Example #10
0
        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);
                    //   }
                }
            }
        }