iqfeed 0.0.1 → 0.0.2
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 +4 -4
- data/lib/iqfeed.rb +2 -0
- data/lib/iqfeed/history_client.rb +3 -3
- data/lib/iqfeed/level1_client.rb +22 -10
- data/lib/iqfeed/version.rb +1 -1
- data/{sample → lib/sample}/history_daily_range.rb +3 -3
- data/{sample → lib/sample}/history_ohlc_range.rb +3 -3
- data/lib/sample/history_tick_range.rb +8 -0
- data/lib/sample/level1_online.rb +18 -0
- data/{tools → lib/tools}/history.rb +0 -0
- metadata +7 -10
- data/sample/fileclient.rb +0 -8
- data/sample/history_tick_range.rb +0 -8
- data/sample/level1_online.rb +0 -8
- data/sample/range_bar.rb +0 -8
- data/sample/volume_bar.rb +0 -8
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d9a5732711acddad58af500f795a22f517a78e4d
         | 
| 4 | 
            +
              data.tar.gz: 625324d3a604df18134948be9ebb2c36cc1c2c9a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 37c304f5ced067eb423feeced9dbd78c57e60fe4bb00ee3875e8524f4ad1513fe04567c5ae1194b19e37e5aacb00cece12016d81651f74acc2f0bf81461cb878
         | 
| 7 | 
            +
              data.tar.gz: a7442421fcf84337ee33176f944f2e174e9e50d05a4296328ad68f7986d0b1c66eeb27c0ee8bcea0caf17980ba82beed59e8dba19d38a11c797d48591ad633dd
         | 
    
        data/lib/iqfeed.rb
    CHANGED
    
    
| @@ -122,9 +122,9 @@ module Iqfeed | |
| 122 122 | 
             
            			procs = []
         | 
| 123 123 | 
             
            			exception = nil			
         | 
| 124 124 |  | 
| 125 | 
            -
            			procs[0] = Proc.new{|line|  | 
| 126 | 
            -
            			procs[1] = Proc.new{|line|  | 
| 127 | 
            -
            			procs[2] = Proc.new{|line|  | 
| 125 | 
            +
            			procs[0] = Proc.new{|line| Iqfeed::Tick.parse(line)}
         | 
| 126 | 
            +
            			procs[1] = Proc.new{|line| Iqfeed::OHLC.parse(line)}
         | 
| 127 | 
            +
            			procs[2] = Proc.new{|line| Iqfeed::DWM.parse(line)}
         | 
| 128 128 |  | 
| 129 129 | 
             
            			while line = @socket.gets
         | 
| 130 130 | 
             
            				fields = line.match(/^([^,]+),(.*)/) 
         | 
    
        data/lib/iqfeed/level1_client.rb
    CHANGED
    
    | @@ -3,39 +3,51 @@ require 'observer' | |
| 3 3 |  | 
| 4 4 | 
             
            module Iqfeed
         | 
| 5 5 | 
             
            	class Level1Observer
         | 
| 6 | 
            -
            		attr_accessor :symbol
         | 
| 6 | 
            +
            		attr_accessor :symbol, :bid, :ask
         | 
| 7 7 |  | 
| 8 8 | 
             
            		def initialize(symbol)
         | 
| 9 9 | 
             
            			@symbol = symbol
         | 
| 10 10 | 
             
            		end
         | 
| 11 11 |  | 
| 12 12 | 
             
            		def update(tick)
         | 
| 13 | 
            -
            			 | 
| 13 | 
            +
            			@bid = tick.bid if @bid.nil? && tick.type =~ /(t|b)/
         | 
| 14 | 
            +
            			@bid = tick.bid if tick.type =~ /b/
         | 
| 15 | 
            +
            			@ask = tick.ask if @ask.nil? && tick.type =~ /(t|a)/
         | 
| 16 | 
            +
            			@ask = tick.ask if tick.type =~ /a/
         | 
| 17 | 
            +
            			puts tick.to_s(@bid, @ask) if tick.sym == @symbol && tick.type =~ /t/
         | 
| 14 18 | 
             
            		end
         | 
| 15 19 | 
             
            	end
         | 
| 16 20 |  | 
| 17 21 | 
             
            	class Level1Tick
         | 
| 18 | 
            -
            		attr_accessor :type, :time_stamp, :last_price, :total_volume, :last_size, :bid, :ask
         | 
| 22 | 
            +
            		attr_accessor :type, :time_stamp, :last_price, :total_volume, :last_size, :bid, :ask, :sym
         | 
| 19 23 | 
             
            		def self.parse(line)
         | 
| 20 24 | 
             
            			fields = line.split(',')
         | 
| 21 25 | 
             
            			tick = Level1Tick.new
         | 
| 22 26 | 
             
            			tick.type = fields[17]
         | 
| 27 | 
            +
            			tick.sym = fields[1]
         | 
| 23 28 | 
             
            			tick.bid = fields[10]
         | 
| 24 29 | 
             
            			tick.ask = fields[11]
         | 
| 25 30 | 
             
            			tick.last_price = fields[3]
         | 
| 26 31 | 
             
            			tick.last_size = fields[7]
         | 
| 27 32 | 
             
            			tick.total_volume = fields[6]
         | 
| 28 33 | 
             
            			tick.time_stamp = fields[65]
         | 
| 29 | 
            -
            			tick.type =~ /t/ ? tick : nil
         | 
| 34 | 
            +
            			tick.type =~ /(t|a|b)/ ? tick : nil
         | 
| 30 35 | 
             
            		end
         | 
| 31 36 |  | 
| 32 | 
            -
            		def to_s
         | 
| 33 | 
            -
            #			if (@type =~ /b/)
         | 
| 34 | 
            -
            #				"Bid: #{@bid_size}@#{@bid}"
         | 
| 35 | 
            -
            #			elsif (@type =~ /a/)
         | 
| 36 | 
            -
            #				"Ask: #{@ask_size}@#{@ask}"
         | 
| 37 | 
            +
            		def to_s(bid, ask)
         | 
| 37 38 | 
             
            			if (@type =~ /t/)
         | 
| 38 | 
            -
            				 | 
| 39 | 
            +
            				if @last_price == @bid
         | 
| 40 | 
            +
            					operation = 'SELL'
         | 
| 41 | 
            +
            				elsif @last_price == @ask
         | 
| 42 | 
            +
            					operation = 'BUY'
         | 
| 43 | 
            +
            				elsif @last_price == bid
         | 
| 44 | 
            +
            					operation = 'SELL'
         | 
| 45 | 
            +
            				elsif @last_price == ask
         | 
| 46 | 
            +
            					operation = 'BUY'
         | 
| 47 | 
            +
            				else
         | 
| 48 | 
            +
            					operation = 'UNKNOWN'
         | 
| 49 | 
            +
            				end
         | 
| 50 | 
            +
            				"Symbol: #{@sym} TS:#{@time_stamp} Size:#{@last_size} Price:#{@last_price} Bid:#{@bid} Ask:#{@ask} #{operation}"
         | 
| 39 51 | 
             
            #			elsif (@type =~ /T/)
         | 
| 40 52 | 
             
            #				"extendedTrade"
         | 
| 41 53 | 
             
            #			elsif !@type.nil?
         | 
    
        data/lib/iqfeed/version.rb
    CHANGED
    
    
| @@ -1,7 +1,7 @@ | |
| 1 | 
            -
            require '../ | 
| 1 | 
            +
            require '../iqfeed'
         | 
| 2 2 |  | 
| 3 | 
            -
            o =  | 
| 4 | 
            -
            c =  | 
| 3 | 
            +
            o = Iqfeed::HistoryObserver.new
         | 
| 4 | 
            +
            c = Iqfeed::HistoryClient.new
         | 
| 5 5 | 
             
            c.open
         | 
| 6 6 | 
             
            # 2 hours of tick history
         | 
| 7 7 | 
             
            c.get_daily_range({:symbol => '@EU#', :from => Time.now - 3600*24, :to => Time.now}, o)
         | 
| @@ -1,7 +1,7 @@ | |
| 1 | 
            -
            require '../ | 
| 1 | 
            +
            require '../iqfeed'
         | 
| 2 2 |  | 
| 3 | 
            -
            o =  | 
| 4 | 
            -
            c =  | 
| 3 | 
            +
            o = Iqfeed::HistoryObserver.new
         | 
| 4 | 
            +
            c = Iqfeed::HistoryClient.new
         | 
| 5 5 | 
             
            c.open
         | 
| 6 6 | 
             
            c.get_ohlc_range({:symbol => '@EU#', :duration => 300, :from => Time.now - 200 * 3600, :to => Time.now}, o) 
         | 
| 7 7 | 
             
            c.run
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            require '../iqfeed'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            o1 = Iqfeed::Level1Observer.new("@EU#")
         | 
| 4 | 
            +
            o2 = Iqfeed::Level1Observer.new("@BP#")
         | 
| 5 | 
            +
            o3 = Iqfeed::Level1Observer.new("@CD#")
         | 
| 6 | 
            +
            o4 = Iqfeed::Level1Observer.new("@AD#")
         | 
| 7 | 
            +
            o5 = Iqfeed::Level1Observer.new("@JY#")
         | 
| 8 | 
            +
            o6 = Iqfeed::Level1Observer.new("@SF#")
         | 
| 9 | 
            +
            c = Iqfeed::Level1Client.new
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            c.open
         | 
| 12 | 
            +
            c.add(o1)
         | 
| 13 | 
            +
            c.add(o2)
         | 
| 14 | 
            +
            c.add(o3)
         | 
| 15 | 
            +
            c.add(o4)
         | 
| 16 | 
            +
            c.add(o5)
         | 
| 17 | 
            +
            c.add(o6)
         | 
| 18 | 
            +
            c.run
         | 
| 
            File without changes
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: iqfeed
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tim
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-11- | 
| 11 | 
            +
            date: 2014-11-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -56,14 +56,11 @@ files: | |
| 56 56 | 
             
            - lib/iqfeed/history_client.rb
         | 
| 57 57 | 
             
            - lib/iqfeed/level1_client.rb
         | 
| 58 58 | 
             
            - lib/iqfeed/version.rb
         | 
| 59 | 
            -
            - sample/ | 
| 60 | 
            -
            - sample/ | 
| 61 | 
            -
            - sample/ | 
| 62 | 
            -
            - sample/ | 
| 63 | 
            -
            -  | 
| 64 | 
            -
            - sample/range_bar.rb
         | 
| 65 | 
            -
            - sample/volume_bar.rb
         | 
| 66 | 
            -
            - tools/history.rb
         | 
| 59 | 
            +
            - lib/sample/history_daily_range.rb
         | 
| 60 | 
            +
            - lib/sample/history_ohlc_range.rb
         | 
| 61 | 
            +
            - lib/sample/history_tick_range.rb
         | 
| 62 | 
            +
            - lib/sample/level1_online.rb
         | 
| 63 | 
            +
            - lib/tools/history.rb
         | 
| 67 64 | 
             
            homepage: ''
         | 
| 68 65 | 
             
            licenses:
         | 
| 69 66 | 
             
            - MIT
         | 
    
        data/sample/fileclient.rb
    DELETED
    
    
    
        data/sample/level1_online.rb
    DELETED
    
    
    
        data/sample/range_bar.rb
    DELETED