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); }
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); }
//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); }
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); }
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); }
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); }
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); }