ib-symbols 1.3 → 1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +37 -42
- data/lib/ib/symbols/combo.rb +17 -17
- data/lib/ib/symbols/futures.rb +19 -16
- data/lib/ib/symbols/index.rb +1 -1
- data/lib/ib/symbols/options.rb +71 -58
- data/lib/ib/symbols/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d1bc9c86251e8f43c4459fbeb43235be7321bd250b62cea5313efb666065a51
|
4
|
+
data.tar.gz: 35f69664c447f09ce44914f3ea959f0ced46df15b1569e365f14dd9fc6796075
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '058b8b0bcc0d4de69ba2ae7a647dd2347b7c3425374b603641427b8f68d410a6fa37b4247be9eb2cd59c5856bfeebb042d426936393e6b5e3f4f8971ca9a166b'
|
7
|
+
data.tar.gz: 742fec12dabf7f6c6f85649fd738e42edd86b9e87faf8488e0904cd8043cb5815e55e5c012c1c41aacede24faf519c7c280d2bff9c6265e56819713bb91a4e5f
|
data/README.md
CHANGED
@@ -5,10 +5,7 @@ __Documentation: [https://ib-ruby.github.io/ib-doc/](https://ib-ruby.github.io/i
|
|
5
5
|
|
6
6
|
__Questions, Contributions, Remarks: [Discussions are opened in ib-api](https://github.com/ib-ruby/ib-api/discussions)__
|
7
7
|
|
8
|
-
__Note: In July 2022 IB changed the exchange for german (and swiss) assets to »EUREX«.__ (Version 1.2)
|
9
|
-
|
10
8
|
---
|
11
|
-
|
12
9
|
__Predefined symbols and watchlists for contracts__
|
13
10
|
|
14
11
|
To activate use
|
@@ -25,6 +22,42 @@ in your script
|
|
25
22
|
|
26
23
|
---
|
27
24
|
|
25
|
+
## Handy Templates
|
26
|
+
|
27
|
+
`IB::Symbols::Index`, `IB::Symbols::Futures` and `IB::Symbols::Options` contain most popular contracts.
|
28
|
+
|
29
|
+
To list the predefined contracts use
|
30
|
+
```ruby
|
31
|
+
Symbols::Options.all.each{|y| puts [y,Symbols::Options.send(y).to_human].join( "\t")}
|
32
|
+
aapl <Option: AAPL 202303 call 130.0 SMART USD>
|
33
|
+
ge <Option: GE 202303 call 7.0 SMART USD>
|
34
|
+
goog100 <Option: GOOG 202303 call 100.0 USD>
|
35
|
+
ibm <Option: IBM 202303 put 0.0 SMART >
|
36
|
+
ibm_lazy_expiry <Option: IBM put 140.0 SMART >
|
37
|
+
ibm_lazy_strike <Option: IBM 202303 put 0.0 SMART >
|
38
|
+
...
|
39
|
+
|
40
|
+
Symbols::Futures.all.each{|y| puts [y ,Symbols::Futures.send(y).verify.to_human].join "\t" }
|
41
|
+
dax <Future: DAX 20230317 EUR>
|
42
|
+
es <Future: ES 20230317 USD>
|
43
|
+
eur <Future: EUR 20230313 USD>
|
44
|
+
gbp <Future: GBP 20230313 USD>
|
45
|
+
hsi <Future: HSI 20230330 HKD>
|
46
|
+
jpy <Future: JPY 20230313 USD>
|
47
|
+
...
|
48
|
+
|
49
|
+
```
|
50
|
+
The expiry is set to the next monthly or quaterly option/future expiration date. Most options are defined
|
51
|
+
without a strike. To specify a »real« contract use the merge method:
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
stoxx_option = IB::Symbols::Option.stoxx.merge( expiry: 202306, strike: 3950, right: :call )
|
55
|
+
```
|
56
|
+
|
57
|
+
|
58
|
+
## Watchlists
|
59
|
+
|
60
|
+
|
28
61
|
The GUI-Version of the TWS organizes symbols in different pages (Watchlists).
|
29
62
|
|
30
63
|
**`IB-Ruby`** uses the same concept to organize and optimize operational issues and to support research and systematic trading efforts. The lists are organized as `Enumerator`, which extents its use. This feature lives entirely in the filesystem, no database is required, no further dependency is involved.
|
@@ -38,7 +71,7 @@ By default, Watchlists reside in the `symbols`-directory of `ib-symbols`. This c
|
|
38
71
|
```
|
39
72
|
|
40
73
|
|
41
|
-
|
74
|
+
### Symbol Collections
|
42
75
|
Everything is kept elementary simple: Collections are stored as editable files. The format is YAML.
|
43
76
|
|
44
77
|
The CRUD Cycle
|
@@ -62,46 +95,8 @@ head :012 > IB::Symbols::Demo.all
|
|
62
95
|
=> []
|
63
96
|
```
|
64
97
|
|
65
|
-
## Predefined Collections
|
66
98
|
|
67
|
-
Most popular `Stocks`, `Options`, `Futures`, `Indices` and `Forex-pairs` are hard-coded.
|
68
|
-
```ruby
|
69
|
-
> IB::Symbols::Index.all
|
70
|
-
=> [:a_d, :asx, :dax, :hsi, :minihsi, :spx, :stoxx, :tick, :trin, :vasx, :vdax, :vhsi, :vix, :volume, :vstoxx]
|
71
|
-
> puts IB::Symbols::Index.contracts.values &.to_human
|
72
|
-
<Index: DAX EUR (DAX Performance Index.) >
|
73
|
-
<Index: AP AUD (ASX 200 Index) >
|
74
|
-
<Index: HSI HKD (Hang Seng Index) >
|
75
|
-
(...)
|
76
|
-
<Index: AD-NYSE (NYSE Advance Decline Index) >
|
77
|
-
|
78
|
-
> Symbols::Forex.eurusd.to_human
|
79
|
-
=> "<Contract: EUR forex IDEALPRO USD>"
|
80
|
-
# this contract is valid and can be verified, but the opposide is not supported by IB
|
81
|
-
> Symbols::Forex.usdeur.verify
|
82
|
-
TWS Error 200: No security definition has been found for the request
|
83
|
-
Not a valid Contract :: <Contract: USD forex IDEALPRO EUR>
|
84
99
|
```
|
85
100
|
|
86
|
-
## Pattern based Contract retrieval
|
87
|
-
|
88
|
-
To specify a specific Option can be a boaring job.
|
89
|
-
You might spend hours searching for a simple error, like a forgotten `:currency` oder `:exchange` entry.
|
90
|
-
|
91
|
-
Symbol-Collections can be used as template for everyday searches.
|
92
|
-
|
93
|
-
> Example: Customize a Index-Option with quaterly expiry.
|
94
|
-
>
|
95
|
-
> The hard coded `Symbols::Options.stoxx` template ensures the retrieval of only one option.
|
96
|
-
> A simple merge with customized attributes returns a fully qualified ContractRecord.
|
97
|
-
|
98
|
-
|
99
|
-
```ruby
|
100
|
-
> IB::Symbols.Options.stoxx.to_human
|
101
|
-
=> "<Option: ESTX50 202012 put 3000.0 DTB EUR>"
|
102
|
-
> Symbols::Options.stoxx.merge( strike: 3300, right: :call).to_human
|
103
|
-
=> "<Option: ESTX50 202012 call 3300.0 DTB EUR>"
|
104
|
-
|
105
|
-
```
|
106
101
|
|
107
102
|
|
data/lib/ib/symbols/combo.rb
CHANGED
@@ -8,41 +8,41 @@ module IB
|
|
8
8
|
def self.contracts
|
9
9
|
|
10
10
|
@contracts ||= { #super.merge(
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
stoxx_straddle: IB::Straddle.build( from: IB::Symbols::Index.stoxx, strike: 4000,
|
12
|
+
expiry: IB::Symbols::Futures.next_expiry, trading_class: 'OESX') ,
|
13
|
+
stoxx_calendar: IB::Calendar.build( from: IB::Symbols::Index.stoxx, strike: 4000, back: '2m' ,
|
14
|
+
front: IB::Symbols::Futures.next_expiry, trading_class: 'OESX'),
|
15
|
+
stoxx_butterfly: IB::Butterfly.fabricate( Symbols::Options.stoxx.merge( strike: 3900), front: 3500, back: 4300 ),
|
16
|
+
stoxx_vertical: IB::Vertical.build( from: IB::Symbols::Index.stoxx, sell: 3500, buy: 4000, right: :put,
|
17
|
+
expiry: IB::Symbols::Futures.next_expiry, trading_class: 'OESX'),
|
18
|
+
zn_calendar: IB::Calendar.fabricate( IB::Symbols::Futures.zn, '3m') ,
|
19
19
|
|
20
|
-
|
21
|
-
[ ComboLeg.new( con_id: 270581032 , action: :buy, exchange: 'DTB', ratio: 1), #DBK Dez20 2018 C
|
20
|
+
dbk_straddle: Bag.new( symbol: 'DBK', currency: 'EUR', exchange: 'EUREX', combo_legs:
|
21
|
+
[ ComboLeg.new( con_id: 270581032 , action: :buy, exchange: 'DTB', ratio: 1), #DBK Dez20 2018 C
|
22
22
|
ComboLeg.new( con_id: 270580382, action: :buy, exchange: 'DTB', ratio: 1 ) ], #DBK Dez 20 2018 P
|
23
23
|
description: 'Option Straddle: Deutsche Bank(20)[Dez 2018]'
|
24
|
-
|
25
|
-
|
24
|
+
),
|
25
|
+
ib_mcd: Bag.new( symbol: 'IBKR,MCD', currency: 'USD', combo_legs:
|
26
26
|
[ ComboLeg.new( con_id: 43645865, action: :buy, ratio: 1), # IKBR STK
|
27
27
|
ComboLeg.new( con_id: 9408, action: :sell,ratio: 1 ) ], # MCD STK
|
28
28
|
description: 'Stock Spread: Buy Interactive Brokers, sell Mc Donalds'
|
29
|
-
|
29
|
+
),
|
30
30
|
|
31
31
|
vix_calendar: Bag.new( symbol: 'VIX', currency: 'USD', exchange: 'CFE', combo_legs:
|
32
32
|
[ ComboLeg.new( con_id: 256038899, action: :buy, exchange: 'CFE', ratio: 1), # VIX FUT 201708
|
33
33
|
ComboLeg.new( con_id: 260564703, action: :sell, exchange: 'CFE', ratio: 1 ) ], # VIX FUT 201709
|
34
34
|
description: 'VixFuture Calendar-Spread August - September 2017'
|
35
|
-
|
35
|
+
),
|
36
36
|
wti_coil: Bag.new( symbol: 'WTI', currency: 'USD', exchange: 'SMART', combo_legs:
|
37
|
-
[ ComboLeg.new( con_id: 55928698, action: :buy, exchange: 'IPE', ratio: 1), # WTI future June 2017
|
37
|
+
[ ComboLeg.new( con_id: 55928698, action: :buy, exchange: 'IPE', ratio: 1), # WTI future June 2017
|
38
38
|
ComboLeg.new( con_id: 55850663, action: :sell, exchange: 'IPE', ratio: 1 ) ], # COIL future June 2017
|
39
39
|
description: 'Smart Future Spread WTI - COIL (June 2017) '
|
40
|
-
|
40
|
+
),
|
41
41
|
wti_brent: Bag.new( symbol: 'CL.BZ', currency: 'USD', exchange: 'NYMEX', combo_legs:
|
42
42
|
[ ComboLeg.new( con_id: 47207310, action: :buy, exchange: 'NYMEX', ratio: 1), # CL Dec'16 @NYMEX
|
43
43
|
ComboLeg.new( con_id: 47195961, action: :sell, exchange: 'NYMEX', ratio: 1 ) ], #BZ Dec'16 @NYMEX
|
44
44
|
description: ' WTI - Brent Spread (Dez. 2016)'
|
45
|
-
|
45
|
+
)
|
46
46
|
}
|
47
47
|
# )
|
48
48
|
end
|
data/lib/ib/symbols/futures.rb
CHANGED
@@ -58,7 +58,7 @@ module IB
|
|
58
58
|
def self.contracts
|
59
59
|
@contracts.presence ||( super.merge :ym => IB::Future.new(:symbol => "YM",
|
60
60
|
:expiry => next_expiry,
|
61
|
-
:exchange => "
|
61
|
+
:exchange => "CBOT",
|
62
62
|
:currency => "USD",
|
63
63
|
:description => "Mini-DJIA future"),
|
64
64
|
:nq => IB::Future.new(:symbol => "NQ",
|
@@ -87,13 +87,13 @@ module IB
|
|
87
87
|
:description => "Micro E-Mini S&P 500 future"),
|
88
88
|
:russell => IB::Future.new(:symbol => "RTY",
|
89
89
|
:expiry => next_expiry,
|
90
|
-
:exchange => "CME
|
90
|
+
:exchange => "CME",
|
91
91
|
:currency => "USD",
|
92
|
-
:multiplier =>
|
92
|
+
:multiplier => 50,
|
93
93
|
:description => "Micro E-Mini Russell 2000 future"),
|
94
94
|
:micro_russell => IB::Future.new(:symbol => "M2K",
|
95
95
|
:expiry => next_expiry,
|
96
|
-
:exchange => "CME
|
96
|
+
:exchange => "CME",
|
97
97
|
:currency => "USD",
|
98
98
|
:multiplier => 5,
|
99
99
|
:description => "Micro E-Mini Russell 2000 future"),
|
@@ -101,44 +101,49 @@ module IB
|
|
101
101
|
expiry: next_expiry,
|
102
102
|
currency: 'USD',
|
103
103
|
multiplier: 1000,
|
104
|
-
exchange: '
|
104
|
+
exchange: 'CBOT',
|
105
105
|
description: 'US Treasury Note -- 10 Years'),
|
106
106
|
:zb => IB::Future.new( symbol: 'ZB',
|
107
107
|
expiry: next_expiry,
|
108
108
|
currency: 'USD',
|
109
109
|
multiplier: 1000,
|
110
|
-
exchange: '
|
110
|
+
exchange: 'CBOT',
|
111
111
|
description: 'US Treasury Note -- 30 Years'),
|
112
|
-
:mini_dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
|
112
|
+
:mini_dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
|
113
113
|
expiry: next_expiry,
|
114
114
|
currency: 'EUR',
|
115
115
|
multiplier: 5,
|
116
116
|
description: 'Mini DAX-Future'),
|
117
|
-
:dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
|
117
|
+
:dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
|
118
118
|
expiry: next_expiry,
|
119
119
|
currency: 'EUR',
|
120
120
|
multiplier: 25,
|
121
121
|
description: 'DAX-Future'),
|
122
|
-
:stoxx=> IB::Future.new( symbol: 'ESTX50', exchange: 'EUREX',
|
122
|
+
:stoxx=> IB::Future.new( symbol: 'ESTX50', exchange: 'EUREX',
|
123
123
|
expiry: next_expiry,
|
124
124
|
currency: 'EUR',
|
125
125
|
multiplier: 10,
|
126
126
|
description: 'EuroStoxx 50 -Future'),
|
127
|
+
:mini_stoxx=> IB::Future.new( symbol: 'ESTX50', exchange: 'EUREX',
|
128
|
+
expiry: next_expiry,
|
129
|
+
currency: 'EUR',
|
130
|
+
multiplier: 1,
|
131
|
+
description: 'Mini EuroStoxx 50 -Future'),
|
127
132
|
:gbp => IB::Future.new(:symbol => "GBP",
|
128
133
|
:expiry => next_expiry,
|
129
|
-
:exchange => "
|
134
|
+
:exchange => "CME",
|
130
135
|
:currency => "USD",
|
131
136
|
:multiplier => 62500,
|
132
137
|
:description => "British Pounds future"),
|
133
138
|
:eur => IB::Future.new(:symbol => "EUR",
|
134
139
|
:expiry => next_expiry,
|
135
|
-
:exchange => "
|
140
|
+
:exchange => "CME",
|
136
141
|
:currency => "USD",
|
137
|
-
:multiplier =>
|
142
|
+
:multiplier => 125000,
|
138
143
|
:description => "Euro FX future"),
|
139
144
|
:jpy => IB::Future.new(:symbol => "JPY",
|
140
145
|
:expiry => next_expiry,
|
141
|
-
:exchange => "
|
146
|
+
:exchange => "CME",
|
142
147
|
:currency => "USD",
|
143
148
|
:multiplier => 12500000,
|
144
149
|
:description => "Japanese Yen future"),
|
@@ -150,11 +155,9 @@ module IB
|
|
150
155
|
:description => "Hang Seng Index future"),
|
151
156
|
:vix => IB::Future.new(:symbol => "VIX",
|
152
157
|
:expiry => next_expiry,
|
153
|
-
:exchange => "CFE",
|
158
|
+
:exchange => "CFE",
|
154
159
|
:currency => "USD",
|
155
160
|
:description => "CBOE Volatility Index future"))
|
156
|
-
|
157
|
-
|
158
161
|
end
|
159
162
|
end
|
160
163
|
end
|
data/lib/ib/symbols/index.rb
CHANGED
@@ -21,7 +21,7 @@ module IB
|
|
21
21
|
:vhsi => IB::Index.new( symbol: 'VHSI', exchange: 'HKFE',
|
22
22
|
:description => "Hang Seng Volatility Index"),
|
23
23
|
:vasx => IB::Index.new( symbol: 'XVI', exchange: 'ASX',
|
24
|
-
:description => "ASX 200 Volatility Index") ,
|
24
|
+
:description => "ASX 200 Volatility Index") ,
|
25
25
|
:vstoxx => IB::Index.new(:symbol => "V2TX", :currency => "EUR", exchange: 'EUREX',
|
26
26
|
:description => "VSTOXX Volatility Index"),
|
27
27
|
:vdax => IB::Index.new(:symbol => "VDAX", exchange: 'EUREX',
|
data/lib/ib/symbols/options.rb
CHANGED
@@ -6,75 +6,88 @@ module IB
|
|
6
6
|
module Options
|
7
7
|
extend Symbols
|
8
8
|
|
9
|
-
|
10
|
-
## usage: IB::Symbols::Options.stoxx.merge( strike: 3300 )
|
9
|
+
## usage: IB::Symbols::Options.stoxx.merge( strike: 3300, expiry: 202304 )
|
11
10
|
def self.contracts
|
12
11
|
@contracts ||= {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
12
|
+
stoxx: IB::Option.new(symbol: :ESTX50,
|
13
|
+
expiry: IB::Symbols::Futures.next_expiry ,
|
14
|
+
right: :put,
|
15
|
+
trading_class: 'OESX',
|
16
|
+
currency: 'EUR',
|
17
|
+
exchange: 'EUREX',
|
18
|
+
description: "Monthly settled ESTX50 Options"),
|
19
|
+
spx: IB::Option.new( symbol: :SPX,
|
20
|
+
expiry: IB::Symbols::Futures.next_expiry ,
|
21
|
+
right: :put,
|
22
|
+
trading_class: 'SPX',
|
23
|
+
currency: 'USD',
|
24
|
+
exchange: 'SMART',
|
25
|
+
description: "Monthly settled SPX options"),
|
26
|
+
spxw: IB::Option.new( symbol: :SPX,
|
27
|
+
expiry: IB::Symbols::Futures.next_expiry ,
|
28
|
+
right: :put,
|
29
|
+
trading_class: 'SPXW',
|
30
|
+
currency: 'USD', exchange: 'SMART',
|
31
|
+
description: "Daily settled SPX options"),
|
32
|
+
:spy => IB::Option.new( :symbol => :SPY,
|
33
|
+
:expiry => IB::Symbols::Futures.next_expiry,
|
34
|
+
:right => :put,
|
35
|
+
:currency => "USD",
|
36
|
+
:exchange => 'SMART',
|
37
|
+
:description => "SPY Put next expiration"),
|
38
|
+
:rut => IB::Option.new( :symbol => :RUT,
|
39
|
+
:expiry => IB::Symbols::Futures.next_expiry,
|
40
|
+
:right => :put,
|
41
|
+
:currency => "USD",
|
42
|
+
:exchange => 'SMART',
|
43
|
+
description: "Monthly settled RUT options"),
|
44
|
+
:rutw => IB::Option.new( :symbol => :RUT,
|
45
|
+
:expiry => IB::Symbols::Futures.next_expiry,
|
46
|
+
:right => :put,
|
47
|
+
:currency => "USD",
|
48
|
+
:exchange => 'SMART',
|
49
|
+
description: "Weekly settled RUT options"),
|
50
|
+
:russell => IB::Option.new( :symbol => :RUT, # :russell == :rut !
|
51
|
+
:expiry => IB::Symbols::Futures.next_expiry,
|
52
|
+
:right => :put,
|
53
|
+
:currency => "USD",
|
54
|
+
:exchange => 'SMART',
|
55
|
+
description: "Monthly settled RUT options"),
|
56
|
+
:mini_russell => IB::Option.new( :symbol => :MRUT,
|
57
|
+
:expiry => IB::Symbols::Futures.next_expiry,
|
58
|
+
:right => :put,
|
59
|
+
:currency => "USD",
|
60
|
+
:exchange => 'SMART',
|
61
|
+
:description => "Weekly settled Mini-Russell2000 options"),
|
62
|
+
:ge => IB::Option.new( :symbol => "GE",
|
63
|
+
:expiry => IB::Symbols::Futures.next_expiry,
|
64
|
+
:right => "CALL",
|
65
|
+
:strike => 7,
|
66
|
+
:multiplier => 100,
|
67
|
+
:exchange => 'SMART',
|
68
|
+
:currency => 'USD',
|
69
|
+
:description => "General Electric 7 Call"),
|
70
|
+
:aapl => IB::Option.new( :symbol => "AAPL", exchange: 'SMART',
|
71
|
+
:expiry => IB::Symbols::Futures.next_expiry,
|
72
|
+
:right => "C",
|
73
|
+
:strike => 130,
|
74
|
+
:currency => 'USD',
|
75
|
+
:description => "Apple Call 130"),
|
76
|
+
|
77
|
+
:ibm => IB::Option.new( symbol: 'IBM', exchange: 'SMART', right: :put, expiry: IB::Symbols::Futures.next_expiry ,
|
78
|
+
description: 'IBM-Option Chain ( quarterly expiry)'),
|
39
79
|
:ibm_lazy_expiry => IB::Option.new( symbol: 'IBM', right: :put, strike: 140, exchange: 'SMART',
|
40
80
|
description: 'IBM-Option Chain with strike 140'),
|
41
81
|
:ibm_lazy_strike => IB::Option.new( symbol: 'IBM', exchange: 'SMART', right: :put, expiry: IB::Symbols::Futures.next_expiry ,
|
42
82
|
description: 'IBM-Option Chain ( quarterly expiry)'),
|
43
83
|
|
44
|
-
:
|
84
|
+
:goog100 => IB::Option.new( symbol: 'GOOG',
|
45
85
|
currency: 'USD',
|
46
|
-
strike:
|
86
|
+
strike: 100,
|
47
87
|
multiplier: 100,
|
48
88
|
right: :call,
|
49
89
|
expiry: IB::Symbols::Futures.next_expiry,
|
50
|
-
description: 'Google Call Option with quarterly expiry')
|
51
|
-
:argo_ise => Option.new( symbol: 'ARGO',
|
52
|
-
currency: "USD",
|
53
|
-
exchange: "ISE",
|
54
|
-
expiry: IB::Symbols::Futures.next_expiry,
|
55
|
-
right: :call,
|
56
|
-
strike: 10,
|
57
|
-
multiplier: 100,
|
58
|
-
description: 'Adecoagro Options @ ISE'),
|
59
|
-
:san_eu => IB::Option.new( symbol: 'SAN1',
|
60
|
-
exchange: "MEFFRV",
|
61
|
-
currency: "EUR",
|
62
|
-
expiry: IB::Symbols::Futures.next_expiry,
|
63
|
-
strike: 4.5,
|
64
|
-
right: :call,
|
65
|
-
# multiplier: 100, ## non standard multiplier: 102
|
66
|
-
trading_class: "SANEU",
|
67
|
-
description: 'Santanter Option specified via Trading-Class'),
|
68
|
-
:spy => IB::Option.new(:symbol => 'SPY',
|
69
|
-
:expiry => IB::Symbols::Futures.next_expiry,
|
70
|
-
:right => "P",
|
71
|
-
:currency => "USD",
|
72
|
-
:exchange => 'SMART',
|
73
|
-
:strike => 350,
|
74
|
-
:description => "SPY 350 Put next expiration"),
|
75
|
-
# :spy270 => IB::Option.new(:osi => 'SPY 190315P002700000'),
|
76
|
-
# :vix20 => IB::Option.new(:osi => 'VIX 181121C00020000'),
|
77
|
-
# :vxx40 => IB::Option.new(:osi => 'VXX 181117C00040000'),
|
90
|
+
description: 'Google Call Option with quarterly expiry')
|
78
91
|
}
|
79
92
|
end
|
80
93
|
end
|
data/lib/ib/symbols/version.rb
CHANGED