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;
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
            }
        }
示例#5
0
        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);
            }
        }
示例#6
0
        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);
        }