bool IsBuy_ConditionForTurn()
        {
            SumVariable Var1 = new SumVariable();

            BasicFinancial.InitialDate(TechData.TechData[i].date);
            int temp  = BasicFinancial.RevenueInt;
            int temp1 = BasicFinancial.BasicFinancialInt;

            if (temp1 - 3 < 0)
            {
                return(false);
            }
            if (
                BasicFinancial.RevenueList[temp].MonthRiseRatioInSameMonth > 0 &&
                BasicFinancial.RevenueList[temp - 1].MonthRiseRatioInSameMonth > 0 &&
                BasicFinancial.DataList[temp1].EPS > 0 &&
                BasicFinancial.DataList[temp1 - 1].EPS < 0 &&
                BasicFinancial.DataList[temp1].EPS - BasicFinancial.DataList[temp1 - 1].EPS > 0 &&
                BasicFinancial.DataList[temp1 - 1].EPS - BasicFinancial.DataList[temp1 - 2].EPS > 0

                && BasicFinancial.DataList[temp1].LongTermLiabilities / BasicFinancial.DataList[temp1].AllLiabilities < 0.6
                )
            {
                YearsSum(1, BasicFinancial.DataList[temp1].Date, ref Var1);
                if (Var1.FCF > 0)
                {
                    return(true);
                }
            }

            return(false);
        }
        void YearsSum(int countYear, DateTime date, ref SumVariable sum)//每年累家數值 例如CashFlow 等
        {
            int  temp         = BasicFinancial.BasicFinancialInt;
            int  countY       = 0;
            bool startToCount = false;
            int  countT       = 0;//數累加了多少次



            if (countYear == 1)
            {
                for (int i = 0; i < 4; i++)
                {
                    if (temp - i < 0)
                    {
                        return;
                    }

                    sum.FCF += BasicFinancial.DataList[temp - i].CashFromOperationActivity -
                               BasicFinancial.DataList[temp - i].CashFromInvestingActivity;
                    sum.ROE += BasicFinancial.DataList[temp - i].ROE;
                    sum.NetIncomeAfterTax      += BasicFinancial.DataList[temp - i].ProfitAfterTax;
                    sum.NetIncomeAfterTaxRatio += BasicFinancial.DataList[temp - i].ProfitAfterTaxRatio;
                    sum.CashFromOperation      += BasicFinancial.DataList[temp - i].CashFromOperationActivity;
                }

                sum.NetIncomeAfterTaxRatio = sum.NetIncomeAfterTaxRatio / 4;
                return;
            }

            if (countYear != 1)
            {
                for (int i = temp; i >= 0; i--)
                {
                    if (BasicFinancial.DataList[i].Date.Month == 12)
                    {
                        countY++;
                        startToCount = true;
                    }

                    if (countY == countYear + 1)
                    {
                        return;
                    }

                    if (startToCount)
                    {
                        sum.FCF += BasicFinancial.DataList[i].CashFromOperationActivity -
                                   BasicFinancial.DataList[i].CashFromInvestingActivity;
                        sum.ROE += BasicFinancial.DataList[i].ROE;
                        sum.NetIncomeAfterTax      += BasicFinancial.DataList[i].ProfitAfterTax;
                        sum.NetIncomeAfterTaxRatio += BasicFinancial.DataList[i].ProfitAfterTaxRatio;
                        sum.CashFromOperation      += BasicFinancial.DataList[i].CashFromOperationActivity;
                        countT++;
                    }
                }

                sum.NetIncomeAfterTaxRatio = sum.NetIncomeAfterTaxRatio / countT;
            }
        }
        bool MinPriceBuy_IsBuyCondition()
        {
            SumVariable Var5 = new SumVariable();
            SumVariable Var1 = new SumVariable();

            BasicFinancial.InitialDate(TechData.TechData[i].date);
            int temp  = BasicFinancial.RevenueInt;
            int temp1 = BasicFinancial.BasicFinancialInt;

            YearsSum(1, BasicFinancial.DataList[temp1].Date, ref Var1);


            if (temp1 == 0 || temp == 0)
            {
                return(false);
            }

            if ((BasicFinancial.RevenueList[temp - 1].MonthRiseRatioInSameMonth > 0 &&
                 (BasicFinancial.RevenueList[temp].MonthRiseRatioInSameMonth > 0
                 )) ||
                (BasicFinancial.DataList[temp1].EPS - BasicFinancial.DataList[temp1 - 1].EPS > 0))
            {
                {
                    return(true);
                }
            }

            return(false);
        }
        bool _GetRise_IsBuyCondition()
        {
            SumVariable Var5 = new SumVariable();
            SumVariable Var1 = new SumVariable();

            BasicFinancial.InitialDate(TechData.TechData[i].date);
            int temp  = BasicFinancial.RevenueInt;
            int temp1 = BasicFinancial.BasicFinancialInt;

            YearsSum(1, BasicFinancial.DataList[temp1].Date, ref Var1);



            if (
                Bargin.bargin[i - 1].ForeignInvestorNetBuySell + Bargin.bargin[i - 1].InvestmentTruthNetBuySell
                + Bargin.bargin[i - 1].DealerNetBuySell > 100
                &&
                Bargin.bargin[i - 2].ForeignInvestorNetBuySell + Bargin.bargin[i - 2].InvestmentTruthNetBuySell
                + Bargin.bargin[i - 2].DealerNetBuySell > 100)
            {
                //if (((Bargin.bargin[i - 1].ForeignInvestorNetBuySell > 50 && Bargin.bargin[i - 1].InvestmentTruthNetBuySell > 50)
                //    || (Bargin.bargin[i - 1].ForeignInvestorNetBuySell > 50 && Bargin.bargin[i - 1].DealerNetBuySell > 50)
                //     || (Bargin.bargin[i - 1].DealerNetBuySell > 50 && Bargin.bargin[i - 1].InvestmentTruthNetBuySell > 50))
                //    && Bargin.bargin[i - 1].MarginStockRatio <= 3
                //    )
                {
                    return(true);
                }
            }

            return(false);
        }
        bool IsBuy_ConditionForRevenue()
        {
            SumVariable Var1 = new SumVariable();

            BasicFinancial.InitialDate(TechData.TechData[i].date);
            int temp  = BasicFinancial.RevenueInt;
            int temp1 = BasicFinancial.BasicFinancialInt;

            if (temp1 - 2 < 0)
            {
                return(false);
            }

            if (

                BasicFinancial.DataList[temp1].EPS > 0 &&
                BasicFinancial.DataList[temp1 - 1].EPS > 0 &&
                BasicFinancial.RevenueList[temp].MonthRiseRatioInSameMonth > 0 &&
                BasicFinancial.RevenueList[temp - 1].MonthRiseRatioInSameMonth > 0

                && BasicFinancial.DataList[temp1].LongTermLiabilities / BasicFinancial.DataList[temp1].AllLiabilities < 0.5
                )
            {
                return(true);
            }

            return(false);
        }
        bool IsBuy_Condition()
        {
            SumVariable Var5 = new SumVariable();
            SumVariable Var1 = new SumVariable();

            BasicFinancial.InitialDate(TechData.TechData[i].date);
            int temp  = BasicFinancial.RevenueInt;
            int temp1 = BasicFinancial.BasicFinancialInt;

            // YearsSum(1, BasicFinancial.DataList[temp1].Date, ref Var1);//啟昇

            if (temp1 - 2 < 0)
            {
                return(false);
            }

            if (

                BasicFinancial.RevenueList[temp].MonthRiseRatioInSameMonth > -5 &&
                BasicFinancial.RevenueList[temp - 1].MonthRiseRatioInSameMonth > -5 &&
                BasicFinancial.RevenueList[temp - 2].MonthRiseRatioInSameMonth > -5

                && BasicFinancial.RevenueList[temp].MonthRiseRatioInSameMonth +
                BasicFinancial.RevenueList[temp - 1].MonthRiseRatioInSameMonth
                > 20
                ///////////////啟昇

                && BasicFinancial.DataList[temp1].LongTermLiabilities / BasicFinancial.DataList[temp1].AllLiabilities < 0.5
                )
            {
                //return true;
                YearsSum(5, BasicFinancial.DataList[temp1].Date, ref Var5);
                if (
                    Var5.FCF > 0 &&
                    Var5.ROE / 5 >= 10 &&//ROE 15改成10
                    Var5.NetIncomeAfterTaxRatio / 5 >= 10 && Var5.CashFromOperation / Var5.NetIncomeAfterTax >= 0.5
                    )
                {
                    YearsSum(1, BasicFinancial.DataList[temp1].Date, ref Var1);
                    if (
                        Var1.FCF > 0 &&
                        Var1.ROE >= 10 &&
                        Var1.NetIncomeAfterTaxRatio >= 10
                        )
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
        bool IsBuy_ConditionForGetRise()
        {
            SumVariable Var5 = new SumVariable();
            SumVariable Var1 = new SumVariable();

            BasicFinancial.InitialDate(TechData.TechData[i].date);
            int temp  = BasicFinancial.RevenueInt;
            int temp1 = BasicFinancial.BasicFinancialInt;

            if (temp1 >= BasicFinancial.DataList.Count)
            {
                return(false);
            }

            YearsSum(1, BasicFinancial.DataList[temp1].Date, ref Var1);//啟昇

            if (temp1 - 2 < 0)
            {
                return(false);
            }

            if (
                ((BasicFinancial.DataList[temp1].EPS - BasicFinancial.DataList[temp1 - 1].EPS > 0 && (BasicFinancial.DataList[temp1 - 1].EPS - BasicFinancial.DataList[temp1 - 2].EPS > 0))
                 ||
                 (BasicFinancial.RevenueList[temp].MonthRiseRatioInSameMonth > -10 &&
                  BasicFinancial.RevenueList[temp - 1].MonthRiseRatioInSameMonth > -10
                 )
                 //||
                 //(BasicFinancial.RevenueList[temp].MonthRevenueRiseRatio>30
                 //&&BasicFinancial.RevenueList[temp-1].MonthRevenueRiseRatio>30)
                ) &&
                BasicFinancial.DataList[temp1].LongTermLiabilities / BasicFinancial.DataList[temp1].AllLiabilities < 0.8
                )
            {
                return(true);
            }

            return(false);
        }