| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- using Muchinfo.Quote;
- using MuchInfo.Chart.Data.EnumTypes;
- using MuchInfo.Chart.Data.Interfaces;
- using MuchInfo.Chart.Data.Models;
- using System.Collections.Generic;
- using System.Linq;
- namespace MuchInfo.Chart.App.Quote
- {
- public static class HistoryCycleExtensions
- {
- /// <summary>
- /// 行情组件Cycle转换为图表CycleType
- /// </summary>
- /// <param name="cycle">The cycle.</param>
- /// <returns>CycleType.</returns>
- public static CycleType ToCycleType(this Cycle cycle)
- {
- switch (cycle)
- {
- case Cycle.Minute:
- return CycleType.Minute;
- case Cycle.Minute5:
- return CycleType.Minute5;
- case Cycle.Minute30:
- return CycleType.Minute30;
- case Cycle.Minute240:
- return CycleType.Minute240;
- case Cycle.Day:
- return CycleType.Day;
- case Cycle.Week:
- return CycleType.Week;
- case Cycle.Month:
- return CycleType.Month;
- case Cycle.Quarter:
- return CycleType.Quarter;
- case Cycle.Year:
- return CycleType.Year;
- default:
- return CycleType.Minute;
- }
- }
- /// <summary>
- /// 行情组件Cycle转换为图表CycleType
- /// </summary>
- /// <param name="cycleType">Type of the cycle.</param>
- /// <returns>Cycle.</returns>
- public static Cycle ToCycle(this CycleType cycleType)
- {
- switch (cycleType)
- {
- case CycleType.Minute:
- return Cycle.Minute;
- case CycleType.Minute5:
- return Cycle.Minute5;
- case CycleType.Minute30:
- return Cycle.Minute30;
- case CycleType.Minute240:
- return Cycle.Minute240;
- case CycleType.Day:
- return Cycle.Day;
- case CycleType.Week:
- return Cycle.Week;
- case CycleType.Month:
- return Cycle.Month;
- case CycleType.Quarter:
- return Cycle.Quarter;
- case CycleType.Year:
- return Cycle.Year;
- case CycleType.Custom:
- return Cycle.Custom;
- default:
- //行情组件里没有定义的都为自定义
- return Cycle.Custom;
- }
- }
- public static List<ILineDataPoint> ToDataPointList(this HistoryCycle[] list)
- {
- var result = new List<ILineDataPoint>();
- if (list != null && list.Any())
- {
- foreach (var history in list)
- {
- var barDataPoint = history.ToBarDataPoint();
- if (barDataPoint == null) continue;
- result.Add(history.ToBarDataPoint());
- }
- }
- return result;
- }
- public static IBarDataPoint ToBarDataPoint(this HistoryCycle history)
- {
- return new BarDataPoint(history.StartTime, (float)history.Opened, (float)history.Highest, (float)history.Lowest,
- (float)history.Closed, history.TotalVolume, (float)history.TotalTurnover, history.HoldVolume);
- }
- }
- }
|