/// <summary> /// 根据K线生成立体买卖 /// </summary> /// <param name="tu"></param> /// <returns></returns> public TradingLine CubeCreate(TimeUnit tu = TimeUnit.day, bool forced = true) { KLine kline = KLineCreateOrLoad(tu); TradingLine tradeline = kline.indicator_trading_stereo1(); tradeline.buyLine.Save(GetFullFileName(IndicatorMetaCollection.META_CUBEBUY, tu)); tradeline.sellLine.Save(GetFullFileName(IndicatorMetaCollection.META_CUBESELL, tu)); tradeline.buysellPoints.Save(GetFullFileName(IndicatorMetaCollection.META_CUBEPT, tu)); if (!timeSerials.ContainsKey(tu)) { timeSerials.Add(tu, new ConcurrentDictionary <string, object>()); } timeSerials[tu][IndicatorMetaCollection.META_CUBEBUY.NameInfo.Name] = tradeline.buyLine; timeSerials[tu][IndicatorMetaCollection.META_CUBESELL.NameInfo.Name] = tradeline.sellLine; timeSerials[tu][IndicatorMetaCollection.META_CUBEPT.NameInfo.Name] = tradeline.buysellPoints; return(tradeline); }