Class IB::IncomingMessages::OpenOrder
In: messages.rb
Parent: AbstractMessage

Methods

load   message_id  

Attributes

contract  [RW] 
order  [RW] 

Public Class methods

[Source]

     # File messages.rb, line 815
815:       def self.message_id
816:         5
817:       end

Public Instance methods

[Source]

     # File messages.rb, line 819
819:       def load
820:         @order = Datatypes::Order.new
821:         @contract = Datatypes::Contract.new
822: 
823:         autoload([:version, :int])
824: 
825:         @order.id = @socket.read_int
826: 
827:         @contract.symbol = @socket.read_string
828:         @contract.sec_type = @socket.read_string
829:         @contract.expiry = @socket.read_string
830:         @contract.strike = @socket.read_decimal
831:         @contract.right = @socket.read_string
832:         @contract.exchange = @socket.read_string
833:         @contract.currency = @socket.read_string
834: 
835:         @contract.local_symbol = @socket.read_string if @data[:version] >= 2
836: 
837:         @order.action = @socket.read_string
838:         @order.total_quantity = @socket.read_int
839:         @order.order_type = @socket.read_string
840:         @order.limit_price = @socket.read_decimal
841:         @order.aux_price = @socket.read_decimal
842:         @order.tif = @socket.read_string
843:         @order.oca_group = @socket.read_string
844:         @order.account = @socket.read_string
845:         @order.open_close = @socket.read_string
846:         @order.origin = @socket.read_int
847:         @order.order_ref = @socket.read_string
848: 
849:         @order.client_id = @socket.read_int if @data[:version] >= 3
850: 
851:         if @data[:version] >= 4
852:           @order.perm_id = @socket.read_int
853:           @order.ignore_rth = (@socket.read_int == 1)
854:           @order.hidden = (@socket.read_int == 1)
855:           @order.discretionary_amount = @socket.read_decimal
856:         end
857: 
858:         @order.good_after_time = @socket.read_string if @data[:version] >= 5
859:         @order.shares_allocation = @socket.read_string if @data[:version] >= 6
860: 
861:         if @data[:version] >= 7
862:           @order.fa_group = @socket.read_string
863:           @order.fa_method = @socket.read_string
864:           @order.fa_percentage = @socket.read_string
865:           @order.fa_profile = @socket.read_string
866:         end
867: 
868:         @order.good_till_date = @socket.read_string if @data[:version] >= 8
869: 
870:         if @data[:version] >= 9
871:           @order.rule_80A = @socket.read_string
872:           @order.percent_offset = @socket.read_decimal
873:           @order.settling_firm = @socket.read_string
874:           @order.short_sale_slot = @socket.read_int
875:           @order.designated_location = @socket.read_string
876:           @order.auction_strategy = @socket.read_int
877:           @order.starting_price = @socket.read_decimal
878:           @order.stock_ref_price = @socket.read_decimal
879:           @order.delta = @socket.read_decimal
880:           @order.stock_range_lower = @socket.read_decimal
881:           @order.stock_range_upper = @socket.read_decimal
882:           @order.display_size = @socket.read_int
883:           @order.rth_only = @socket.read_boolean
884:           @order.block_order = @socket.read_boolean
885:           @order.sweep_to_fill = @socket.read_boolean
886:           @order.all_or_none = @socket.read_boolean
887:           @order.min_quantity = @socket.read_int
888:           @order.oca_type = @socket.read_int
889:           @order.eTrade_only = @socket.read_boolean
890:           @order.firm_quote_only = @socket.read_boolean
891:           @order.nbbo_price_cap = @socket.read_decimal
892:         end
893: 
894:         if @data[:version] >= 10
895:           @order.parent_id = @socket.read_int
896:           @order.trigger_method = @socket.read_int
897:         end
898: 
899:         if @data[:version] >= 11
900:           @order.volatility = @socket.read_decimal
901:           @order.volatility_type = @socket.read_int
902: 
903:           if @data[:version] == 11
904:             @order.delta_neutral_order_type = ( @socket.read_int == 0 ? "NONE" : "MKT" )
905:           else
906:             @order.delta_neutral_order_type = @socket.read_string
907:             @order.delta_neutral_aux_price = @socket.read_decimal
908:           end
909: 
910:           @order.continuous_update = @socket.read_int
911:           if @server_version == 26
912:             @order.stock_range_lower = @socket.read_decimal
913:             @order.stock_range_upper = @socket.read_decimal
914:           end
915: 
916:           @order.reference_price_type = @socket.read_int
917:         end # if version >= 11
918: 
919: 
920:       end

[Validate]