Example #1
0
        private OandaRootInstrumentObject  OandaGetBars()
        //get bars from Oanda endpoint
        {
            var         client  = new RestClient(string.Format("{0}{1}/{2}/candles", accountSettings.BASEURI, EndPoints.instruments(), this.currencyPair));
            RestRequest request = new RestRequest()
            {
                Method = Method.GET
            };

            request.AddHeader("Authorization", string.Format("Bearer {0}", accountSettings.APIKEY));
            request.AddParameter("count", this.period);
            request.AddParameter("granularity", this.timeFrame);
            request.RequestFormat = DataFormat.Json;
            IRestResponse <OandaRootInstrumentObject> _response = client.Execute <OandaRootInstrumentObject>(request);

            if (_response.Data.candles.Count() == 0)
            {
                throw new ProgramException("no bars returned from end point");
            }

            return(_response.Data);
        }
Example #2
0
        public InstrumentAccessor(AccountSettings _accountSettings, string _currencyPair)
        {
            this.currencyPair    = _currencyPair;
            this.accountSettings = _accountSettings;
            var         client  = new RestClient(string.Format("{0}{1}/{2}/candles", accountSettings.BASEURI, EndPoints.instruments(), this.currencyPair));
            RestRequest request = new RestRequest()
            {
                Method = Method.GET
            };

            request.AddHeader("Authorization", string.Format("Bearer {0}", accountSettings.APIKEY));
            request.AddParameter("count", this.period);
            request.AddParameter("granularity", this.timeFrame);  //5 minute chart
            request.RequestFormat = DataFormat.Json;
            IRestResponse <OandaRootInstrumentObject> _response = client.Execute <OandaRootInstrumentObject>(request);

            //this.data = _response.Data;  //set public field to deserialized data
            this.bar     = _response.Data;
            this.allBars = new List <OandaRootInstrumentObject>();
            this.allBars.Add(new OandaRootInstrumentObject {
                instrument = this.currencyPair, granularity = this.timeFrame, candles = new List <Candle>()
            });
            this.allBars[0].candles.Add(this.bar.candles[0]);

            this.response = _response;


            //Program.mainTimer.Elapsed += this.OnUpdate;  //add Onupdate method to timer invocation list

            /*
             * Console.ForegroundColor = ConsoleColor.Green;
             * Console.WriteLine("Instrument Status:{0}", _response.StatusCode);
             * Console.WriteLine("Using {0} currency pair", this.currencyPair);
             * Console.ResetColor();
             */
        }
Example #3
0
        private OandaRootInstrumentObject OandaGetBars(DateTime _startTime, DateTime _endTime)
        {
            //get bars time range from Oanda endpoint
            {
                //really we have to convert to unix epoch BS?
                DateTimeOffset startOffset = new DateTimeOffset(_startTime);
                DateTimeOffset endOffset   = new DateTimeOffset(_endTime);

                var         client  = new RestClient(string.Format("{0}{1}/{2}/candles", accountSettings.BASEURI, EndPoints.instruments(), this.currencyPair));
                RestRequest request = new RestRequest()
                {
                    Method = Method.GET
                };
                request.AddHeader("Authorization", string.Format("Bearer {0}", accountSettings.APIKEY));
                request.RequestFormat = DataFormat.Json;
                request.AddParameter("from", startOffset.ToUnixTimeSeconds());
                request.AddParameter("to", endOffset.ToUnixTimeSeconds());
                request.AddParameter("granularity", this.timeFrame);

                IRestResponse <OandaRootInstrumentObject> _response = client.Execute <OandaRootInstrumentObject>(request);
                if (_response.Data.candles.Count() == 0)
                {
                    throw new ProgramException(string.Format("no bars returned from end point:{0}", _startTime.ToString()));
                }

                return(_response.Data);
            }
        }