Example #1
0
        public bool SellCondition(
            ref SimulationVariable simulationVariable,
            ref DataList dataList,
            ref BasicFinancialReportListModel financialdata, int j)
        {
            if (simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment > 0)
            {
                CountRaiseDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountRaiseDays = 0;
            }

            simulationVariable.MoveStopLossPercentage = Acc;
            if (
                (simulationVariable.Accumulation > 6) ||// && dataList.TechData[j].ReturnOnInvestment < 4)
                simulationVariable.Accumulation < -5 ||
                CountRaiseDays == 5
                )
            {
                CountRaiseDays = 0;
                return(true);
            }
            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (!simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment < 0)
            {
                CountDropDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountDropDays = 0;
            }

            if (StartBuy)
            {
                StartBuy = false;
                return(true);
            }


            if (CountDropDays == CountDropDaysParameter
                //|| dataList.ReturnValue("CountDropinDays-20", j) > 9
                )

            {
                CountDropDays = 0;
                return(true);

                StartBuy       = true;
                ReferencePrice = dataList.TechData[j].ClosePrice;
            }

            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (dataList.CoditionSatified("MoveAverageValue-1", "MoveAverageValue-30", j, Times: 2) &&
                dataList.CoditionSatified("MoveAverageValue-1", "MoveAverageValue-30", j, 3, false) &&
                dataList.TechData[j].ReturnOnInvestment >= 5 &&
                dataList.TechData[j].ReturnOnInvestment <= 6
                //&& dataList.TechData[j].ClosePrice >= 20
                //&& dataList.TechData[j].Date.Month != 3
                //&& dataList.TechData[j].Date.Month != 4

                //&& dataList.TechData[j].Date.Month != 6

                && dataList.TechData[j].Date.Month == Acc


                //&& (dataList.TechData[j].ClosePrice>=40 || dataList.TechData[j].ClosePrice <= 20)
                && dataList.CoditionSatifiedIsBiggerValue("MoveAverageValue-30", j, 1400) &&
                !dataList.CoditionSatifiedIsBiggerValue("MoveAverageValue-30", j, 7400)
                )
            {
                return(true);
            }

            return(false);
        }
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment > 0)
            {
                CountDropDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountDropDays = 0;
            }


            if (
                (simulationVariable.Accumulation > StopLossAndRaise) ||
                simulationVariable.Accumulation < -StopLossAndRaise ||
                CountDropDays == Acc

                )
            {
                CountDropDays = 0;
                return(true);
            }

            return(false);
        }
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            //if ((simulationVariable.Accumulation > Acc)//&& dataList.ReturnValue("MoveAverageValue-20", j) < dataList.ReturnValue("MoveAverageValue-1", j) * 1.1)
            //    || (simulationVariable.Accumulation < -StopLoss)// //|| simulationVariable.MaxRatio > 5
            //                                             //|| (simulationVariable.HaveStockDayContainHoliday > 20 && simulationVariable.Accumulation > 1)
            //     )
            return(true);

            return(false);
        }
Example #6
0
 public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
 {
     simulationVariable.MoveStopLossPercentage = 5;
     if (simulationVariable.Accumulation > Acc ||
         simulationVariable.Accumulation < -5
         )//|| simulationVariable.ConditionSatifiedMoveStopLoss("MoveStopLossPercentage"))//simulationVariable.ConditionSatifiedMoveStopLoss("MoveStopLossPercentage"))// || dataList.CoditionSatified("MinValue-1", "MinValue-10", j))
     {
         return(true);
     }
     return(false);
 }
 public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
 {
     if (
         dataList.CoditionSatified("MoveAverageValue-1", "BollingerBandsDown-20", j) &&
         dataList.CoditionSatified("BollingerBandsDown-20", "MoveAverageValue-1", j - 1)
         )
     {
         return(true);
     }
     return(false);
 }
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (
                simulationVariable.Accumulation > 1 ||
                simulationVariable.Accumulation < -1
                )
            {
                return(true);
            }

            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (
                dataList.ReturnValue("CountDropinDays-20", j) > 9

                )
            {
                return(true);
            }

            return(false);
        }
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (simulationVariable.Accumulation > 4 ||
                simulationVariable.Accumulation < -4 ||
                (simulationVariable.HaveStockDayContainHoliday > 20 && simulationVariable.Accumulation > 1)
                )
            {
                return(true);
            }

            return(false);
        }
 public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
 {
     simulationVariable.MoveStopLossPercentage = Acc;
     if ((simulationVariable.Accumulation > 7 && dataList.TechData[j].ReturnOnInvestment < 2) ||
         simulationVariable.Accumulation < -7 ||
         (simulationVariable.HaveStockDay > 16 && simulationVariable.Accumulation < -2) ||
         (simulationVariable.HaveStockDay > 15 && simulationVariable.Accumulation > 1 && dataList.TechData[j].ReturnOnInvestment < 2)
         )
     {
         return(true);
     }
     return(false);
 }
 public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
 {
     simulationVariable.MoveStopLossPercentage = 5;
     if ((dataList.ReturnValue("CountRaiseinDays-20", j) > 9 && simulationVariable.Accumulation > 1) ||
         (dataList.ReturnValue("CountRaiseinDays-20", j) > 9 && simulationVariable.Accumulation < -2) ||
         simulationVariable.Accumulation > 4 ||
         simulationVariable.Accumulation < -4
         )
     {
         return(true);
     }
     return(false);
 }
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            bool fin = financialdata.ComparerFinancial("QEarningPerShare", 0, 1, false);

            if (
                (simulationVariable.Accumulation > Acc ||
                 simulationVariable.Accumulation < -Acc) &&
                (dataList.TechData[j].Date.Month == 1 || dataList.TechData[j].Date.Month == 2 || dataList.TechData[j].Date.Month == 3))
            {
                return(true);
            }

            return(false);
        }
Example #14
0
        //double IStrategy.Acc { get { return Acc; } set => this.Acc = Acc; }

        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (dataList.CoditionSatified("MoveAverageValue-1", "BollingerBandsDown-20", j) &&
                dataList.CoditionSatified("BollingerBandsDown-20", "MoveAverageValue-1", j - 1) &&
                dataList.CoditionSatifiedIsBiggerValue("MoveAverageValue-30", j, 200)
                //&& double.Parse(dataList.TechData[j].ClosePrice.ToString()) * double.Parse(dataList.TechData[j].Volume.ToString()) > 10000
                )    //&& dataList.CoditionSatified("BollingerBandsDown-5", "MoveAverageValue-1", j) && financialdata.ComparerFinancial("QCashFlowPerShare",3,4))
                     //   if (dataList.CoditionSatified("MoveAverageValue-1", "MoveAverageValue-20", j)
                     //&& dataList.CoditionSatified("MoveAverageValue-20", "MoveAverageValue-1", j - 1)
                     //       )
            {
                return(true);
            }
            return(false);
        }
Example #15
0
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            //if (dataList.TechData[j].ReturnOnInvestment > 5)
            //    return false;

            if (simulationVariable.Accumulation > 3 ||
                simulationVariable.Accumulation < -3 || simulationVariable.MaxRatio > 4 ||
                (simulationVariable.HaveStockDayContainHoliday > 10 && simulationVariable.Accumulation > 1)
                )
            {
                return(true);
            }

            return(false);
        }
Example #16
0
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            //return true;
            //if (j < 0 || dataList.TechData.Count - j <= 0 || financialdata.RevenueInt - 1 < 0 || financialdata.RevenueInt >= financialdata.RevenueList.Count)
            //    return false;

            if (
                //dataList.TechData[j].Date.Month ==6 || dataList.TechData[j].Date.Month==9 || dataList.TechData[j].Date.Month==12 || dataList.TechData[j].Date.Month==4
                simulationVariable.Accumulation > 20 || simulationVariable.Accumulation < -20
                )
            {
                return(true);
            }

            return(false);
        }
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            simulationVariable.MoveStopLossPercentage = Acc;
            if (
                //(dataList.ReturnValue("CountRaiseinDays-20", j) > 9 &&  simulationVariable.Accumulation > 1)
                //|| (dataList.ReturnValue("CountRaiseinDays-20", j) > 9 && simulationVariable.Accumulation < -2)
                //|| simulationVariable.Accumulation >4

                simulationVariable.Accumulation > 4 ||
                simulationVariable.Accumulation < -4 ||
                (simulationVariable.HaveStockDayContainHoliday > 10 && simulationVariable.Accumulation > 1)
                )
            {
                return(true);
            }
            return(false);
        }
Example #18
0
        public static void ProcessDataRecv(object data, SIMVAR_CATEGORY category)
        {
            switch (category)
            {
            case SIMVAR_CATEGORY.ENGINE_DATA:
                EngineDataStruct engData = (EngineDataStruct)data;
                SimulationVariable.SetValue(_monitoredSimVars["GENERAL ENG THROTTLE LEVER POSITION:1"], (float)(Math.Truncate(engData.GENERAL_ENG_THROTTLE_LEVER_POSITION_1 * 1000) / 1000));
                SimulationVariable.SetValue(_monitoredSimVars["GENERAL ENG THROTTLE LEVER POSITION:2"], (float)(Math.Truncate(engData.GENERAL_ENG_THROTTLE_LEVER_POSITION_2 * 1000) / 1000));
                break;

            case SIMVAR_CATEGORY.AIRCRAFT_MISCELANEOUS:
                AircraftMiscelaneousDataStruct miscData = (AircraftMiscelaneousDataStruct)data;
                SimulationVariable.SetValue(_monitoredSimVars["CABIN NO SMOKING ALERT SWITCH"], miscData.CABIN_NO_SMOKING_ALERT_SWITCH);
                SimulationVariable.SetValue(_monitoredSimVars["CABIN SEATBELTS ALERT SWITCH"], miscData.CABIN_SEATBELTS_ALERT_SWITCH);
                break;

            case SIMVAR_CATEGORY.CONTROLS:
                AircraftControlsDataStruct controlsData = (AircraftControlsDataStruct)data;
                SimulationVariable.SetValue(_monitoredSimVars["BRAKE PARKING INDICATOR"], controlsData.BRAKE_PARKING_INDICATOR);
                SimulationVariable.SetValue(_monitoredSimVars["BRAKE PARKING POSITION"], controlsData.BRAKE_PARKING_POSITION);
                SimulationVariable.SetValue(_monitoredSimVars["FLAPS HANDLE PERCENT"], controlsData.FLAPS_HANDLE_PERCENT);
                SimulationVariable.SetValue(_monitoredSimVars["FLAPS HANDLE INDEX"], controlsData.FLAPS_HANDLE_INDEX);
                break;

            case SIMVAR_CATEGORY.FLIGHT_INSTRUMENTATION:
                AircraftFlightInstrumentationData instrData = (AircraftFlightInstrumentationData)data;
                SimulationVariable.SetValue(_monitoredSimVars["ATTITUDE INDICATOR PITCH DEGREES"], instrData.ATTITUDE_INDICATOR_PITCH_DEGREES);
                SimulationVariable.SetValue(_monitoredSimVars["ATTITUDE INDICATOR BANK DEGREES"], instrData.ATTITUDE_INDICATOR_BANK_DEGREES);
                SimulationVariable.SetValue(_monitoredSimVars["WISKEY COMPASS INDICATION DEGREES"], instrData.WISKEY_COMPASS_INDICATION_DEGREES);
                SimulationVariable.SetValue(_monitoredSimVars["INDICATED ALTITUDE"], instrData.INDICATED_ALTITUDE);
                SimulationVariable.SetValue(_monitoredSimVars["AIRSPEED INDICATED"], instrData.AIRSPEED_INDICATED);
                SimulationVariable.SetValue(_monitoredSimVars["VERTICAL SPEED"], instrData.VERTICAL_SPEED);

                ACInstrData = instrData;

                break;

            case SIMVAR_CATEGORY.LANDING_GEAR:
                AircraftLandingGearDataStruct gearData = (AircraftLandingGearDataStruct)data;
                SimulationVariable.SetValue(_monitoredSimVars["GEAR TOTAL PCT EXTENDED"], (float)(Math.Truncate(gearData.GEAR_TOTAL_PCT_EXTENDED * 10000) / 10000));
                break;

            case SIMVAR_CATEGORY.OTHER:
                break;
            }
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (!simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment < 0)
            {
                CountDropDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountDropDays = 0;
            }

            if (CountDropDays == CountDropDaysParameter)
            {
                CountDropDays = 0;
                return(true);
            }

            return(false);
        }
        public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            //if (j < 0 || dataList.TechData.Count - j <= 0 || financialdata.RevenueInt - 1 < 0 || financialdata.RevenueInt >= financialdata.RevenueList.Count)
            //    return false;

            if (
                //dataList.TechData[j].CashYieldRate <= 2.5
                //|| financialdata.RevenueList[financialdata.RevenueInt].YoYPercentage_MonthlySale < -20
                //|| (financialdata.RevenueList[financialdata.RevenueInt].YoYPercentage_MonthlySale < -10 && financialdata.RevenueList[financialdata.RevenueInt - 1].YoYPercentage_MonthlySale < -10)
                simulationVariable.Accumulation > 20 || //|| !ValuationConditionSatisfied(ref financialdata, valuationParameter)
                simulationVariable.Accumulation < -20

                )
            {
                return(true);
            }

            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (j - 2 < 0)
            {
                return(false);
            }
            if (!simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment < 0)
            {
                CountDropDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountDropDays = 0;
            }

            if (Company != 0)
            {
                CheckCompany = true;
            }

            if (//CountDropDays==3
                //dataList.TechData[j-1].ReturnOnInvestment > Var && dataList.TechData[j-1].ReturnOnInvestment<Var+1
                dataList.TechData[j - 1].ClosePrice > dataList.TechData[j - 1].OpenPrice
                //&& dataList.TechData[j - 2].ClosePrice < dataList.TechData[j - 2].OpenPrice
                //&& dataList.TechData[j ].OpenPrice < dataList.TechData[j - 1].HighestPrice
                && dataList.TechData[j].OpenPrice < dataList.TechData[j - 1].LowestPrice


                //&& dataList.TechData[j].OpenPrice > dataList.TechData[j-1].ClosePrice
                //    && dataList.TechData[j-1].OpenPrice < dataList.TechData[j - 2].HighestPrice
                //((CheckCompany && Company == dataList.TechData[j].Company ) || !CheckCompany)
                //&&dataList.ReturnValue("MoveAverageValue-20", j - 1)  < dataList.ReturnValue("MoveAverageValue-1", j - 1) * Var
                //&& dataList.ReturnValue("MoveAverageValue-20", j) > dataList.ReturnValue("MoveAverageValue-1", j) * Var
                && dataList.ReturnValue("MinValue-20", j) > 200)//CountDropDays == CountDropDaysParameter )

            {
                CountDropDays = 0;
                return(true);
            }

            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (!simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment < 0)
            {
                CountDropDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountDropDays = 0;
            }

            if (
                dataList.ReturnValue("MinValue-10", j) == double.Parse(dataList.TechData[j].Volume.ToString()) &&
                (dataList.TechData[j].Date.Month == 7 || dataList.TechData[j].Date.Month == 8) &&
                dataList.CoditionSatified("BollingerBandsDown-20", "MoveAverageValue-1", j)) //&& dataList.CoditionSatified("BollingerBandsDown-5", "MoveAverageValue-1", j) && financialdata.ComparerFinancial("QCashFlowPerShare",3,4))
            {
                return(true);
            }

            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (!simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment > 0)
            {
                CountRaiseDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountRaiseDays = 0;
            }


            //if (PreStartBuy && dataList.TechData[j].ReturnOnInvestment < 0)
            //{
            //    StartBuy = true;
            //}
            //else if (PreStartBuy && dataList.TechData[j].ReturnOnInvestment > 0)
            //{
            //    PreStartBuy = false;
            //}

            if (CountRaiseDays == CountRaiseDaysParameter)
            {
                StartBuy = true;
            }



            if (StartBuy
                //|| dataList.ReturnValue("CountRaiseinDays-20", j) > 6
                )
            {
                PreStartBuy = false;
                StartBuy    = false;
                return(true);
            }

            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            if (!simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment > 0)
            {
                CountRaiseDays++;
            }
            else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy)
            {
                CountRaiseDays = 0;
            }


            if (CountRaiseDays == 3
                //|| dataList.ReturnValue("CountDropinDays-20", j) > 9
                )

            {
                //CountRaiseDays = 0;
                return(true);
            }

            return(false);
        }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            //return true;
            if (financialdata.FinancialDataList.Count == 0)
            {
                return(false);
            }

            if (financialdata.FinancialDataList[financialdata.BasicFinancialInt].EarningPerShare_Consol == null ||
                financialdata.FinancialDataList[financialdata.BasicFinancialInt].BPS_A__Consol == null ||
                financialdata.FinancialDataList[financialdata.BasicFinancialInt].CashFlow_Operating_Consol == null)
            {
                return(false);
            }


            double?EPS = financialdata.FinancialDataList[financialdata.BasicFinancialInt].EarningPerShare_Consol;
            double?BPS = financialdata.FinancialDataList[financialdata.BasicFinancialInt].BPS_A__Consol;
            double?OperationCashFlow         = financialdata.FinancialDataList[financialdata.BasicFinancialInt].CashFlow_Operating_Consol;
            double?OperationIncomePercentage = financialdata.FinancialDataList[financialdata.BasicFinancialInt].OperatingIncome0_Consol;
            double?NetIncomePercentage       = financialdata.FinancialDataList[financialdata.BasicFinancialInt].NetIncome0_Consol;



            if (ValuationConditionSatisfied(ref financialdata, valuationParameter) && dataList.TechData[j].Date.Year == 2018// && OperationCashFlow > 0
                // && dataList.TechData[j].CashYieldRate >= 4
                //&&  dataList.CoditionSatified("MoveAverageValue-1", "BollingerBandsDown-20", j)
                //&& dataList.CoditionSatified("BollingerBandsDown-20", "MoveAverageValue-1", j - 1))
                ) //&& OperationIncomePercentage > operationIncomePercentageSet && NetIncomePercentage > netIncomePercentageSet)
            {
                return(true);
            }


            return(false);
        }
 public bool SellCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
 {
     if (j < 0 || dataList.TechData.Count - j <= 0 || financialdata.RevenueInt - 1 < 0 || financialdata.RevenueInt >= financialdata.RevenueList.Count)
     {
         return(false);
     }
     simulationVariable.MoveStopLossPercentage = Acc;
     if (
         dataList.TechData[j].CashYieldRate <= 2.5 ||
         financialdata.RevenueList[financialdata.RevenueInt].YoYPercentage_MonthlySale < -20
         //|| simulationVariable.Accumulation > 50
         //|| simulationVariable.Accumulation < -Acc
         || (financialdata.RevenueList[financialdata.RevenueInt].YoYPercentage_MonthlySale < -10 && financialdata.RevenueList[financialdata.RevenueInt - 1].YoYPercentage_MonthlySale < -10)
         //|| financialdata.RevenueList[financialdata.RevenueInt ].YoYPercentage_MonthlySale<-10
         //|| dataList.CoditionSatified("MoveAverageValue-1", "MoveAverageValue-10", j,false)//&& dataList.CoditionSatified("BollingerBandsDown-5", "MoveAverageValue-1", j - 1,false)
         //|| simulationVariable.ConditionSatifiedMoveStopLoss("MoveStopLossPercentage")
         //|| ( dataList.CoditionSatified("MoveAverageValue-60", "MoveAverageValue-1", j )
         // && dataList.CoditionSatified("MoveAverageValue-1", "MoveAverageValue-60", j -1))
         )//simulationVariable.ConditionSatifiedMoveStopLoss("MoveStopLossPercentage"))// || dataList.CoditionSatified("MinValue-1", "MinValue-10", j))
     {
         return(true);
     }
     return(false);
 }
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
//            if (financialdata.RevenueInt - 2 < 0 || financialdata.BasicFinancialInt <= 0 || financialdata.BasicFinancialInt - 20 <= 0 ||j<30) return false;

//            financialdata.InitialDate(dataList.TechData[j].Date);

//            double? CFC_Yearly = 0;
//            double? CFC_5Year = 0;
//            double? QCashFlowFromOperatingAction = 0;
//            double? QNetIncome = 0;
//            double? LongTermLiability = 0;
//            double? TotalLiability = 0;

//            double? QCashFlow_QNetIncome = 0;
//            int count = 0;
//            int countY = 1;

//            for (int i = financialdata.BasicFinancialInt; i > financialdata.BasicFinancialInt - 20; i--)
//            {

//                QCashFlowFromOperatingAction += financialdata.FinancialDataList[i].QCashFlowFromOperatingAction;
//                QNetIncome += financialdata.FinancialDataList[i].QNetIncome;

//                countY++;
//                if(countY%4==0)
//                {
//                    QCashFlow_QNetIncome += (QCashFlowFromOperatingAction/ QNetIncome);
//                    QCashFlowFromOperatingAction = 0;
//                    QNetIncome = 0;
//                }

//                if (count < 4)
//                {
//                    CFC_Yearly += financialdata.FinancialDataList[i].QCashFlowFromOperatingAction - financialdata.FinancialDataList[i].QCashFlowfromInvestmentAction;
//                    LongTermLiability += financialdata.FinancialDataList[i].QLong_TermLiabilities;
//                    TotalLiability += financialdata.FinancialDataList[i].QTotalLiabilities;
//                    count++;
//                }
//                CFC_5Year += financialdata.FinancialDataList[i].QCashFlowFromOperatingAction - financialdata.FinancialDataList[i].QCashFlowfromInvestmentAction;
//            }

//            QCashFlow_QNetIncome = QCashFlow_QNetIncome / 5;

//            if (dataList.TechData[j].CashYieldRate >= 5 &&
//                financialdata.RevenueList[financialdata.RevenueInt].YoYPercentage_MonthlySale > 0 &&
//                financialdata.RevenueList[financialdata.RevenueInt - 1].YoYPercentage_MonthlySale > 0 &&



//                 financialdata.FinancialDataList[financialdata.BasicFinancialInt].QLong_TermLiabilities / financialdata.FinancialDataList[financialdata.BasicFinancialInt].QTotalLiabilities < 0.3 &&
//                 //LongTermLiability/TotalLiability<0.3&&

//                 QCashFlowFromOperatingAction / QNetIncome >= 1 &&
//                 //QCashFlow_QNetIncome>=1&&



//                 financialdata.ComparerFinancial("QReturnonEquityPercentage_A", 20, 4, false, true) &&
//                 financialdata.ComparerFinancial("QReturnonEquityPercentage_A", 15, 20, false, true) &&

//                 CFC_5Year > 0 &&
//                 CFC_Yearly > 0 &&

//                 financialdata.ComparerFinancial("QNetIncomePercentage", 10, 20, Yearly: true) && //稅後淨利率
//                 financialdata.ComparerFinancial("QNetIncomePercentage", 10, 4, Yearly: true)
//                 //financialdata.ComparerFinancial("QNetIncomePercentage", 20, 4, true, Yearly: true)

//                 //&& dataList.CoditionSatifiedIsBiggerValue( "MoveAverageValue-30",j ,500)
//                 //&& dataList.CoditionSatified("BollingerBandsDown-20", "MoveAverageValue-1", j - 1)
//                 //&& dataList.CoditionSatified("MoveAverageValue-1", "BollingerBandsDown-20", j)
//)// && financialdata.ComparerFinancial("QCashFlowPerShare",3,4))
            return(true);

            return(false);
        }
Example #28
0
        public bool BuyCondition(ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j)
        {
            InitialData.OutputData = new OutputModel();

            if (financialdata.FinancialDataList.Count == 0)
            {
                return(false);
            }

            if (financialdata.FinancialDataList[financialdata.BasicFinancialInt].EarningPerShare_Consol == null ||
                financialdata.FinancialDataList[financialdata.BasicFinancialInt].BPS_A__Consol == null ||
                financialdata.FinancialDataList[financialdata.BasicFinancialInt].CashFlow_Operating_Consol == null)
            {
                return(false);
            }


            double?BPS = financialdata.FinancialDataList[financialdata.BasicFinancialInt].BPS_A__Consol;
            double?OperationCashFlow = financialdata.FinancialDataList[financialdata.BasicFinancialInt].CashFlow_Operating_Consol;

            double?NetIncomePercentageCount       = CountKeepingRaise(ref financialdata, "NetIncome0_Consol");
            double?OperationIncomePercentageCount = CountKeepingRaise(ref financialdata, "OperatingIncome0_Consol");
            double?EPS                = financialdata.FinancialDataList[financialdata.BasicFinancialInt].EarningPerShare_Consol;
            double?EPSCount           = CountKeepingRaise(ref financialdata, "EarningPerShare_Consol");
            double?EPSQoQ             = QoQ(ref financialdata, "EarningPerShare_Consol");
            double?EPSYoY             = YoY(ref financialdata, "EarningPerShare_Consol");
            double?EPSAccumulationYoY = YoY(ref financialdata, "EarningPerShare_Consol");

            if (NetIncomePercentageCount != null)
            {
                InitialData.OutputData.netIncomePercentageCount = (double)NetIncomePercentageCount;
            }

            if (OperationIncomePercentageCount != null)
            {
                InitialData.OutputData.operationIncomePercentageCount = (double)OperationIncomePercentageCount;
            }

            if (EPSCount != null)
            {
                InitialData.OutputData.EPSCount = (double)EPSCount;
            }

            if (EPSQoQ != null)
            {
                InitialData.OutputData.EPSQoQ = System.Math.Round((double)EPSQoQ, 2);
            }

            if (EPSYoY != null)
            {
                InitialData.OutputData.EPSYoY = System.Math.Round((double)EPSYoY, 2);
            }

            if (EPSAccumulationYoY != null)
            {
                InitialData.OutputData.EPSAccumulationYoY = System.Math.Round((double)EPSAccumulationYoY, 2);
            }

            if (EPS != null)
            {
                InitialData.OutputData.EPS = System.Math.Round((double)EPS, 2);
            }



            if (ValuationConditionSatisfied(ref financialdata, valuationParameter) && OperationCashFlow > 0 &&
                NetIncomePercentageCount >= netIncomePercentageCountSet &&
                OperationIncomePercentageCount >= operationIncomePercentageCountSet &&
                EPS >= EPSSet &&
                EPSCount >= EPSCountSet &&
                EPSQoQ >= EPSQoQSet &&
                EPSYoY >= EPSYoYSet &&
                EPSAccumulationYoY >= EPSAccumulationYoYSet
                //&& FinancialPublished(ref dataList , j)
                && j > 240 &&
                ((OperationCashFlowSet && OperationCashFlow > 0) || !OperationCashFlowSet) &&
                (dataList.ReturnValue("MaxValue-240", j - 1)) < (double)dataList.TechData[j].ClosePrice
                )
            {
                return(true);
            }


            return(false);
        }
        /// <summary>
        /// Register a data struct on simConnect and add its members to the SimConnect Data Definition.
        /// </summary>
        /// <param name="sc">SimConnect instance</param>
        /// <param name="cat">Variable category to register</param>
        public async static Task RegisterStruct(SimConnect sc, SIMVAR_CATEGORY cat)
        {
            // Don't proceed with registration if the struct was already registered
            if (_registeredDataStructs.ContainsKey(cat))
            {
                return;
            }

            // Register the struct that corresponds to the SIMVAR_CATEGORY and return it's type.
            Type structType = SimConnectRegisterDataDefineStruct(sc, cat);

            List <FieldInfo> fields = null;

            if (structType != null)
            {
                fields = new List <FieldInfo>(structType.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public));
            }

            // Return when there is no struct associated with this category.
            if (fields == null)
            {
                return;
            }

            // Loop struct fields and add the corresponding variables to the Data Definition
            for (int i = 0; i < fields.Count; i++)
            {
                FieldInfo field = fields[i];

                string varLookupName = field.Name;

                // Reformat the name of variables with index
                // Example: GENERAL_ENG_THROTTLE_LEVER_POSITION_0 to GENERAL_ENG_THROTTLE_LEVER_POSITION:0
                string pattern = @"_(?<index>[0-9][0-9]*)$";
                Match  match   = Regex.Match(field.Name, pattern);

                if (match.Success)
                {
                    varLookupName = Regex.Replace(varLookupName, pattern, m => $":{m.Groups[1]}");
                }

                // Replace underscores by spaces
                varLookupName = varLookupName.Replace('_', ' ');

                var filter = Builders <SimulationVariable> .Filter.Eq(simvar => simvar.Name, varLookupName);

                List <SimulationVariable> results = await SimulationVariable.Find(filter);

                SimulationVariable sv;

                if (results.Count > 0)
                {
                    sv = results[0];
                    SimulationVariable.SetValueType(sv, field.FieldType);
                }
                else
                {
                    sv = new SimulationVariable(varLookupName, string.Empty, (int)cat, null, (int)GetSimConnectDataType(field.FieldType), field.FieldType, (int)SIMVAR_SOURCE.SIMCONNECT);
                    await SimulationVariable.AddNewAsync(sv);
                }

                if (!_monitoredSimVars.ContainsKey(sv.Name))
                {
                    _monitoredSimVars.Add(sv.Name, sv);
                }

                sc.AddToDataDefinition(cat, sv.Name, sv.Units, (SIMCONNECT_DATATYPE)sv.ScDataType, 0.0f, SimConnect.SIMCONNECT_UNUSED);
            }

            // Add the added variable category to the dictionary of registered structs
            _registeredDataStructs.Add(cat, true);
        }