CGC_Codes

market data event

Jun 7th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using fxcore2;
  4. using QuantSys.MarketData;
  5.  
  6. namespace QuantSys.TradeEngine.MarketInterface.FXCMInterface.EventArguments
  7. {
  8.     public class MarketDataEventArg : EventArgs
  9.     {
  10.         public Quantum data;
  11.  
  12.         public MarketDataEventArg(Quantum data)
  13.         {
  14.             this.data = data;
  15.         }
  16.  
  17.         public MarketDataEventArg()
  18.         {
  19.             data = new Quantum();
  20.         }
  21.  
  22.         public static MarketDataEventArg ProcessMarketData(FXSession connection, O2GResponse response)
  23.         {
  24.             try
  25.             {
  26.                 O2GResponseReaderFactory rrfactory = connection.Session.getResponseReaderFactory();
  27.                 O2GMarketDataSnapshotResponseReader mReader = rrfactory.createMarketDataSnapshotReader(response);
  28.  
  29.                 var d = new SortedList<DateTime, Tick>(mReader.Count);
  30.  
  31.                 for (int i = 0; i < mReader.Count; i++)
  32.                 {
  33.  
  34.                     var tick = new Tick(
  35.                         mReader.getBid(i),
  36.                         mReader.getBidOpen(i),
  37.                         mReader.getBidHigh(i),
  38.                         mReader.getBidLow(i),
  39.                         mReader.getBidClose(i),
  40.                         mReader.getAsk(i),
  41.                         mReader.getAskOpen(i),
  42.                         mReader.getAskHigh(i),
  43.                         mReader.getAskLow(i),
  44.                         mReader.getAskClose(i),
  45.                         mReader.getVolume(i),
  46.                         mReader.getDate(i));
  47.  
  48.                     d.Add(mReader.getDate(i), tick);
  49.                 }
  50.  
  51.                 var q = new Quantum(d);
  52.                 return new MarketDataEventArg(q);
  53.             }
  54.             catch (Exception e)
  55.             {
  56.                 Console.WriteLine(e.Message);
  57.                 return new MarketDataEventArg(new Quantum(new SortedList<DateTime, Tick>(300)));
  58.             }
  59.         }
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment