예제 #1
0
파일: Program.cs 프로젝트: ifzz/FDK
 private static void WriteCsv(Bar[] bars, string path)
 {
     CallTimed(() =>
     {
         using (var w = new StreamWriter(path))
         {
             w.WriteLine("High,Low,Open,Volume");
             foreach (var barId in bars)
             {
                 var sb = new StringBuilder();
                 sb.Append(barId.High);
                 sb.Append(",");
                 sb.Append(barId.Low);
                 sb.Append(",");
                 sb.Append(barId.Open);
                 sb.Append(",");
                 sb.Append(barId.Volume);
                 w.WriteLine(sb.ToString());
             }
         }
     }, "Csv generation time");
 }
예제 #2
0
파일: FdkBars.cs 프로젝트: ihalankou/rFdk
 internal static DateTime[] GetBarsTo(Bar[] barData)
 {
     return barData.SelectToArray(b =>  b.To.AddUtc());
 }
예제 #3
0
파일: FdkBars.cs 프로젝트: ihalankou/rFdk
 public static double[] GetBarsVolume(Bar[] barData)
 {
     return barData.SelectToArray(b => b == null ? 0.0 : b.Volume);
 }
예제 #4
0
파일: FdkBars.cs 프로젝트: ihalankou/rFdk
 public static double[] GetBarsOpen(Bar[] barData)
 {
     return barData.SelectToArray(b => b == null ? 0.0 : b.Open);
 }
예제 #5
0
파일: FdkBars.cs 프로젝트: ihalankou/rFdk
 public static double[] GetBarsHigh(Bar[] barData)
 {
     return barData.SelectToArray(b => b == null ? 0.0 : b.High);
 }
예제 #6
0
파일: Snapshot.cs 프로젝트: ifzz/FDK
        /// <summary>
        /// Returns history bars for a specified symbol
        /// </summary>
        /// <param name="symbol">a requested symbol</param>
        /// <param name="period">a requested period</param>
        /// <returns></returns>
        public Bar[] GetBars(string symbol, BarPeriod period)
        {
            var request = string.Format("{0}:{1}", symbol, period);

            Bar[] result;
            this.requestToBars.TryGetValue(request, out result);

            if (result != null)
                return result;

            var priceType = PriceType.Bid;

            if (symbol.EndsWith(AskSuffix, StringComparison.InvariantCulture))
            {
                symbol = symbol.Substring(0, symbol.Length - AskSuffix.Length);
                priceType = PriceType.Ask;
            }

            if (this.ServerDateTime > DateTime.MinValue)
                result = storage.Online.GetBars(symbol, priceType, period, this.ServerDateTime, -RequestedBarsNumber);
            else
                result = new Bar[0];

            this.requestToBars[request] = result;

            return result;
        }
예제 #7
0
 internal static DateTime TimeTo(Bar bar)
 {
     if (bar == null)
         return EmptyTime;
     return bar.To.AddUtc();
 }
예제 #8
0
파일: BarValues.cs 프로젝트: ifzz/FDK
 public BarValues(Bar[] bars, Func<Bar, double> selector)
 {
     this.bars = bars;
     this.selector = selector;
 }
예제 #9
0
파일: BarValues.cs 프로젝트: ifzz/FDK
 public static double Time(Bar bar)
 {
     var time = new datetime(bar.From);
     return time.Value;
 }
예제 #10
0
파일: BarValues.cs 프로젝트: ifzz/FDK
 public static double Volume(Bar bar)
 {
     return bar.Volume;
 }
예제 #11
0
파일: BarValues.cs 프로젝트: ifzz/FDK
 public static double High(Bar bar)
 {
     return bar.High;
 }
예제 #12
0
파일: BarValues.cs 프로젝트: ifzz/FDK
 public static double Low(Bar bar)
 {
     return bar.Low;
 }
예제 #13
0
파일: BarValues.cs 프로젝트: ifzz/FDK
 public static double Close(Bar bar)
 {
     return bar.Open;
 }
예제 #14
0
파일: BarValues.cs 프로젝트: ifzz/FDK
 public static double Open(Bar bar)
 {
     return bar.Open;
 }