Пример #1
0
        private static void ExporttoDisk(object obj)
        {
            KFCC.ExchangeInterface.IExchanges e = (KFCC.ExchangeInterface.IExchanges)obj;
            string year  = exporttime.Year.ToString();
            string month = exporttime.Month.ToString();
            string day   = exporttime.Day.ToString();
            string path  = @"raw/" + e.Name;// + @"/" + year + @"/" + month + @"/";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            foreach (KeyValuePair <string, KFCC.ExchangeInterface.SubscribeInterface> item in e.SubscribedTradingPairs)
            {
                string           file = path + @"/" + item.Key + "/" + year + @"/" + month + @"/" + day + ".txt";
                CommonLab.Log    log  = new CommonLab.Log(file);
                CommonLab.Ticker t    = item.Value.TradeInfo.t.Clone();
                //double ts= CommonLab.TimerHelper.GetTimeStamp(exporttime.AddSeconds(-exporttime.Second).ToUniversalTime());
                t.ExchangeTimeStamp = ts;
                log.RawLog(t.ToOCHLString());
            }
        }
Пример #2
0
        private void ExportTodisk()
        {
            while (true)
            {
                List <string> keys = new List <string>();
                // string key = "TradePerMin@" + symbol + "@" + CommonLab.TimerHelper.ConvertStringToDateTime(t.ExchangeTimeStamp).ToString("yyMMddHHmm") + "@" + direction;
                lock (LockTickObject)
                {
                    try
                    {
                        foreach (KeyValuePair <string, BinacneETF.BATicker> item in TickerData)
                        {
                            string Key = item.Key.ToString();
                            //string str = redisKeyType+ "@" + timePeriod + "@" +exchangename+"@"+ symbol.ToLower()+"@"+ t.ToString("yyyy.MM.dd HH:mm");

                            DateTime t            = Convert.ToDateTime(Key.Split('@')[4]);
                            string   type         = Key.Split('@')[0];
                            string   period       = Key.Split('@')[1];
                            string   exchangename = CommonLab.ExchangeNameConvert.GetLongExchangeName(Key.Split('@')[2]);
                            string   symbol       = Key.Split('@')[3];
                            CommonLab.TimePeriodType periodType = (CommonLab.TimePeriodType)Enum.Parse(typeof(CommonLab.TimePeriodType), period);
                            // bool FlushFlag = false;
                            switch (periodType)
                            {
                            case CommonLab.TimePeriodType.m1:
                                if ((DateTime.UtcNow - t).TotalMinutes >= 1)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

                            case CommonLab.TimePeriodType.m5:
                                if ((DateTime.UtcNow - t).TotalMinutes >= 5)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

                            case CommonLab.TimePeriodType.m10:
                                if ((DateTime.UtcNow - t).TotalMinutes >= 10)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

                            case CommonLab.TimePeriodType.m30:
                                if ((DateTime.UtcNow - t).TotalMinutes >= 30)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

                            case CommonLab.TimePeriodType.h1:
                                if ((DateTime.UtcNow - t).TotalHours >= 1)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

                            case CommonLab.TimePeriodType.h4:
                                if ((DateTime.UtcNow - t).TotalHours >= 4)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

                            case CommonLab.TimePeriodType.d1:
                                if ((DateTime.UtcNow - t).TotalHours >= 24)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

                            default:
                                break;
                            }
                            string jsont = item.Value.ToOCHLString();
                            if (CommonLab.RedisKeyConvert.GetRedisKeyExpiredTime(periodType) == -1)
                            {
                                db.StringSet(item.Key, jsont);
                            }
                            else
                            {
                                db.KeyExpire(item.Key, DateTime.UtcNow.AddMinutes(48 * 60));
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        log.log(e.Message + e.StackTrace);
                    }


                    foreach (string key in keys)
                    {
                        DateTime t            = Convert.ToDateTime(key.Split('@')[4]);
                        string   year         = t.Year.ToString();
                        string   month        = t.Month.ToString();
                        string   day          = t.Day.ToString();
                        string   type         = key.Split('@')[0];
                        string   period       = key.Split('@')[1];
                        string   exchangename = CommonLab.ExchangeNameConvert.GetLongExchangeName(key.Split('@')[2]);
                        string   symbol       = key.Split('@')[3];

                        string        file = "ExchangeDataFiles" + @"/" + type + "/" + period + "/" + "/" + exchangename + "/" + symbol + "/" + year + @"/" + month + @"/" + day + ".txt";
                        CommonLab.Log log  = new CommonLab.Log(file);

                        //double ts= CommonLab.TimerHelper.GetTimeStamp(exporttime.AddSeconds(-exporttime.Second).ToUniversalTime());

                        log.RawLog(TickerData[key].ToOCHLString());
                        TickerData.Remove(key);
                    }
                }
                Thread.Sleep(60 * 1000);
            }
        }
Пример #3
0
 public DataManage(CommonLab.Log _log)
 {
     log = _log;
 }