ib-ruby 0.7.4 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/HISTORY +8 -0
- data/README.md +2 -2
- data/Rakefile +15 -0
- data/TODO +7 -2
- data/VERSION +1 -1
- data/bin/account_info +1 -1
- data/bin/cancel_orders +1 -1
- data/bin/contract_details +1 -1
- data/bin/depth_of_market +1 -1
- data/bin/fa_accounts +1 -1
- data/bin/fundamental_data +42 -0
- data/bin/historic_data +1 -1
- data/bin/historic_data_cli +1 -1
- data/bin/list_orders +1 -2
- data/bin/market_data +1 -1
- data/bin/option_data +1 -1
- data/bin/place_combo_order +1 -1
- data/bin/place_order +1 -1
- data/bin/template +1 -4
- data/bin/tick_data +2 -2
- data/bin/time_and_sales +1 -1
- data/lib/ib-ruby.rb +4 -0
- data/lib/ib-ruby/connection.rb +50 -34
- data/lib/ib-ruby/constants.rb +232 -37
- data/lib/ib-ruby/db.rb +25 -0
- data/lib/ib-ruby/extensions.rb +51 -1
- data/lib/ib-ruby/messages/abstract_message.rb +0 -8
- data/lib/ib-ruby/messages/incoming.rb +18 -493
- data/lib/ib-ruby/messages/incoming/abstract_message.rb +100 -0
- data/lib/ib-ruby/messages/incoming/alert.rb +34 -0
- data/lib/ib-ruby/messages/incoming/contract_data.rb +82 -0
- data/lib/ib-ruby/messages/incoming/delta_neutral_validation.rb +20 -0
- data/lib/ib-ruby/messages/incoming/execution_data.rb +59 -0
- data/lib/ib-ruby/messages/incoming/historical_data.rb +55 -0
- data/lib/ib-ruby/messages/incoming/market_depths.rb +44 -0
- data/lib/ib-ruby/messages/incoming/open_order.rb +32 -16
- data/lib/ib-ruby/messages/incoming/order_status.rb +67 -0
- data/lib/ib-ruby/messages/incoming/portfolio_value.rb +39 -0
- data/lib/ib-ruby/messages/incoming/real_time_bar.rb +32 -0
- data/lib/ib-ruby/messages/incoming/scanner_data.rb +49 -0
- data/lib/ib-ruby/messages/outgoing.rb +25 -223
- data/lib/ib-ruby/messages/outgoing/abstract_message.rb +61 -0
- data/lib/ib-ruby/messages/outgoing/bar_requests.rb +149 -0
- data/lib/ib-ruby/messages/outgoing/place_order.rb +24 -0
- data/lib/ib-ruby/models.rb +4 -0
- data/lib/ib-ruby/models/bar.rb +31 -14
- data/lib/ib-ruby/models/combo_leg.rb +48 -23
- data/lib/ib-ruby/models/contracts.rb +2 -2
- data/lib/ib-ruby/models/contracts/bag.rb +11 -7
- data/lib/ib-ruby/models/contracts/contract.rb +90 -66
- data/lib/ib-ruby/models/contracts/option.rb +16 -7
- data/lib/ib-ruby/models/execution.rb +34 -18
- data/lib/ib-ruby/models/model.rb +15 -7
- data/lib/ib-ruby/models/model_properties.rb +101 -44
- data/lib/ib-ruby/models/order.rb +176 -187
- data/lib/ib-ruby/models/order_state.rb +99 -0
- data/lib/ib-ruby/symbols/forex.rb +10 -10
- data/lib/ib-ruby/symbols/futures.rb +6 -6
- data/lib/ib-ruby/symbols/stocks.rb +3 -3
- data/spec/account_helper.rb +4 -5
- data/spec/combo_helper.rb +4 -4
- data/spec/db.rb +18 -0
- data/spec/ib-ruby/messages/{incoming_spec.rb → incoming/alert_spec.rb} +1 -0
- data/spec/ib-ruby/messages/incoming/open_order_spec.rb +100 -0
- data/spec/ib-ruby/messages/incoming/order_status_spec.rb +74 -0
- data/spec/ib-ruby/messages/{outgoing_spec.rb → outgoing/account_data_spec.rb} +0 -0
- data/spec/ib-ruby/messages/outgoing/market_data_type_spec.rb +44 -0
- data/spec/ib-ruby/models/bag_spec.rb +97 -0
- data/spec/ib-ruby/models/bar_spec.rb +45 -0
- data/spec/ib-ruby/models/combo_leg_spec.rb +56 -40
- data/spec/ib-ruby/models/contract_spec.rb +134 -170
- data/spec/ib-ruby/models/execution_spec.rb +35 -50
- data/spec/ib-ruby/models/option_spec.rb +127 -0
- data/spec/ib-ruby/models/order_spec.rb +89 -68
- data/spec/ib-ruby/models/order_state_spec.rb +55 -0
- data/spec/integration/contract_info_spec.rb +4 -6
- data/spec/integration/fundamental_data_spec.rb +41 -0
- data/spec/integration/historic_data_spec.rb +4 -4
- data/spec/integration/market_data_spec.rb +1 -3
- data/spec/integration/orders/attached_spec.rb +8 -10
- data/spec/integration/orders/combo_spec.rb +2 -2
- data/spec/integration/orders/execution_spec.rb +0 -1
- data/spec/integration/orders/placement_spec.rb +1 -3
- data/spec/integration/orders/valid_ids_spec.rb +1 -2
- data/spec/message_helper.rb +1 -1
- data/spec/model_helper.rb +211 -0
- data/spec/order_helper.rb +44 -37
- data/spec/spec_helper.rb +36 -23
- data/spec/v.rb +7 -0
- data/tasks/doc.rake +1 -1
- metadata +116 -12
- data/spec/integration/orders/open_order +0 -98
data/spec/order_helper.rb
CHANGED
@@ -17,6 +17,14 @@ shared_examples_for 'Placed Order' do
|
|
17
17
|
it 'receives confirmation of Order submission' do
|
18
18
|
order_should_be /Submit/ # ()Pre)Submitted
|
19
19
|
status_should_be /Submit/
|
20
|
+
|
21
|
+
if @attached_order
|
22
|
+
if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
|
23
|
+
pending 'API Bug: Attached GTC orders not working for butterflies!'
|
24
|
+
else
|
25
|
+
order_should_be /Submit/, @attached_order
|
26
|
+
end
|
27
|
+
end
|
20
28
|
end
|
21
29
|
end # Placing
|
22
30
|
|
@@ -43,8 +51,8 @@ shared_examples_for 'Placed Order' do
|
|
43
51
|
status_should_be /Submitted/
|
44
52
|
|
45
53
|
if @attached_order
|
46
|
-
if contract_type == :butterfly && @attached_order.tif ==
|
47
|
-
pending 'API Bug: Attached
|
54
|
+
if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
|
55
|
+
pending 'API Bug: Attached GTC orders not working for butterflies!'
|
48
56
|
else
|
49
57
|
order_should_be /Submit/, @attached_order
|
50
58
|
end
|
@@ -54,21 +62,19 @@ shared_examples_for 'Placed Order' do
|
|
54
62
|
|
55
63
|
context "Modifying Order" do
|
56
64
|
before(:all) do
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
@ib.modify_order @attached_order, @contract
|
71
|
-
end
|
65
|
+
# Modification only works for non-attached orders
|
66
|
+
@order.total_quantity *= 2
|
67
|
+
@order.limit_price += 0.05
|
68
|
+
@order.transmit = true
|
69
|
+
@order.tif = 'GTC'
|
70
|
+
@ib.modify_order @order, @contract
|
71
|
+
|
72
|
+
if @attached_order
|
73
|
+
# Modify attached order, if any
|
74
|
+
@attached_order.limit_price += 0.05
|
75
|
+
@attached_order.total_quantity *= 2
|
76
|
+
@attached_order.tif = 'GTC'
|
77
|
+
@ib.modify_order @attached_order, @contract
|
72
78
|
end
|
73
79
|
@ib.send_message :RequestOpenOrders
|
74
80
|
@ib.wait_for :OpenOrderEnd, 6 #sec
|
@@ -92,8 +98,8 @@ shared_examples_for 'Placed Order' do
|
|
92
98
|
status_should_be /Submit/
|
93
99
|
|
94
100
|
if @attached_order
|
95
|
-
if contract_type == :butterfly && @attached_order.tif ==
|
96
|
-
pending 'API Bug: Attached
|
101
|
+
if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
|
102
|
+
pending 'API Bug: Attached GTC orders not working for butterflies!'
|
97
103
|
else
|
98
104
|
order_should_be /Submit/, @attached_order
|
99
105
|
end
|
@@ -127,8 +133,8 @@ shared_examples_for 'Placed Order' do
|
|
127
133
|
it 'receives cancellation Order Status' do
|
128
134
|
status_should_be /Cancel/ # Cancelled / PendingCancel
|
129
135
|
if @attached_order
|
130
|
-
if contract_type == :butterfly && @attached_order.tif ==
|
131
|
-
pending 'API Bug: Attached
|
136
|
+
if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
|
137
|
+
pending 'API Bug: Attached GTC orders not working for butterflies!'
|
132
138
|
else
|
133
139
|
status_should_be /Cancel/, @attached_order
|
134
140
|
end
|
@@ -145,7 +151,7 @@ end
|
|
145
151
|
|
146
152
|
### Helpers for placing and verifying orders
|
147
153
|
|
148
|
-
def place_order contract, opts
|
154
|
+
def place_order contract, opts = {}
|
149
155
|
@contract = contract
|
150
156
|
@order = IB::Order.new({:total_quantity => 100,
|
151
157
|
:limit_price => 9.13,
|
@@ -163,24 +169,25 @@ def status_should_be status, order=@order
|
|
163
169
|
end
|
164
170
|
msg.should_not be_nil
|
165
171
|
msg.should be_an IB::Messages::Incoming::OrderStatus
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
172
|
+
order_state = msg.order_state
|
173
|
+
order_state.order_id.should == order.order_id
|
174
|
+
order_state.perm_id.should be_an Integer
|
175
|
+
order_state.client_id.should == OPTS[:connection][:client_id]
|
176
|
+
order_state.parent_id.should == 0 unless @attached_order
|
177
|
+
order_state.why_held.should == ''
|
171
178
|
|
172
179
|
if @contract == IB::Symbols::Forex[:eurusd]
|
173
180
|
# We know that this order filled for sure
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
181
|
+
order_state.filled.should == 20000
|
182
|
+
order_state.remaining.should == 0
|
183
|
+
order_state.average_fill_price.should be > 1
|
184
|
+
order_state.average_fill_price.should be < 2
|
185
|
+
order_state.last_fill_price.should == order_state.average_fill_price
|
179
186
|
else
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
187
|
+
order_state.filled.should == 0
|
188
|
+
order_state.remaining.should == order.total_quantity
|
189
|
+
order_state.average_fill_price.should == 0
|
190
|
+
order_state.last_fill_price.should == 0
|
184
191
|
end
|
185
192
|
end
|
186
193
|
|
@@ -216,5 +223,5 @@ def execution_should_be side, opts={}
|
|
216
223
|
exec.price.should be > 1
|
217
224
|
exec.price.should be < 2
|
218
225
|
exec.price.should == exec.average_price
|
219
|
-
exec.liquidation.should ==
|
226
|
+
exec.liquidation.should == false
|
220
227
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,30 @@
|
|
1
1
|
require 'rspec'
|
2
2
|
require 'ib-ruby'
|
3
3
|
|
4
|
+
# Top level metadata for test suite level hacking
|
5
|
+
OPTS ||= {
|
6
|
+
:verbose => false, #true, # Verbosity of test outputs
|
7
|
+
:brokertron => false, # Use mock (Brokertron) instead of paper account
|
8
|
+
}
|
9
|
+
|
10
|
+
if OPTS[:brokertron]
|
11
|
+
# Connection to mock (Brokertron) account
|
12
|
+
OPTS[:connection] =
|
13
|
+
{:client_id => 1111, # Just an arbitrary id
|
14
|
+
:host => 'free.brokertron.com',
|
15
|
+
:port=> 10501
|
16
|
+
}
|
17
|
+
else
|
18
|
+
# Connection to IB PAPER ACCOUNT
|
19
|
+
OPTS[:connection] =
|
20
|
+
{:account_name => 'DU118180', # Your IB PAPER ACCOUNT, tests will only run against it
|
21
|
+
:client_id => 1111, # Just an arbitrary id
|
22
|
+
:host => '10.211.55.2', # Where your TWS/gateway is located, likely '127.0.0.1'
|
23
|
+
:port => 4001, # 4001 for Gateway, 7496 for TWS GUI
|
24
|
+
:reuters => true # Subscription to Reuters data enabled ?
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
4
28
|
RSpec.configure do |config|
|
5
29
|
config.exclusion_filter = {
|
6
30
|
:if => proc do |condition|
|
@@ -13,34 +37,23 @@ RSpec.configure do |config|
|
|
13
37
|
# 17:15 - 17:00 (ET) Sunday-Friday Forex 22:15 - 22:00 (UTC)
|
14
38
|
!(t.wday > 0 && t.wday < 5 || t.wday == 5 && t.hour < 22)
|
15
39
|
end
|
16
|
-
end
|
40
|
+
end,
|
41
|
+
|
42
|
+
:db => proc { |condition| !IB::DB == condition }, # true/false
|
43
|
+
|
44
|
+
:reuters => proc { |condition| !OPTS[:connection][:reuters] == condition } # true/false
|
17
45
|
}
|
18
46
|
# config.filter = { :focus => true }
|
19
47
|
# config.include(UserExampleHelpers)
|
20
48
|
# config.mock_with :mocha
|
21
49
|
# config.mock_with :flexmock
|
22
50
|
# config.mock_with :rr
|
23
|
-
end
|
24
|
-
|
25
|
-
# Top level metadata for test suite level hacking
|
26
|
-
OPTS = {
|
27
|
-
:silent => true, #false, #true, # Verbosity of test outputs
|
28
|
-
:brokertron => false, # Use mock (Brokertron) instead of paper account
|
29
|
-
}
|
30
51
|
|
31
|
-
if
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
}
|
38
|
-
else
|
39
|
-
# Connection to IB PAPER ACCOUNT
|
40
|
-
OPTS[:connection] =
|
41
|
-
{:account_name => 'DU118180', # Your IB PAPER ACCOUNT, tests will only run against it
|
42
|
-
:client_id => 1111, # Just an arbitrary id
|
43
|
-
:host => '10.211.55.2', # Where your TWS/gateway is located, likely '127.0.0.1'
|
44
|
-
:port => 4001 # 4001 for Gateway, 7496 for TWS GUI
|
45
|
-
}
|
52
|
+
if IB::DB
|
53
|
+
config.before(:suite) do
|
54
|
+
DatabaseCleaner.strategy = :truncation
|
55
|
+
DatabaseCleaner.clean
|
56
|
+
end
|
57
|
+
end
|
46
58
|
end
|
59
|
+
|
data/spec/v.rb
ADDED
data/tasks/doc.rake
CHANGED
@@ -2,7 +2,7 @@ desc 'Alias to doc:rdoc'
|
|
2
2
|
task :doc => 'doc:rdoc'
|
3
3
|
|
4
4
|
namespace :doc do
|
5
|
-
require '
|
5
|
+
require 'rdoc/task'
|
6
6
|
Rake::RDocTask.new do |rdoc|
|
7
7
|
# Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "clobber", :rerdoc => "rerdoc") do |rdoc|
|
8
8
|
rdoc.rdoc_dir = DOC_PATH.basename.to_s
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ib-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.7.
|
5
|
+
version: 0.7.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Paul Legato
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2012-04-
|
14
|
+
date: 2012-04-18 00:00:00 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -25,27 +25,93 @@ dependencies:
|
|
25
25
|
type: :runtime
|
26
26
|
version_requirements: *id001
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: activerecord
|
29
29
|
prerelease: false
|
30
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.0.1
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: activerecord-jdbcsqlite3-adapter
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.2.2
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: jdbc-sqlite3
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 3.7.2
|
58
|
+
type: :runtime
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: xml-simple
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.1.1
|
69
|
+
type: :runtime
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: standalone_migrations
|
73
|
+
prerelease: false
|
74
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: database_cleaner
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
31
86
|
none: false
|
32
87
|
requirements:
|
33
88
|
- - ">="
|
34
89
|
- !ruby/object:Gem::Version
|
35
90
|
version: 2.8.0
|
36
91
|
type: :development
|
37
|
-
version_requirements: *
|
92
|
+
version_requirements: *id007
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: rspec
|
95
|
+
prerelease: false
|
96
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 2.8.0
|
102
|
+
type: :development
|
103
|
+
version_requirements: *id008
|
38
104
|
- !ruby/object:Gem::Dependency
|
39
105
|
name: my_scripts
|
40
106
|
prerelease: false
|
41
|
-
requirement: &
|
107
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
42
108
|
none: false
|
43
109
|
requirements:
|
44
110
|
- - ">="
|
45
111
|
- !ruby/object:Gem::Version
|
46
112
|
version: "0"
|
47
113
|
type: :development
|
48
|
-
version_requirements: *
|
114
|
+
version_requirements: *id009
|
49
115
|
description: Ruby Implementation of the Interactive Brokers TWS API
|
50
116
|
email:
|
51
117
|
- pjlegato@gmail.com
|
@@ -56,6 +122,7 @@ executables:
|
|
56
122
|
- contract_details
|
57
123
|
- depth_of_market
|
58
124
|
- fa_accounts
|
125
|
+
- fundamental_data
|
59
126
|
- historic_data
|
60
127
|
- historic_data_cli
|
61
128
|
- list_orders
|
@@ -76,6 +143,7 @@ files:
|
|
76
143
|
- bin/contract_details
|
77
144
|
- bin/depth_of_market
|
78
145
|
- bin/fa_accounts
|
146
|
+
- bin/fundamental_data
|
79
147
|
- bin/historic_data
|
80
148
|
- bin/historic_data_cli
|
81
149
|
- bin/list_orders
|
@@ -89,6 +157,7 @@ files:
|
|
89
157
|
- lib/ib-ruby.rb
|
90
158
|
- lib/ib-ruby/connection.rb
|
91
159
|
- lib/ib-ruby/constants.rb
|
160
|
+
- lib/ib-ruby/db.rb
|
92
161
|
- lib/ib-ruby/errors.rb
|
93
162
|
- lib/ib-ruby/extensions.rb
|
94
163
|
- lib/ib-ruby/logger.rb
|
@@ -100,8 +169,22 @@ files:
|
|
100
169
|
- lib/ib-ruby/messages/abstract_message.rb
|
101
170
|
- lib/ib-ruby/messages/incoming.rb
|
102
171
|
- lib/ib-ruby/messages/outgoing.rb
|
172
|
+
- lib/ib-ruby/messages/incoming/abstract_message.rb
|
173
|
+
- lib/ib-ruby/messages/incoming/alert.rb
|
174
|
+
- lib/ib-ruby/messages/incoming/contract_data.rb
|
175
|
+
- lib/ib-ruby/messages/incoming/delta_neutral_validation.rb
|
176
|
+
- lib/ib-ruby/messages/incoming/execution_data.rb
|
177
|
+
- lib/ib-ruby/messages/incoming/historical_data.rb
|
178
|
+
- lib/ib-ruby/messages/incoming/market_depths.rb
|
103
179
|
- lib/ib-ruby/messages/incoming/open_order.rb
|
180
|
+
- lib/ib-ruby/messages/incoming/order_status.rb
|
181
|
+
- lib/ib-ruby/messages/incoming/portfolio_value.rb
|
182
|
+
- lib/ib-ruby/messages/incoming/real_time_bar.rb
|
183
|
+
- lib/ib-ruby/messages/incoming/scanner_data.rb
|
104
184
|
- lib/ib-ruby/messages/incoming/ticks.rb
|
185
|
+
- lib/ib-ruby/messages/outgoing/abstract_message.rb
|
186
|
+
- lib/ib-ruby/messages/outgoing/bar_requests.rb
|
187
|
+
- lib/ib-ruby/messages/outgoing/place_order.rb
|
105
188
|
- lib/ib-ruby/models/bar.rb
|
106
189
|
- lib/ib-ruby/models/combo_leg.rb
|
107
190
|
- lib/ib-ruby/models/contracts.rb
|
@@ -109,6 +192,7 @@ files:
|
|
109
192
|
- lib/ib-ruby/models/model.rb
|
110
193
|
- lib/ib-ruby/models/model_properties.rb
|
111
194
|
- lib/ib-ruby/models/order.rb
|
195
|
+
- lib/ib-ruby/models/order_state.rb
|
112
196
|
- lib/ib-ruby/models/contracts/bag.rb
|
113
197
|
- lib/ib-ruby/models/contracts/contract.rb
|
114
198
|
- lib/ib-ruby/models/contracts/option.rb
|
@@ -118,29 +202,39 @@ files:
|
|
118
202
|
- lib/ib-ruby/symbols/stocks.rb
|
119
203
|
- spec/account_helper.rb
|
120
204
|
- spec/combo_helper.rb
|
205
|
+
- spec/db.rb
|
121
206
|
- spec/integration_helper.rb
|
122
207
|
- spec/message_helper.rb
|
208
|
+
- spec/model_helper.rb
|
123
209
|
- spec/order_helper.rb
|
124
210
|
- spec/README.md
|
125
211
|
- spec/spec_helper.rb
|
126
212
|
- spec/TODO
|
213
|
+
- spec/v.rb
|
127
214
|
- spec/ib-ruby/connection_spec.rb
|
128
|
-
- spec/ib-ruby/messages/
|
129
|
-
- spec/ib-ruby/messages/
|
215
|
+
- spec/ib-ruby/messages/incoming/alert_spec.rb
|
216
|
+
- spec/ib-ruby/messages/incoming/open_order_spec.rb
|
217
|
+
- spec/ib-ruby/messages/incoming/order_status_spec.rb
|
218
|
+
- spec/ib-ruby/messages/outgoing/account_data_spec.rb
|
219
|
+
- spec/ib-ruby/messages/outgoing/market_data_type_spec.rb
|
220
|
+
- spec/ib-ruby/models/bag_spec.rb
|
221
|
+
- spec/ib-ruby/models/bar_spec.rb
|
130
222
|
- spec/ib-ruby/models/combo_leg_spec.rb
|
131
223
|
- spec/ib-ruby/models/contract_spec.rb
|
132
224
|
- spec/ib-ruby/models/execution_spec.rb
|
225
|
+
- spec/ib-ruby/models/option_spec.rb
|
133
226
|
- spec/ib-ruby/models/order_spec.rb
|
227
|
+
- spec/ib-ruby/models/order_state_spec.rb
|
134
228
|
- spec/integration/account_info_spec.rb
|
135
229
|
- spec/integration/contract_info_spec.rb
|
136
230
|
- spec/integration/depth_data_spec.rb
|
231
|
+
- spec/integration/fundamental_data_spec.rb
|
137
232
|
- spec/integration/historic_data_spec.rb
|
138
233
|
- spec/integration/market_data_spec.rb
|
139
234
|
- spec/integration/option_data_spec.rb
|
140
235
|
- spec/integration/orders/attached_spec.rb
|
141
236
|
- spec/integration/orders/combo_spec.rb
|
142
237
|
- spec/integration/orders/execution_spec.rb
|
143
|
-
- spec/integration/orders/open_order
|
144
238
|
- spec/integration/orders/placement_spec.rb
|
145
239
|
- spec/integration/orders/valid_ids_spec.rb
|
146
240
|
- tasks/common.rake
|
@@ -186,29 +280,39 @@ summary: Ruby Implementation of the Interactive Brokers TWS API
|
|
186
280
|
test_files:
|
187
281
|
- spec/account_helper.rb
|
188
282
|
- spec/combo_helper.rb
|
283
|
+
- spec/db.rb
|
189
284
|
- spec/integration_helper.rb
|
190
285
|
- spec/message_helper.rb
|
286
|
+
- spec/model_helper.rb
|
191
287
|
- spec/order_helper.rb
|
192
288
|
- spec/README.md
|
193
289
|
- spec/spec_helper.rb
|
194
290
|
- spec/TODO
|
291
|
+
- spec/v.rb
|
195
292
|
- spec/ib-ruby/connection_spec.rb
|
196
|
-
- spec/ib-ruby/messages/
|
197
|
-
- spec/ib-ruby/messages/
|
293
|
+
- spec/ib-ruby/messages/incoming/alert_spec.rb
|
294
|
+
- spec/ib-ruby/messages/incoming/open_order_spec.rb
|
295
|
+
- spec/ib-ruby/messages/incoming/order_status_spec.rb
|
296
|
+
- spec/ib-ruby/messages/outgoing/account_data_spec.rb
|
297
|
+
- spec/ib-ruby/messages/outgoing/market_data_type_spec.rb
|
298
|
+
- spec/ib-ruby/models/bag_spec.rb
|
299
|
+
- spec/ib-ruby/models/bar_spec.rb
|
198
300
|
- spec/ib-ruby/models/combo_leg_spec.rb
|
199
301
|
- spec/ib-ruby/models/contract_spec.rb
|
200
302
|
- spec/ib-ruby/models/execution_spec.rb
|
303
|
+
- spec/ib-ruby/models/option_spec.rb
|
201
304
|
- spec/ib-ruby/models/order_spec.rb
|
305
|
+
- spec/ib-ruby/models/order_state_spec.rb
|
202
306
|
- spec/integration/account_info_spec.rb
|
203
307
|
- spec/integration/contract_info_spec.rb
|
204
308
|
- spec/integration/depth_data_spec.rb
|
309
|
+
- spec/integration/fundamental_data_spec.rb
|
205
310
|
- spec/integration/historic_data_spec.rb
|
206
311
|
- spec/integration/market_data_spec.rb
|
207
312
|
- spec/integration/option_data_spec.rb
|
208
313
|
- spec/integration/orders/attached_spec.rb
|
209
314
|
- spec/integration/orders/combo_spec.rb
|
210
315
|
- spec/integration/orders/execution_spec.rb
|
211
|
-
- spec/integration/orders/open_order
|
212
316
|
- spec/integration/orders/placement_spec.rb
|
213
317
|
- spec/integration/orders/valid_ids_spec.rb
|
214
318
|
has_rdoc:
|