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); }
double LatestYearValuation(ref BasicFinancialReportListModel financialdata) { double returnValuation = 0; if (financialdata.FinancialDataList[financialdata.BasicFinancialInt].Date.Year <= 2007) { if (financialdata.BasicFinancialInt >= 1) { returnValuation = Valuation(financialdata.FinancialDataList[financialdata.BasicFinancialInt]) + Valuation(financialdata.FinancialDataList[financialdata.BasicFinancialInt - 1]); } } else { if (financialdata.BasicFinancialInt >= 3) { returnValuation = Valuation(financialdata.FinancialDataList[financialdata.BasicFinancialInt]) + Valuation(financialdata.FinancialDataList[financialdata.BasicFinancialInt - 1]) + Valuation(financialdata.FinancialDataList[financialdata.BasicFinancialInt - 2]) + Valuation(financialdata.FinancialDataList[financialdata.BasicFinancialInt - 3]); } } return(returnValuation); }
int CountKeepingRaise(ref BasicFinancialReportListModel financialdata, string field) { int count = 1; int counting = financialdata.BasicFinancialInt; for (int i = financialdata.BasicFinancialInt; i > 0; i--) { PropertyInfo propertyNext = financialdata.FinancialDataList[i].GetType().GetProperty(field); double? valueNext = (double?)propertyNext.GetValue(financialdata.FinancialDataList[i]); PropertyInfo propertyPre = financialdata.FinancialDataList[i - 1].GetType().GetProperty(field); double? valuePre = (double?)propertyNext.GetValue(financialdata.FinancialDataList[i - 1]); if (valueNext > valuePre) { count++; } else { break; } } return(count); }
double?AccumulationYoY(ref BasicFinancialReportListModel financialdata, string field) { int counting = financialdata.BasicFinancialInt; if (counting < 8) { return(-1000); } double?valueNext = 0; double?valuePre = 0; for (int i = 0; i < 4; i++) { PropertyInfo propertyNext = financialdata.FinancialDataList[counting - i].GetType().GetProperty(field); valueNext += (double?)propertyNext.GetValue(financialdata.FinancialDataList[counting - i]); } for (int i = 4; i < 8; i++) { PropertyInfo propertyPre = financialdata.FinancialDataList[counting - i].GetType().GetProperty(field); valuePre += (double?)propertyPre.GetValue(financialdata.FinancialDataList[counting - i]); } double?yoy = ((valueNext / valuePre) - 1) * 100; return(yoy); }
public bool BuyCondition( ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j) { if ( dataList.ReturnValue("CountRaiseinDays-20", j) > 12 ) { return(true); } return(false); }
void UpdateOutputData(ref BasicFinancialReportListModel financialdata) { double latestYearValuation = LatestYearValuation(ref financialdata); double[] BeforeYearValuationArray = new double[4]; BeforeYearValuationArray[0] = BeforeYearValuation(ref financialdata, 1); BeforeYearValuationArray[1] = BeforeYearValuation(ref financialdata, 2); BeforeYearValuationArray[2] = BeforeYearValuation(ref financialdata, 3); BeforeYearValuationArray[3] = BeforeYearValuation(ref financialdata, 4); InitialData.OutputData.Evaluation_1Year = System.Math.Round(latestYearValuation, 2); InitialData.OutputData.Evaluation_2Year = System.Math.Round(BeforeYearValuationArray[0], 2); InitialData.OutputData.Evaluation_3Year = System.Math.Round(BeforeYearValuationArray[1], 2); InitialData.OutputData.Evaluation_4Year = System.Math.Round(BeforeYearValuationArray[2], 2); InitialData.OutputData.Evaluation_5Year = System.Math.Round(BeforeYearValuationArray[3], 2); }
public bool SellCondition( ref SimulationVariable simulationVariable, ref DataList dataList, ref BasicFinancialReportListModel financialdata, int j) { simulationVariable.MoveStopLossPercentage = Acc; if (simulationVariable.Accumulation < -1 //(dataList.ReturnValue("CountRaiseinDays-20", j) > 9 && simulationVariable.Accumulation > 1) //|| (dataList.ReturnValue("CountRaiseinDays-20", j) > 9 && simulationVariable.Accumulation < -2) || simulationVariable.Accumulation > 1 ) { return(true); } return(false); }
double?YoY(ref BasicFinancialReportListModel financialdata, string field) { int counting = financialdata.BasicFinancialInt; if (counting < 4) { return(-1000); } PropertyInfo propertyNext = financialdata.FinancialDataList[counting].GetType().GetProperty(field); double? valueNext = (double?)propertyNext.GetValue(financialdata.FinancialDataList[counting]); PropertyInfo propertyPre = financialdata.FinancialDataList[counting - 4].GetType().GetProperty(field); double? valuePre = (double?)propertyNext.GetValue(financialdata.FinancialDataList[counting - 4]); double?yoy = ((valueNext / valuePre) - 1) * 100; return(yoy); }
bool ValuationConditionSatisfied(ref BasicFinancialReportListModel financialdata, int countRefYear) { UpdateOutputData(ref financialdata); bool condiotionsatisfied = true; if (LatestYearValuation(ref financialdata) > BeforeYearValuation(ref financialdata, 1) * ValuationLatestParameter) { if (countRefYear == 4) { if (BeforeYearValuation(ref financialdata, 2) > BeforeYearValuation(ref financialdata, 3) * ValuationParameter && BeforeYearValuation(ref financialdata, 3) > BeforeYearValuation(ref financialdata, 4) * ValuationParameter) { return(true); } if (BeforeYearValuation(ref financialdata, 1) > BeforeYearValuation(ref financialdata, 2) * ValuationParameter && BeforeYearValuation(ref financialdata, 3) > BeforeYearValuation(ref financialdata, 4) * ValuationParameter) { return(true); } } for (int i = 1; i <= countRefYear - 1; i++) { // if it is not satfified condition . test every year if (BeforeYearValuation(ref financialdata, i) < BeforeYearValuation(ref financialdata, i + 1) * ValuationParameter) { condiotionsatisfied = false; break; } } } else { condiotionsatisfied = false; } return(condiotionsatisfied); }
double BeforeYearValuation(ref BasicFinancialReportListModel financialdata, int previousYear) { int referenceYear = financialdata.FinancialDataList[financialdata.BasicFinancialInt].Date.Year - previousYear; double returnValuation = 0; int countRef = (referenceYear >= 2008) ? 4 : 2; int count = 0; for (int i = financialdata.BasicFinancialInt; i >= 0; i--) { if (financialdata.FinancialDataList[i].Date.Year == referenceYear) { returnValuation += Valuation(financialdata.FinancialDataList[i]); count++; } if (count == countRef) { break; } } return(returnValuation); }
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 == 4 ) { 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); }
//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) { 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); }
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 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) { //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) { if (simulationVariable.Accumulation > 4 || simulationVariable.Accumulation < -4 || (simulationVariable.HaveStockDayContainHoliday > 20 && simulationVariable.Accumulation > 1) ) { 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 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 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 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) { 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 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 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 (!simulationVariable.HasBuy && dataList.TechData[j].ReturnOnInvestment < 0) { CountDropDays++; } else if (dataList.TechData[j].ReturnOnInvestment != 0 || simulationVariable.HasBuy) { CountDropDays = 0; } if (CountDropDays == CountDropDaysParameter //|| dataList.ReturnValue("CountDropinDays-20", j) > 9 ) { //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); } 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 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 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); }
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); }