oanda_api_v20 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +10 -0
- data/lib/oanda_api_v20.rb +1 -0
- data/lib/oanda_api_v20/api.rb +2 -1
- data/lib/oanda_api_v20/client.rb +8 -2
- data/lib/oanda_api_v20/instruments.rb +11 -0
- data/lib/oanda_api_v20/version.rb +1 -1
- data/spec/oanda_api_v20/api_spec.rb +10 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c701def72ef104194002af2f65acc194a8f2b37
|
4
|
+
data.tar.gz: 5ed313d698c3b7914ae9f2a02e76bcf28e857506
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcd956994384f069a5b26d01f0ed79db68069bbced7d889a125a0da1515f8d9de751eef77d3b753306f3089e1425aae2f11e12d88c1cc1ece4740ad569d2c795
|
7
|
+
data.tar.gz: bafa52e682df3017a7fadaf73811a6699cdb580de817ffac280416ebf6e0afcb3def4298956db92a63dd1e597c463aec9759cdd3bcd4bc096a4c990a767d1b52
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 1.2.0
|
4
|
+
#### 2016-12-03
|
5
|
+
* Added the instruments method to retrieve candlestick data.
|
6
|
+
|
3
7
|
## 1.1.0
|
4
8
|
#### 2016-10-24
|
5
9
|
* Added an optional field to the account instruments method to query only a list of instruments instead of returning all instruments.
|
data/README.md
CHANGED
@@ -69,6 +69,16 @@ options = { alias: 'My New Account #2' }
|
|
69
69
|
client.account('account_id').configuration(options).update
|
70
70
|
```
|
71
71
|
|
72
|
+
### Instruments
|
73
|
+
|
74
|
+
See the [Oanda Documentation](http://developer.oanda.com/rest-live-v20/instrument-ep/) for all available options on instruments.
|
75
|
+
|
76
|
+
```ruby
|
77
|
+
options = { count: 10 }
|
78
|
+
|
79
|
+
client.instrument('EUR_USD').candles(options).show
|
80
|
+
```
|
81
|
+
|
72
82
|
### Orders
|
73
83
|
|
74
84
|
See the [Oanda Documentation](http://developer.oanda.com/rest-live-v20/orders-ep/) for all available options on orders.
|
data/lib/oanda_api_v20.rb
CHANGED
@@ -5,6 +5,7 @@ require 'http/exceptions'
|
|
5
5
|
require 'oanda_api_v20/version'
|
6
6
|
require 'oanda_api_v20/exceptions'
|
7
7
|
require 'oanda_api_v20/accounts'
|
8
|
+
require 'oanda_api_v20/instruments'
|
8
9
|
require 'oanda_api_v20/orders'
|
9
10
|
require 'oanda_api_v20/trades'
|
10
11
|
require 'oanda_api_v20/positions'
|
data/lib/oanda_api_v20/api.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
module OandaApiV20
|
2
2
|
class Api
|
3
3
|
include Accounts
|
4
|
+
include Instruments
|
4
5
|
include Orders
|
5
6
|
include Trades
|
6
7
|
include Positions
|
7
8
|
include Transactions
|
8
9
|
include Pricing
|
9
10
|
|
10
|
-
attr_accessor :http_verb, :base_uri, :headers, :account_id, :last_transaction_id
|
11
|
+
attr_accessor :http_verb, :base_uri, :headers, :account_id, :instrument, :last_transaction_id
|
11
12
|
|
12
13
|
def initialize(options = {})
|
13
14
|
options.each do |key, value|
|
data/lib/oanda_api_v20/client.rb
CHANGED
@@ -66,6 +66,7 @@ module OandaApiV20
|
|
66
66
|
when *api_methods
|
67
67
|
set_last_action_and_arguments(name, args)
|
68
68
|
set_account_id(args.first) if name == :account
|
69
|
+
set_instrument(args.first) if name == :instrument
|
69
70
|
self
|
70
71
|
else
|
71
72
|
super
|
@@ -74,10 +75,10 @@ module OandaApiV20
|
|
74
75
|
|
75
76
|
private
|
76
77
|
|
77
|
-
attr_accessor :http_verb, :account_id, :last_transaction_id, :last_action, :last_arguments, :last_api_request_at
|
78
|
+
attr_accessor :http_verb, :account_id, :instrument, :last_transaction_id, :last_action, :last_arguments, :last_api_request_at
|
78
79
|
|
79
80
|
def api_methods
|
80
|
-
Accounts.instance_methods + Orders.instance_methods + Trades.instance_methods + Positions.instance_methods + Transactions.instance_methods + Pricing.instance_methods
|
81
|
+
Accounts.instance_methods + Instruments.instance_methods + Orders.instance_methods + Trades.instance_methods + Positions.instance_methods + Transactions.instance_methods + Pricing.instance_methods
|
81
82
|
end
|
82
83
|
|
83
84
|
def govern_api_request_rate
|
@@ -107,6 +108,10 @@ module OandaApiV20
|
|
107
108
|
self.account_id = id
|
108
109
|
end
|
109
110
|
|
111
|
+
def set_instrument(instrument)
|
112
|
+
self.instrument = instrument
|
113
|
+
end
|
114
|
+
|
110
115
|
def set_last_transaction_id(id)
|
111
116
|
self.last_transaction_id = id
|
112
117
|
end
|
@@ -130,6 +135,7 @@ module OandaApiV20
|
|
130
135
|
base_uri: base_uri,
|
131
136
|
headers: headers,
|
132
137
|
account_id: account_id,
|
138
|
+
instrument: instrument,
|
133
139
|
last_transaction_id: last_transaction_id
|
134
140
|
}
|
135
141
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# @see http://developer.oanda.com/rest-live-v20/instrument-ep/
|
2
|
+
module OandaApiV20
|
3
|
+
module Instruments
|
4
|
+
attr_accessor :instrument
|
5
|
+
|
6
|
+
# GET /v3/instruments/:instrument/candles
|
7
|
+
def candles(options = {})
|
8
|
+
Client.send(http_verb, "#{base_uri}/instruments/#{instrument}/candles", headers: headers, query: options)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -99,6 +99,16 @@ describe OandaApiV20::Api do
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
context 'instruments for' do
|
103
|
+
let!(:api) { OandaApiV20::Api.new(base_uri: 'https://api-fxtrade.oanda.com/v3', account_id: '100-100-100', instrument: 'EUR_USD', headers: {}) }
|
104
|
+
|
105
|
+
it 'retrieving candlestick data' do
|
106
|
+
options = { 'count' => '10' }
|
107
|
+
api.candles(options)
|
108
|
+
expect(a_request(:get, 'https://api-fxtrade.oanda.com/v3/instruments/EUR_USD/candles').with(query: options)).to have_been_made.once
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
102
112
|
context 'orders for' do
|
103
113
|
it 'retrieving an order' do
|
104
114
|
api.order('1')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oanda_api_v20
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kobus Joubert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/oanda_api_v20/api.rb
|
129
129
|
- lib/oanda_api_v20/client.rb
|
130
130
|
- lib/oanda_api_v20/exceptions.rb
|
131
|
+
- lib/oanda_api_v20/instruments.rb
|
131
132
|
- lib/oanda_api_v20/oanda_api_v20.rb
|
132
133
|
- lib/oanda_api_v20/orders.rb
|
133
134
|
- lib/oanda_api_v20/positions.rb
|