ib-ruby 0.5.10 → 0.5.11
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.
- data/HISTORY +4 -0
- data/VERSION +1 -1
- data/bin/list_orders +8 -1
- data/lib/ib-ruby/connection.rb +6 -0
- data/lib/ib-ruby/models/combo_leg.rb +4 -0
- data/lib/ib-ruby/models/contract/bag.rb +7 -0
- data/lib/ib-ruby/models/order.rb +10 -1
- metadata +2 -2
data/HISTORY
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.11
|
data/bin/list_orders
CHANGED
@@ -15,7 +15,14 @@ require 'ib-ruby'
|
|
15
15
|
ib = IB::Connection.new :client_id => 0
|
16
16
|
|
17
17
|
# Subscribe to TWS alerts/errors and order-related messages
|
18
|
-
|
18
|
+
@counter = 0
|
19
|
+
|
20
|
+
ib.subscribe(:Alert, :OrderStatus) { |msg| puts msg.to_human }
|
21
|
+
|
22
|
+
ib.subscribe(:OpenOrder) do |msg|
|
23
|
+
@counter += 1
|
24
|
+
puts "#{@counter}: #{msg.to_human}"
|
25
|
+
end
|
19
26
|
|
20
27
|
ib.send_message :RequestAllOpenOrders
|
21
28
|
|
data/lib/ib-ruby/connection.rb
CHANGED
@@ -27,6 +27,11 @@ module IB
|
|
27
27
|
:reader => true
|
28
28
|
}
|
29
29
|
|
30
|
+
# Singleton to make active Connection universally accessible as IB::Connection.current
|
31
|
+
class << self
|
32
|
+
attr_accessor :current
|
33
|
+
end
|
34
|
+
|
30
35
|
attr_reader :server # Info about IB server and server connection state
|
31
36
|
attr_accessor :next_order_id # Next valid order id
|
32
37
|
|
@@ -39,6 +44,7 @@ module IB
|
|
39
44
|
|
40
45
|
connect if @options[:connect]
|
41
46
|
start_reader if @options[:reader]
|
47
|
+
Connection.current = self
|
42
48
|
end
|
43
49
|
|
44
50
|
# Message subscribers. Key is the message class to listen for.
|
@@ -5,6 +5,10 @@ module IB
|
|
5
5
|
# is not really a contract, but a combination (combo) of securities. AKA basket
|
6
6
|
# or bag of securities.
|
7
7
|
class ComboLeg < Model
|
8
|
+
# General Notes:
|
9
|
+
# 1. The exchange for the leg definition must match that of the combination order.
|
10
|
+
# The exception is for a STK leg definition, which must specify the SMART exchange.
|
11
|
+
|
8
12
|
# // open/close leg value is same as combo
|
9
13
|
# Specifies whether the order is an open or close order. Valid values are:
|
10
14
|
SAME = 0 # Same as the parent security. The only option for retail customers.
|
@@ -3,10 +3,15 @@ require 'ib-ruby/models/contract'
|
|
3
3
|
module IB
|
4
4
|
module Models
|
5
5
|
class Contract
|
6
|
+
|
6
7
|
# "BAG" is not really a contract, but a combination (combo) of securities.
|
7
8
|
# AKA basket or bag of securities. Individual securities in combo are represented
|
8
9
|
# by ComboLeg objects.
|
9
10
|
class Bag < Contract
|
11
|
+
# General Notes:
|
12
|
+
# 1. :exchange for the leg definition must match that of the combination order.
|
13
|
+
# The exception is for a STK legs, which must specify the SMART exchange.
|
14
|
+
# 2. :symbol => "USD" For combo Contract, this is an arbitrary value (like �USD�)
|
10
15
|
|
11
16
|
def initialize opts = {}
|
12
17
|
super opts
|
@@ -26,7 +31,9 @@ module IB
|
|
26
31
|
end
|
27
32
|
|
28
33
|
end # class Bag
|
34
|
+
|
29
35
|
TYPES[IB::SECURITY_TYPES[:bag]] = Bag
|
36
|
+
|
30
37
|
end # class Contract
|
31
38
|
end # module Models
|
32
39
|
end # module IB
|
data/lib/ib-ruby/models/order.rb
CHANGED
@@ -6,6 +6,15 @@ module IB
|
|
6
6
|
module Models
|
7
7
|
class Order < Model
|
8
8
|
|
9
|
+
# General Notes:
|
10
|
+
# 1. Placing Orders by con_id - When you place an order by con_id, you must
|
11
|
+
# provide the con_id AND the exchange. If you provide extra fields when placing
|
12
|
+
# an order by conid, the order may not work.
|
13
|
+
|
14
|
+
# 2. Order IDs - Each order you place must have a unique Order ID. We recommend
|
15
|
+
# that you increment your own Order IDs to avoid conflicts between orders placed
|
16
|
+
# from your API application.
|
17
|
+
|
9
18
|
# Constants used in Order objects. Drawn from Order.java
|
10
19
|
Origin_Customer = 0
|
11
20
|
Origin_Firm = 1
|
@@ -345,7 +354,7 @@ module IB
|
|
345
354
|
|
346
355
|
def to_human
|
347
356
|
"<Order: #{@status} #{@order_type} #{@action} #{@total_quantity} @ #{@limit_price}" +
|
348
|
-
|
357
|
+
" #{@tif} id/perm: #{@id}/#{@perm_id}>"
|
349
358
|
end
|
350
359
|
end # class Order
|
351
360
|
end # module Models
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ib-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.5.
|
5
|
+
version: 0.5.11
|
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: 2011-12-
|
14
|
+
date: 2011-12-20 00:00:00 -08:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|