ib-symbols 1.2 → 1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 160c32b60ae4d9cae82bb70cb77d672ce723b25f550cea69aa2768d7dc782f7a
4
- data.tar.gz: 1ebf09c27827661337a089968c9e7845d9dd0a484605b299dbf6a02c98133104
3
+ metadata.gz: 3d1bc9c86251e8f43c4459fbeb43235be7321bd250b62cea5313efb666065a51
4
+ data.tar.gz: 35f69664c447f09ce44914f3ea959f0ced46df15b1569e365f14dd9fc6796075
5
5
  SHA512:
6
- metadata.gz: 8844c32867280aac265c33d3bbe76c66843fe3149eef50276d6ec118cf477726717615d1887652cc59db481b936ec4b9b732393612a11fed82901e39a764b636
7
- data.tar.gz: 29baf9106e53d4c689addff490e8385932ae4197afb84663894f552bb1d36836122d1379e5e29c2745a61f261d6b762b822165a62d6e8fab2fbc95f2fa6f5b68
6
+ metadata.gz: '058b8b0bcc0d4de69ba2ae7a647dd2347b7c3425374b603641427b8f68d410a6fa37b4247be9eb2cd59c5856bfeebb042d426936393e6b5e3f4f8971ca9a166b'
7
+ data.tar.gz: 742fec12dabf7f6c6f85649fd738e42edd86b9e87faf8488e0904cd8043cb5815e55e5c012c1c41aacede24faf519c7c280d2bff9c6265e56819713bb91a4e5f
data/Gemfile CHANGED
@@ -2,5 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in ib-symbols.gemspec
4
4
  gemspec
5
-
6
- gem "ox"
data/README.md CHANGED
@@ -6,7 +6,6 @@ __Documentation: [https://ib-ruby.github.io/ib-doc/](https://ib-ruby.github.io/i
6
6
  __Questions, Contributions, Remarks: [Discussions are opened in ib-api](https://github.com/ib-ruby/ib-api/discussions)__
7
7
 
8
8
  ---
9
-
10
9
  __Predefined symbols and watchlists for contracts__
11
10
 
12
11
  To activate use
@@ -23,6 +22,42 @@ in your script
23
22
 
24
23
  ---
25
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
+
26
61
  The GUI-Version of the TWS organizes symbols in different pages (Watchlists).
27
62
 
28
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.
@@ -36,7 +71,7 @@ By default, Watchlists reside in the `symbols`-directory of `ib-symbols`. This c
36
71
  ```
37
72
 
38
73
 
39
- ## Symbol Collections
74
+ ### Symbol Collections
40
75
  Everything is kept elementary simple: Collections are stored as editable files. The format is YAML.
41
76
 
42
77
  The CRUD Cycle
@@ -60,46 +95,8 @@ head :012 > IB::Symbols::Demo.all
60
95
  => []
61
96
  ```
62
97
 
63
- ## Predefined Collections
64
98
 
65
- Most popular `Stocks`, `Options`, `Futures`, `Indices` and `Forex-pairs` are hard-coded.
66
- ```ruby
67
- > IB::Symbols::Index.all
68
- => [:a_d, :asx, :dax, :hsi, :minihsi, :spx, :stoxx, :tick, :trin, :vasx, :vdax, :vhsi, :vix, :volume, :vstoxx]
69
- > puts IB::Symbols::Index.contracts.values &.to_human
70
- <Index: DAX EUR (DAX Performance Index.) >
71
- <Index: AP AUD (ASX 200 Index) >
72
- <Index: HSI HKD (Hang Seng Index) >
73
- (...)
74
- <Index: AD-NYSE (NYSE Advance Decline Index) >
75
-
76
- > Symbols::Forex.eurusd.to_human
77
- => "<Contract: EUR forex IDEALPRO USD>"
78
- # this contract is valid and can be verified, but the opposide is not supported by IB
79
- > Symbols::Forex.usdeur.verify
80
- TWS Error 200: No security definition has been found for the request
81
- Not a valid Contract :: <Contract: USD forex IDEALPRO EUR>
82
99
  ```
83
100
 
84
- ## Pattern based Contract retrieval
85
-
86
- To specify a specific Option can be a boaring job.
87
- You might spend hours searching for a simple error, like a forgotten `:currency` oder `:exchange` entry.
88
-
89
- Symbol-Collections can be used as template for everyday searches.
90
-
91
- > Example: Customize a Index-Option with quaterly expiry.
92
- >
93
- > The hard coded `Symbols::Options.stoxx` template ensures the retrieval of only one option.
94
- > A simple merge with customized attributes returns a fully qualified ContractRecord.
95
-
96
-
97
- ```ruby
98
- > IB::Symbols.Options.stoxx.to_human
99
- => "<Option: ESTX50 202012 put 3000.0 DTB EUR>"
100
- > Symbols::Options.stoxx.merge( strike: 3300, right: :call).to_human
101
- => "<Option: ESTX50 202012 call 3300.0 DTB EUR>"
102
-
103
- ```
104
101
 
105
102
 
data/bin/console CHANGED
@@ -49,6 +49,7 @@ read_yml = -> (key) do
49
49
  puts " Namespace is IB ! "
50
50
  puts
51
51
  puts '-'* 45
52
+ include LogDev
52
53
  include IB
53
54
  require 'irb'
54
55
  client_id = ARGV[1] || read_yml[:client_id]
@@ -65,7 +66,7 @@ read_yml = -> (key) do
65
66
  end
66
67
 
67
68
  ARGV.clear
68
- #logger = default_logger # Logger.new STDOUT
69
+ logger = default_logger # Logger.new STDOUT
69
70
 
70
71
  ## The Block takes instructions which are executed after initializing all instance-variables
71
72
  ## and prior to the connection-process
@@ -73,9 +74,9 @@ read_yml = -> (key) do
73
74
  if port > 0
74
75
  C = Connection.new client_id: client_id, port: port do |c| # future use__ , optional_capacities: "+PACEAPI" do |c|
75
76
 
76
- c.subscribe( :ContractData, :BondContractData) { |msg| c.logger.info { msg.contract.to_human } }
77
- c.subscribe( :Alert, :ContractDataEnd, :ManagedAccounts, :OrderStatus ) {| m| c.logger.info { m.to_human } }
78
- c.subscribe( :PortfolioValue, :AccountValue, :OrderStatus, :OpenOrderEnd, :ExecutionData ) {| m| c.logger.info { m.to_human }}
77
+ c.subscribe( :ContractData, :BondContractData) { |msg| logger.info { msg.contract.to_human } }
78
+ c.subscribe( :Alert, :ContractDataEnd, :ManagedAccounts, :OrderStatus ) {| m| logger.info { m.to_human } }
79
+ c.subscribe( :PortfolioValue, :AccountValue, :OrderStatus, :OpenOrderEnd, :ExecutionData ) {| m| logger.info { m.to_human }}
79
80
  # c.subscribe :ManagedAccounts do |msg|
80
81
  # puts "------------------------------- Managed Accounts ----------------------------------"
81
82
  # puts "Detected Accounts: #{msg.accounts.account.join(' -- ')} "
@@ -109,7 +109,7 @@ Returns count of created bunches
109
109
  else
110
110
  symbol.to_i
111
111
  end
112
- # ensure that every Sybmol::xxx.yyy entry has a description
112
+ # ensure that evey Sybmol::xxx.yyy entry has a description
113
113
  contract.description = contract.to_human[1..-2] if contract.description.nil?
114
114
  # overwrite contract if existing
115
115
  contracts[ symbol ] = contract.essential
@@ -8,41 +8,41 @@ module IB
8
8
  def self.contracts
9
9
 
10
10
  @contracts ||= { #super.merge(
11
- stoxx_straddle: IB::Straddle.build( from: IB::Symbols::Index.stoxx, strike: 3000,
12
- expiry: IB::Symbols::Futures.next_expiry, trading_class: 'OESX') ,
13
- stoxx_calendar: IB::Calendar.build( from: IB::Symbols::Index.stoxx, strike: 3000, back: '2m' ,
14
- front: IB::Symbols::Futures.next_expiry, trading_class: 'OESX'),
15
- stoxx_butterfly: IB::Butterfly.fabricate( Symbols::Options.stoxx.merge( strike: 3300), front: 3250, back: 3350 ),
16
- stoxx_vertical: IB::Vertical.build( from: IB::Symbols::Index.stoxx, sell: 3000, buy: 3500, right: :put,
17
- expiry: IB::Symbols::Futures.next_expiry, trading_class: 'OESX'),
18
- zn_calendar: IB::Calendar.fabricate( IB::Symbols::Futures.zn, '3m') ,
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
- 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
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
- ib_mcd: Bag.new( symbol: 'IBKR,MCD', currency: 'USD', combo_legs:
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
@@ -58,75 +58,92 @@ 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 => "ECBOT",
61
+ :exchange => "CBOT",
62
62
  :currency => "USD",
63
63
  :description => "Mini-DJIA future"),
64
64
  :nq => IB::Future.new(:symbol => "NQ",
65
65
  :expiry => next_expiry,
66
- :exchange => "GLOBEX",
66
+ :exchange => "CME",
67
67
  :currency => "USD",
68
68
  :multiplier => 20,
69
69
  :description => "E-Mini Nasdaq 100 future"),
70
+ :micro_nq => IB::Future.new(:symbol => "MNQ",
71
+ :expiry => next_expiry,
72
+ :exchange => "CME",
73
+ :currency => "USD",
74
+ :multiplier => 2,
75
+ :description => "E-Mini Nasdaq 100 future"),
70
76
  :es => IB::Future.new(:symbol => "ES",
71
77
  :expiry => next_expiry,
72
- :exchange => "GLOBEX",
78
+ :exchange => "CME",
73
79
  :currency => "USD",
74
80
  :multiplier => 50,
75
81
  :description => "E-Mini S&P 500 future"),
76
82
  :micro_es => IB::Future.new(:symbol => "MES",
77
83
  :expiry => next_expiry,
78
- :exchange => "GLOBEX",
84
+ :exchange => "CME",
79
85
  :currency => "USD",
80
86
  :multiplier => 5,
81
87
  :description => "Micro E-Mini S&P 500 future"),
88
+ :russell => IB::Future.new(:symbol => "RTY",
89
+ :expiry => next_expiry,
90
+ :exchange => "CME",
91
+ :currency => "USD",
92
+ :multiplier => 50,
93
+ :description => "Micro E-Mini Russell 2000 future"),
82
94
  :micro_russell => IB::Future.new(:symbol => "M2K",
83
95
  :expiry => next_expiry,
84
- :exchange => "GLOBEX",
96
+ :exchange => "CME",
85
97
  :currency => "USD",
86
98
  :multiplier => 5,
87
99
  :description => "Micro E-Mini Russell 2000 future"),
88
- :zn => IB::Future.new( symbol: 'ZN',
89
- expiry: next_expiry,
90
- currency: 'USD',
91
- multiplier: 1000,
92
- exchange: 'ECBOT',
93
- description: 'US Treasury Note -- 10 Years'),
94
- :zb => IB::Future.new( symbol: 'ZB',
95
- expiry: next_expiry,
96
- currency: 'USD',
97
- multiplier: 1000,
98
- exchange: 'ECBOT',
99
- description: 'US Treasury Note -- 30 Years'),
100
- :mini_dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
100
+ :zn => IB::Future.new( symbol: 'ZN',
101
+ expiry: next_expiry,
102
+ currency: 'USD',
103
+ multiplier: 1000,
104
+ exchange: 'CBOT',
105
+ description: 'US Treasury Note -- 10 Years'),
106
+ :zb => IB::Future.new( symbol: 'ZB',
107
+ expiry: next_expiry,
108
+ currency: 'USD',
109
+ multiplier: 1000,
110
+ exchange: 'CBOT',
111
+ description: 'US Treasury Note -- 30 Years'),
112
+ :mini_dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
101
113
  expiry: next_expiry,
102
114
  currency: 'EUR',
103
115
  multiplier: 5,
104
116
  description: 'Mini DAX-Future'),
105
- # :dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
106
- # expiry: next_expiry,
107
- # currency: 'EUR',
108
- # multiplier: 25,
109
- # description: 'DAX-Future'),
110
- :stoxx=> IB::Future.new( symbol: 'ESTX50', exchange: 'EUREX',
117
+ :dax => IB::Future.new( symbol: 'DAX', exchange: 'EUREX',
118
+ expiry: next_expiry,
119
+ currency: 'EUR',
120
+ multiplier: 25,
121
+ description: 'DAX-Future'),
122
+ :stoxx=> IB::Future.new( symbol: 'ESTX50', exchange: 'EUREX',
111
123
  expiry: next_expiry,
112
124
  currency: 'EUR',
113
125
  multiplier: 10,
114
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'),
115
132
  :gbp => IB::Future.new(:symbol => "GBP",
116
133
  :expiry => next_expiry,
117
- :exchange => "GLOBEX",
134
+ :exchange => "CME",
118
135
  :currency => "USD",
119
136
  :multiplier => 62500,
120
137
  :description => "British Pounds future"),
121
138
  :eur => IB::Future.new(:symbol => "EUR",
122
139
  :expiry => next_expiry,
123
- :exchange => "GLOBEX",
140
+ :exchange => "CME",
124
141
  :currency => "USD",
125
- :multiplier => 12500,
142
+ :multiplier => 125000,
126
143
  :description => "Euro FX future"),
127
144
  :jpy => IB::Future.new(:symbol => "JPY",
128
145
  :expiry => next_expiry,
129
- :exchange => "GLOBEX",
146
+ :exchange => "CME",
130
147
  :currency => "USD",
131
148
  :multiplier => 12500000,
132
149
  :description => "Japanese Yen future"),
@@ -138,11 +155,9 @@ module IB
138
155
  :description => "Hang Seng Index future"),
139
156
  :vix => IB::Future.new(:symbol => "VIX",
140
157
  :expiry => next_expiry,
141
- :exchange => "CFE", #"ECBOT",
158
+ :exchange => "CFE",
142
159
  :currency => "USD",
143
160
  :description => "CBOE Volatility Index future"))
144
-
145
-
146
161
  end
147
162
  end
148
163
  end
@@ -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',
@@ -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
- stoxx: IB::Option.new( symbol: :ESTX50, strike: 3000,
14
- expiry: IB::Symbols::Futures.next_expiry ,
15
- right: :put,
16
- trading_class: 'OESX',
17
- currency: 'EUR', exchange: 'EUREX',
18
- description: "ESTX50 Put Option quarterly"),
19
- :ge => IB::Option.new(:symbol => "GE",
20
- :expiry => IB::Symbols::Futures.next_expiry,
21
- :right => "CALL",
22
- :strike => 7,
23
- :multiplier => 100,
24
- :exchange => 'SMART',
25
- :currency => 'USD',
26
- :description => "General Electric 7 Call"),
27
- :aapl => IB::Option.new(:symbol => "AAPL", exchange: 'SMART',
28
- :expiry => IB::Symbols::Futures.next_expiry,
29
- :right => "C",
30
- :strike => 130,
31
- :currency => 'USD',
32
- :description => "Apple Call 130"),
33
- :z750 => IB::Option.new(:symbol => "Z",
34
- :exchange => "ICEEU",
35
- :expiry => "201903",
36
- :right => "CALL",
37
- :strike => 7000.0,
38
- :description => " FTSE-100 index 750 Call 2019-03"),
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
- :goog1100 => IB::Option.new( symbol: 'GOOG',
84
+ :goog100 => IB::Option.new( symbol: 'GOOG',
45
85
  currency: 'USD',
46
- strike: 1100,
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
@@ -1,5 +1,5 @@
1
1
  module IB
2
2
  module Symbols
3
- VERSION = "1.2"
3
+ VERSION = "1.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ib-symbols
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.2'
4
+ version: '1.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hartmut Bischoff
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-25 00:00:00.000000000 Z
11
+ date: 2023-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ib-api
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  requirements: []
167
- rubygems_version: 3.2.3
167
+ rubygems_version: 3.3.7
168
168
  signing_key:
169
169
  specification_version: 4
170
170
  summary: Predefined symbols and watchlist, part of ib-ruby