ib-symbols 1.2 → 1.4

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 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