public double Get5KMA(int nBar, DateStrategyMap DateStrategy, DateTime Time) { if(nBar > 60) return 0; double dResult = 0; Time = Time.AddMinutes(-5); for (int i = 0; i < nBar; i++) { double dClose = DateStrategy.Get5KClose(Time); if (dClose == 0) return 0; dResult += dClose; Time = Time.AddMinutes(-5); } dResult = dResult / nBar; return dResult; }
public void CheckF(int nKey, DateStrategyMap dsMap, Dictionary<int, DateStrategyMap> DateStrategy) { for (int i = 1; i < 26; i++) { bool bFlag = false; string sStrategyID; if (i < 10) sStrategyID = string.Format("F0{0}", i); else sStrategyID = string.Format("F{0}", i); switch (sStrategyID) { case "F01": bFlag = CalcF(1, nKey, DateStrategy, 3e6); break; case "F02": bFlag = CalcF(2, nKey, DateStrategy, 3e6); break; case "F03": bFlag = CalcF(3, nKey, DateStrategy, 3e6); break; case "F04": bFlag = CalcF(4, nKey, DateStrategy, 3e6); break; case "F05": bFlag = CalcF(1, nKey, DateStrategy, 6e6); break; case "F06": bFlag = CalcF(2, nKey, DateStrategy, 6e6); break; case "F07": bFlag = CalcF(3, nKey, DateStrategy, 6e6); break; case "F08": bFlag = CalcF(4, nKey, DateStrategy, 6e6); break; case "F09": bFlag = CalcF(1, nKey, DateStrategy, 9e6); break; case "F10": bFlag = CalcF(2, nKey, DateStrategy, 9e6); break; case "F11": bFlag = CalcF(3, nKey, DateStrategy, 9e6); break; case "F12": bFlag = CalcF(4, nKey, DateStrategy, 9e6); break; case "F14": bFlag = CalcF(1, nKey, DateStrategy, -3e6); break; case "F15": bFlag = CalcF(2, nKey, DateStrategy, -3e6); break; case "F16": bFlag = CalcF(3, nKey, DateStrategy, -3e6); break; case "F17": bFlag = CalcF(4, nKey, DateStrategy, -3e6); break; case "F18": bFlag = CalcF(1, nKey, DateStrategy, -6e6); break; case "F19": bFlag = CalcF(2, nKey, DateStrategy, -6e6); break; case "F20": bFlag = CalcF(3, nKey, DateStrategy, -6e6); break; case "F21": bFlag = CalcF(4, nKey, DateStrategy, -6e6); break; case "F22": bFlag = CalcF(1, nKey, DateStrategy, -9e6); break; case "F23": bFlag = CalcF(2, nKey, DateStrategy, -9e6); break; case "F24": bFlag = CalcF(3, nKey, DateStrategy, -9e6); break; case "F25": bFlag = CalcF(4, nKey, DateStrategy, -9e6); break; } if (bFlag) dsMap.AddStrategy("C" + sStrategyID); } }
public void CheckE(int nKey, DateStrategyMap dsMap, Dictionary<int, DateStrategyMap> DateStrategy) { for (int i = 1; i < 26; i++) { bool bFlag = false; string sStrategyID; if (i < 10) sStrategyID = string.Format("E0{0}", i); else sStrategyID = string.Format("E{0}", i); switch (sStrategyID) { case "E01": bFlag = CalcE(1, nKey, DateStrategy, 3e6); break; case "E02": bFlag = CalcE(2, nKey, DateStrategy, 3e6); break; case "E03": bFlag = CalcE(3, nKey, DateStrategy, 3e6); break; case "E04": bFlag = CalcE(4, nKey, DateStrategy, 3e6); break; case "E05": bFlag = CalcE(1, nKey, DateStrategy, 6e6); break; case "E06": bFlag = CalcE(2, nKey, DateStrategy, 6e6); break; case "E07": bFlag = CalcE(3, nKey, DateStrategy, 6e6); break; case "E08": bFlag = CalcE(4, nKey, DateStrategy, 6e6); break; case "E09": bFlag = CalcE(1, nKey, DateStrategy, 9e6); break; case "E10": bFlag = CalcE(2, nKey, DateStrategy, 9e6); break; case "E11": bFlag = CalcE(3, nKey, DateStrategy, 9e6); break; case "E12": bFlag = CalcE(4, nKey, DateStrategy, 9e6); break; case "E14": bFlag = CalcE(1, nKey, DateStrategy, -3e6); break; case "E15": bFlag = CalcE(2, nKey, DateStrategy, -3e6); break; case "E16": bFlag = CalcE(3, nKey, DateStrategy, -3e6); break; case "E17": bFlag = CalcE(4, nKey, DateStrategy, -3e6); break; case "E18": bFlag = CalcE(1, nKey, DateStrategy, -6e6); break; case "E19": bFlag = CalcE(2, nKey, DateStrategy, -6e6); break; case "E20": bFlag = CalcE(3, nKey, DateStrategy, -6e6); break; case "E21": bFlag = CalcE(4, nKey, DateStrategy, -6e6); break; case "E22": bFlag = CalcE(1, nKey, DateStrategy, -9e6); break; case "E23": bFlag = CalcE(2, nKey, DateStrategy, -9e6); break; case "E24": bFlag = CalcE(3, nKey, DateStrategy, -9e6); break; case "E25": bFlag = CalcE(4, nKey, DateStrategy, -9e6); break; } if (bFlag) dsMap.AddStrategy("C" + sStrategyID); } }
public void CheckD(int nKey, DateStrategyMap dsMap, Dictionary<int, DateStrategyMap> DateStrategy) { for (int i = 1; i < 26; i++) { bool bFlag = false; string sStrategyID; if (i < 10) sStrategyID = string.Format("D0{0}", i); else sStrategyID = string.Format("D{0}", i); switch (sStrategyID) { case "D01": bFlag = CalcD(1, nKey, DateStrategy, 3e6); break; case "D02": bFlag = CalcD(2, nKey, DateStrategy, 3e6); break; case "D03": bFlag = CalcD(3, nKey, DateStrategy, 3e6); break; case "D04": bFlag = CalcD(4, nKey, DateStrategy, 3e6); break; case "D05": bFlag = CalcD(1, nKey, DateStrategy, 6e6); break; case "D06": bFlag = CalcD(2, nKey, DateStrategy, 6e6); break; case "D07": bFlag = CalcD(3, nKey, DateStrategy, 6e6); break; case "D08": bFlag = CalcD(4, nKey, DateStrategy, 6e6); break; case "D09": bFlag = CalcD(1, nKey, DateStrategy, 9e6); break; case "D10": bFlag = CalcD(2, nKey, DateStrategy, 9e6); break; case "D11": bFlag = CalcD(3, nKey, DateStrategy, 9e6); break; case "D12": bFlag = CalcD(4, nKey, DateStrategy, 9e6); break; case "D14": bFlag = CalcD(1, nKey, DateStrategy, -3e6); break; case "D15": bFlag = CalcD(2, nKey, DateStrategy, -3e6); break; case "D16": bFlag = CalcD(3, nKey, DateStrategy, -3e6); break; case "D17": bFlag = CalcD(4, nKey, DateStrategy, -3e6); break; case "D18": bFlag = CalcD(1, nKey, DateStrategy, -6e6); break; case "D19": bFlag = CalcD(2, nKey, DateStrategy, -6e6); break; case "D20": bFlag = CalcD(3, nKey, DateStrategy, -6e6); break; case "D21": bFlag = CalcD(4, nKey, DateStrategy, -6e6); break; case "D22": bFlag = CalcD(1, nKey, DateStrategy, -9e6); break; case "D23": bFlag = CalcD(2, nKey, DateStrategy, -9e6); break; case "D24": bFlag = CalcD(3, nKey, DateStrategy, -9e6); break; case "D25": bFlag = CalcD(4, nKey, DateStrategy, -9e6); break; } if (bFlag) dsMap.AddStrategy("C" + sStrategyID); } }
public void CheckB(int nKey, DateStrategyMap dsMap, Dictionary<int, DateStrategyMap> DateStrategy) { for (int i = 1; i < 26; i++) { bool bFlag = false; string sStrategyID; if (i < 10) sStrategyID = string.Format("B0{0}", i); else sStrategyID = string.Format("B{0}", i); switch (sStrategyID) { case "B01": bFlag = CalcB(1, nKey, DateStrategy, 3e6); break; case "B02": bFlag = CalcB(2, nKey, DateStrategy, 3e6); break; case "B03": bFlag = CalcB(3, nKey, DateStrategy, 3e6); break; case "B04": bFlag = CalcB(4, nKey, DateStrategy, 3e6); break; case "B05": bFlag = CalcB(1, nKey, DateStrategy, 6e6); break; case "B06": bFlag = CalcB(2, nKey, DateStrategy, 6e6); break; case "B07": bFlag = CalcB(3, nKey, DateStrategy, 6e6); break; case "B08": bFlag = CalcB(4, nKey, DateStrategy, 6e6); break; case "B09": bFlag = CalcB(1, nKey, DateStrategy, 9e6); break; case "B10": bFlag = CalcB(2, nKey, DateStrategy, 9e6); break; case "B11": bFlag = CalcB(3, nKey, DateStrategy, 9e6); break; case "B12": bFlag = CalcB(4, nKey, DateStrategy, 9e6); break; case "B14": bFlag = CalcB(1, nKey, DateStrategy, -3e6); break; case "B15": bFlag = CalcB(2, nKey, DateStrategy, -3e6); break; case "B16": bFlag = CalcB(3, nKey, DateStrategy, -3e6); break; case "B17": bFlag = CalcB(4, nKey, DateStrategy, -3e6); break; case "B18": bFlag = CalcB(1, nKey, DateStrategy, -6e6); break; case "B19": bFlag = CalcB(2, nKey, DateStrategy, -6e6); break; case "B20": bFlag = CalcB(3, nKey, DateStrategy, -6e6); break; case "B21": bFlag = CalcB(4, nKey, DateStrategy, -6e6); break; case "B22": bFlag = CalcB(1, nKey, DateStrategy, -9e6); break; case "B23": bFlag = CalcB(2, nKey, DateStrategy, -9e6); break; case "B24": bFlag = CalcB(3, nKey, DateStrategy, -9e6); break; case "B25": bFlag = CalcB(4, nKey, DateStrategy, -9e6); break; } if (bFlag) dsMap.AddStrategy("C" + sStrategyID); } }
public void CheckC(int nKey, DateStrategyMap dsMap, Dictionary<int, DateStrategyMap> DateStrategy) { for (int i = 1; i < 26; i++) { bool bFlag = false; string sStrategyID; if (i < 10) sStrategyID = string.Format("C0{0}", i); else sStrategyID = string.Format("C{0}", i); switch (sStrategyID) { case "C01": bFlag = CalcC(1, nKey, DateStrategy, 3e6); break; case "C02": bFlag = CalcC(2, nKey, DateStrategy, 3e6); break; case "C03": bFlag = CalcC(3, nKey, DateStrategy, 3e6); break; case "C04": bFlag = CalcC(4, nKey, DateStrategy, 3e6); break; case "C05": bFlag = CalcC(1, nKey, DateStrategy, 6e6); break; case "C06": bFlag = CalcC(2, nKey, DateStrategy, 6e6); break; case "C07": bFlag = CalcC(3, nKey, DateStrategy, 6e6); break; case "C08": bFlag = CalcC(4, nKey, DateStrategy, 6e6); break; case "C09": bFlag = CalcC(1, nKey, DateStrategy, 9e6); break; case "C10": bFlag = CalcC(2, nKey, DateStrategy, 9e6); break; case "C11": bFlag = CalcC(3, nKey, DateStrategy, 9e6); break; case "C12": bFlag = CalcC(4, nKey, DateStrategy, 9e6); break; case "C14": bFlag = CalcC(1, nKey, DateStrategy, -3e6); break; case "C15": bFlag = CalcC(2, nKey, DateStrategy, -3e6); break; case "C16": bFlag = CalcC(3, nKey, DateStrategy, -3e6); break; case "C17": bFlag = CalcC(4, nKey, DateStrategy, -3e6); break; case "C18": bFlag = CalcC(1, nKey, DateStrategy, -6e6); break; case "C19": bFlag = CalcC(2, nKey, DateStrategy, -6e6); break; case "C20": bFlag = CalcC(3, nKey, DateStrategy, -6e6); break; case "C21": bFlag = CalcC(4, nKey, DateStrategy, -6e6); break; case "C22": bFlag = CalcC(1, nKey, DateStrategy, -9e6); break; case "C23": bFlag = CalcC(2, nKey, DateStrategy, -9e6); break; case "C24": bFlag = CalcC(3, nKey, DateStrategy, -9e6); break; case "C25": bFlag = CalcC(4, nKey, DateStrategy, -9e6); break; } if (bFlag) dsMap.AddStrategy("C" + sStrategyID); } }
private void CreateStrategyMap(int nKey, DateTime date, IRow biasRow, IRow fpRow, int n5KStartIndex) { DateStrategyMap dsMap = new DateStrategyMap(date); double dFuturesOpen = biasRow.GetCell(1).NumericCellValue; double dFuturesHigh = biasRow.GetCell(2).NumericCellValue; double dFuturesLow = biasRow.GetCell(3).NumericCellValue; double dFuturesClose = biasRow.GetCell(4).NumericCellValue; double dSpotOpen = biasRow.GetCell(5).NumericCellValue; double dSpotHigh = biasRow.GetCell(6).NumericCellValue; double dSpotLow = biasRow.GetCell(7).NumericCellValue; double dSpotClose = biasRow.GetCell(8).NumericCellValue; dsMap.FuturesOpen = dFuturesOpen; dsMap.FuturesHigh = dFuturesHigh; dsMap.FuturesLow = dFuturesLow; dsMap.FuturesClose = dFuturesClose; dsMap.SpotOpen = dSpotOpen; dsMap.SpotHigh = dSpotHigh; dsMap.SpotLow = dSpotLow; dsMap.SpotClose = dSpotClose; dsMap.FFutures = fpRow.GetCell(12).NumericCellValue; dsMap.FOptions = fpRow.GetCell(13).NumericCellValue; for (int j = n5KStartIndex; j < m_MIN5KSheet.LastRowNum; j++) { IRow FiveKRow = m_MIN5KSheet.GetRow(j); if (FiveKRow == null || FiveKRow.GetCell(0).CellType != CellType.Numeric) continue; DateTime FiveKDateTime = ConvertToDateTime(FiveKRow.GetCell(0).NumericCellValue); if (date.CompareTo(FiveKDateTime) == 0) { FiveKDateTime = FiveKDateTime.Add(Convert.ToDateTime(FiveKRow.GetCell(1).StringCellValue).TimeOfDay); double[] dOHLCV = new double[5]; dOHLCV[0] = FiveKRow.GetCell(2).NumericCellValue; dOHLCV[1] = FiveKRow.GetCell(3).NumericCellValue; dOHLCV[2] = FiveKRow.GetCell(4).NumericCellValue; dOHLCV[3] = FiveKRow.GetCell(5).NumericCellValue; dOHLCV[4] = FiveKRow.GetCell(6).NumericCellValue; dsMap.Add5K(FiveKDateTime, dOHLCV); } else break; } m_DateStrategy.Add(nKey, dsMap); }