Esempio n. 1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="codes"></param>
 /// <param name="cycle"></param>
 /// <param name="date1"></param>
 /// <param name="date2"></param>
 public GroupStockHisKLineData(List <int> codes, KLineCycle cycle, int date1, int date2)
 {
     _codes             = codes;
     _cycle             = cycle;
     _date1             = date1;
     _date2             = date2;
     _reqKLineDataRange = ReqKLineDataRange.StartDateToEndDate;
 }
Esempio n. 2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="code"></param>
 /// <param name="cycle"></param>
 /// <param name="date1"></param>
 /// <param name="date2"></param>
 public OneStockHisKLineData(int code, KLineCycle cycle, int date1, int date2)
 {
     _reqKLineDataRange = ReqKLineDataRange.StartDateToEndDate;
     _cycle             = cycle;
     _code  = code;
     _date1 = date1;
     _date2 = date2;
 }
Esempio n. 3
0
        private static void GetNormalFormulaOutput(EMIndicator indicator, FmFormulaOutput output,
                                                   int dataCount, int index, int selectIndex,
                                                   MarketType2 Market, KLineCycle KLineCycle)
        {
            String       nameTemp   = output.fmOutput[index].name.Trim('\0');
            List <float> outputList = new List <float>(0);

            double[] tempOutput = new double[1];
            for (int j = 0; j < dataCount; j++)
            {
                IntPtr prt = new IntPtr(output.fmOutput[index].normaloutput.ToInt64() + sizeof(double) * j);
                Marshal.Copy(prt, tempOutput, 0, 1);
                float temp = Convert.ToSingle(tempOutput[0]);
                #region 数据特殊处理
                if ((float.IsInfinity(temp) || float.IsNaN(temp)) &&
                    (indicator.IndicatorName == "VOL" || indicator.IndicatorName == "DDX" || indicator.IndicatorName == "DDY" ||
                     indicator.IndicatorName == "DDZ" || indicator.IndicatorName == "ZJBY" || indicator.IndicatorName == "ZJQS"))
                {
                    temp = 0F;
                }
                //对财富通服务器成交量进行特殊处理
                if (indicator.IndicatorName == "VOL")
                {
                    temp = temp * 100F;
                }
                else if (indicator.IndicatorName == "ZJQS")
                {
                    temp = temp / 10000F;
                }
                #endregion
                outputList.Add(temp);
            }
            using (QuoteDataStru quoteDataStru = new QuoteDataStru())
            {
                quoteDataStru.QuoteName     = nameTemp;
                quoteDataStru.QuoteDataList = outputList;
                if (index == selectIndex)
                {
                    quoteDataStru.FlagQuoteDataSelected = true;
                }
                //根据FORMULA_LINETYPE获取对应的线型
                quoteDataStru.QuotePicType = GetQuotePicType(output.fmOutput[index].dec.linetype);
                //为指标赋绘图颜色
                if (Color.FromArgb((int)output.fmOutput[index].dec.clr) != Color.FromArgb(255, 255, 255))
                {
                    quoteDataStru.QuoteColor = Color.FromArgb(Convert.ToInt32(output.fmOutput[index].dec.clr));
                }
                else
                {
                    quoteDataStru.QuoteColor = IndicatorColors[index];
                }
                indicator.QuoteData.Add(quoteDataStru);
            }
        }
 public PriceDataItem GetPriceDate(
     string stockId,
     KLineCycle cycle,
     int referOffset,
     DateTime endDate)
 {
     using (var context = RepositoryContext.Create())
     {
         var repository = context.GetRepository<DailyPriceDataRepository>();
         return repository.GetDaylineData(stockId, endDate, endDate).FirstOrDefault();
     }
 }
Esempio n. 5
0
 /// <summary>
 /// K线
 /// </summary>
 /// <param name="code"></param>
 public static void QueryHistoryDatas(String code, KLineCycle cycle)
 {
     if (EMSecurityService.KwItems.ContainsKey(code))
     {
         KwItem item      = EMSecurityService.KwItems[code];
         int    innerCode = item.Innercode;
         //财富通历史数据
         OneStockHisKLineData oneStockHisKLineData = new OneStockHisKLineData(innerCode,
                                                                              cycle, 0, 0);
         oneStockHisKLineData._reqKLineDataRange = ReqKLineDataRange.All;
         m_queryHistoryDatas[code] = oneStockHisKLineData;
         oneStockHisKLineData.Start();
     }
 }
Esempio n. 6
0
 /// <summary>
 /// 获取一只股票K线的数据
 /// </summary>
 /// <param name="code"></param>
 /// <param name="cycle"></param>
 /// <returns></returns>
 public OneStockKLineDataRec GetKLineData(int code, KLineCycle cycle)
 {
     return(Dc.GetHisKLineData(code, cycle));
 }