lib/ib/messages/incoming/contract_data.rb in ib-ruby-0.8.5 vs lib/ib/messages/incoming/contract_data.rb in ib-ruby-0.9.0
- old
+ new
@@ -1,83 +1,102 @@
module IB
module Messages
module Incoming
+ module ContractAccessors
+ end
+
ContractDetails = ContractData =
- def_message([10, [6, 8]],
- [:request_id, :int], # request id
- [:contract, :symbol, :string],
- [:contract, :sec_type, :string],
- [:contract, :expiry, :string],
- [:contract, :strike, :decimal],
- [:contract, :right, :string],
- [:contract, :exchange, :string],
- [:contract, :currency, :string],
- [:contract, :local_symbol, :string],
+ def_message([10, [6, 8]],
+ [:request_id, :int], # request id
+ [:contract, :symbol, :string],
+ [:contract, :sec_type, :string],
+ [:contract, :expiry, :string],
+ [:contract, :strike, :decimal],
+ [:contract, :right, :string],
+ [:contract, :exchange, :string],
+ [:contract, :currency, :string],
+ [:contract, :local_symbol, :string],
- [:contract_detail, :market_name, :string], # extended
- [:contract_detail, :trading_class, :string],
- [:contract, :con_id, :int],
- [:contract_detail, :min_tick, :decimal],
- [:contract, :multiplier, :string],
- [:contract_detail, :order_types, :string],
- [:contract_detail, :valid_exchanges, :string],
- [:contract_detail, :price_magnifier, :int],
- [:contract_detail, :under_con_id, :int],
- [:contract_detail, :long_name, :string],
- [:contract, :primary_exchange, :string],
- [:contract_detail, :contract_month, :string],
- [:contract_detail, :industry, :string],
- [:contract_detail, :category, :string],
- [:contract_detail, :subcategory, :string],
- [:contract_detail, :time_zone, :string],
- [:contract_detail, :trading_hours, :string],
- [:contract_detail, :liquid_hours, :string])
+ [:contract_detail, :market_name, :string], # extended
+ [:contract_detail, :trading_class, :string],
+ [:contract, :con_id, :int],
+ [:contract_detail, :min_tick, :decimal],
+ [:contract, :multiplier, :string],
+ [:contract_detail, :order_types, :string],
+ [:contract_detail, :valid_exchanges, :string],
+ [:contract_detail, :price_magnifier, :int],
+ [:contract_detail, :under_con_id, :int],
+ [:contract_detail, :long_name, :string],
+ [:contract, :primary_exchange, :string],
+ [:contract_detail, :contract_month, :string],
+ [:contract_detail, :industry, :string],
+ [:contract_detail, :category, :string],
+ [:contract_detail, :subcategory, :string],
+ [:contract_detail, :time_zone, :string],
+ [:contract_detail, :trading_hours, :string],
+ [:contract_detail, :liquid_hours, :string],
+ [:contract_detail, :ev_rule, :decimal],
+ [:contract_detail, :ev_multipler, :string],
+ [:sec_id_list_count, :int])
+
class ContractData
def contract
@contract = IB::Contract.build @data[:contract].
- merge(:contract_detail => contract_detail)
+ merge(:contract_detail => contract_detail)
end
def contract_detail
@contract_detail = IB::ContractDetail.new @data[:contract_detail]
end
alias contract_details contract_detail
+ def load
+ super
+
+ @data[:contract_detail][:sec_id_list] ||= HashWithIndifferentAccess.new
+ @data[:sec_id_list_count].times do
+ @data[:contract_detail][:sec_id_list][socket.read_string] = socket.read_string
+ end
+ end
+
end # ContractData
BondContractData =
- def_message [18, 4], ContractData,
- [:request_id, :int],
- [:contract, :symbol, :string],
- [:contract, :sec_type, :string],
- [:contract_detail, :cusip, :string],
- [:contract_detail, :coupon, :decimal],
- [:contract_detail, :maturity, :string],
- [:contract_detail, :issue_date, :string],
- [:contract_detail, :ratings, :string],
- [:contract_detail, :bond_type, :string],
- [:contract_detail, :coupon_type, :string],
- [:contract_detail, :convertible, :boolean],
- [:contract_detail, :callable, :boolean],
- [:contract_detail, :puttable, :boolean],
- [:contract_detail, :desc_append, :string],
- [:contract, :exchange, :string],
- [:contract, :currency, :string],
- [:contract_detail, :market_name, :string], # extended
- [:contract_detail, :trading_class, :string],
- [:contract, :con_id, :int],
- [:contract_detail, :min_tick, :decimal],
- [:contract_detail, :order_types, :string],
- [:contract_detail, :valid_exchanges, :string],
- [:contract_detail, :valid_next_option_date, :string],
- [:contract_detail, :valid_next_option_type, :string],
- [:contract_detail, :valid_next_option_partial, :string],
- [:contract_detail, :notes, :string],
- [:contract_detail, :long_name, :string]
+ def_message [18, [4, 6]], ContractData,
+ [:request_id, :int],
+ [:contract, :symbol, :string],
+ [:contract, :sec_type, :string],
+ [:contract_detail, :cusip, :string],
+ [:contract_detail, :coupon, :decimal],
+ [:contract_detail, :maturity, :string],
+ [:contract_detail, :issue_date, :string],
+ [:contract_detail, :ratings, :string],
+ [:contract_detail, :bond_type, :string],
+ [:contract_detail, :coupon_type, :string],
+ [:contract_detail, :convertible, :boolean],
+ [:contract_detail, :callable, :boolean],
+ [:contract_detail, :puttable, :boolean],
+ [:contract_detail, :desc_append, :string],
+ [:contract, :exchange, :string],
+ [:contract, :currency, :string],
+ [:contract_detail, :market_name, :string], # extended
+ [:contract_detail, :trading_class, :string],
+ [:contract, :con_id, :int],
+ [:contract_detail, :min_tick, :decimal],
+ [:contract_detail, :order_types, :string],
+ [:contract_detail, :valid_exchanges, :string],
+ [:contract_detail, :valid_next_option_date, :string],
+ [:contract_detail, :valid_next_option_type, :string],
+ [:contract_detail, :valid_next_option_partial, :string],
+ [:contract_detail, :notes, :string],
+ [:contract_detail, :long_name, :string],
+ [:contract_detail, :ev_rule, :decimal],
+ [:contract_detail, :ev_multipler, :string],
+ [:sec_id_list_count, :int]
end # module Incoming
end # module Messages
end # module IB