コード例 #1
0
ファイル: Program.cs プロジェクト: radtek/CoinsPro
        private void UpdateRedis()
        {
            while (true)
            {
                List <string> keys = new List <string>();
                // string key = "TradePerMin@" + symbol + "@" + CommonLab.TimerHelper.ConvertStringToDateTime(t.ExchangeTimeStamp).ToString("yyMMddHHmm") + "@" + direction;
                lock (TradeData)
                {
                    try
                    {
                        foreach (KeyValuePair <string, CommonLab.TradePeriod> item in TradeData)
                        {
                            string   Key          = item.Key.ToString();
                            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);
                            switch (periodType)
                            {
                            case CommonLab.TimePeriodType.m1:
                                if ((DateTime.UtcNow - t).TotalMinutes >= 2)
                                {
                                    keys.Add(item.Key);
                                }
                                break;

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

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

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

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

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

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

                            default:
                                break;
                            }

                            //需要存入redis之后移除

                            //keys.Add(item.Key);
                            string jsont = JsonConvert.SerializeObject(item.Value);
                            if (CommonLab.RedisKeyConvert.GetRedisKeyExpiredTime(periodType) == -1)
                            {
                                db.StringSet(item.Key, jsont);
                            }
                            else
                            {
                                db.StringSet(item.Key, jsont);

                                db.KeyExpire(item.Key, DateTime.UtcNow.AddMinutes(48 * 60));
                            }


                            //Data.Remove(item.Key);
                            Console.WriteLine("TID:" + Thread.CurrentThread.ManagedThreadId.ToString() + " " + DateTime.UtcNow.ToString() + "- WI" + item.Key + " into redis.");
                        }
                    }
                    catch (Exception e)
                    {
                        log.log(e.Message + e.StackTrace);
                    }
                }
                foreach (string key in keys)
                {
                    CommonLab.TradePeriod igonred = new CommonLab.TradePeriod("", null, 0);
                    TradeData.TryRemove(key, out igonred);
                }
                Thread.Sleep(30 * 1000);
            }
        }
コード例 #2
0
ファイル: FundsDetailsDLG.cs プロジェクト: radtek/CoinsPro
 private void hToolStripMenuItem_Click(object sender, EventArgs e)
 {
     timeperiodtype = CommonLab.TimePeriodType.h1; Updateinfo();
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: radtek/CoinsPro
        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);
            }
        }