public Instrument(InstrumentType type, string symbol, string secutityExchange, string currency)
 {
     if (FreeQuant.Instruments.InstrumentManager.Instruments.Contains(symbol))
     {
         return;
     }
     this.instrument = new FreeQuant.Instruments.Instrument(symbol, EnumConverter.Convert(type));
     this.instrument.SecurityExchange = secutityExchange;
     this.instrument.Currency         = currency;
     this.instrument.Save();
 }
Example #2
0
 public static BarSeries GetHistoricalBars(Instrument instrument, DateTime begin, DateTime end, BarType barType, long barSize)
 {
     FreeQuant.Instruments.Instrument instrument1 = Map.OQ_FQ_Instrument[(object)instrument] as FreeQuant.Instruments.Instrument;
     if (barSize == 86400)
     {
         return(new BarSeries((FreeQuant.Series.BarSeries)FreeQuant.Instruments.DataManager.GetDailySeries(instrument1, begin, end)));
     }
     else
     {
         return(new BarSeries(FreeQuant.Instruments.DataManager.GetBarSeries(instrument1, begin, end, EnumConverter.Convert(barType), barSize)));
     }
 }
Example #3
0
 public static void Add(Instrument instrument, Bar bar)
 {
     FreeQuant.Instruments.Instrument instrument1 = Map.OQ_FQ_Instrument[(object)instrument] as FreeQuant.Instruments.Instrument;
     if (bar.bar.BarType == FreeQuant.Data.BarType.Time && bar.bar.Size == 86400L)
     {
         Daily daily = new Daily(bar.bar.DateTime, bar.bar.Open, bar.bar.High, bar.bar.Low, bar.bar.Close, bar.bar.Volume, bar.bar.OpenInt);
         FreeQuant.Instruments.DataManager.Add(instrument1, daily);
     }
     else
     {
         FreeQuant.Instruments.DataManager.Add(instrument1, bar.bar);
     }
 }
Example #4
0
        public void SendMarketDataRequest(FIXMarketDataRequest request)
        {
            SubscriptionDataType subscriptionDataType = (SubscriptionDataType)0;

            for (int i = 0; i < request.NoMDEntryTypes; ++i)
            {
                switch (request.GetMDEntryTypesGroup(i).MDEntryType)
                {
                case '0':
                case '1':
                    if (request.MarketDepth == 1)
                    {
                        subscriptionDataType |= SubscriptionDataType.Quotes;
                        break;
                    }
                    else
                    {
                        subscriptionDataType |= SubscriptionDataType.OrderBook;
                        break;
                    }

                case '2':
                    subscriptionDataType |= SubscriptionDataType.Trades;
                    break;
                }
            }
            for (int i = 0; i < request.NoRelatedSym; ++i)
            {
                FreeQuant.Instruments.Instrument instrument1 = FreeQuant.Instruments.InstrumentManager.Instruments[request.GetRelatedSymGroup(i).Symbol];
                Instrument instrument2 = Map.FQ_OQ_Instrument[(object)instrument1] as Instrument;
                switch (request.SubscriptionRequestType)
                {
                case '1':
                    this.provider.CallSubscribe(instrument2, subscriptionDataType);
                    break;

                case '2':
                    this.provider.CallUnsubscribe(instrument2, subscriptionDataType);
                    break;

                default:
                    throw new Exception("Unknown subscription request type " + (object)request.SubscriptionRequestType);
                }
            }
        }
 internal Instrument(FreeQuant.Instruments.Instrument instrument)
 {
     this.instrument  = instrument;
     this.book        = new OrderBook(instrument.OrderBook);
     this.AltIDGroups = new AltIDGroupList(this);
 }