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); }
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(); */ }
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); } }