okex 0.2.6 → 0.2.8

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: 012c9b50e5c4dd3fb5522d0eef07764feb177c23a2aee07e1a847399fb7b7d68
4
- data.tar.gz: 43f87e76c36c65bf9b81122392b36af8bee0f5125617b28ff2a6e2ae6a36196a
3
+ metadata.gz: 9d0150ce45ec59cd9ded8310ef2d1346c4dc4bac69d2c90fc676ef12edc4b50c
4
+ data.tar.gz: 96b70fdc8c95ee1cd3e0ff980a93c7bbb0b97e1a8917f98a4f471072f8ccbb39
5
5
  SHA512:
6
- metadata.gz: 84533cb2cc12b733a01c29a3f76274e1b179573fa0ad21e2588c87b04e76e9afdca18979c22056b4fa4c75fbec578e7fbb319e198721bedb9150e39e4f819f2a
7
- data.tar.gz: 839673d67fed38b99dce0b5d5f31df562e56d9617c5e7c87cad1772136b616c60d457d6d9397427372bb0b6fd4168c9b035a8d74fb50b972c9bfc68e48defbce
6
+ metadata.gz: 6ca66d2608fcea9ed02dc4881b113650e22b262478bce2a885383dcb96dda5818f59f61340c8f87613eefa49b3e8d86f95677bb34a75245395178e41d3156746
7
+ data.tar.gz: 8f1a140fffe151688a64304a41ff5162f085fdc5bb4bb61daabef30c3a276946863e574242e26c277f07f79d53e7f4cdf9f86287dd7c661c68eaf90315aa220b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- okex (0.2.5)
4
+ okex (0.2.7)
5
5
  faraday (~> 1.5)
6
6
 
7
7
  GEM
data/lib/okex.rb CHANGED
@@ -4,9 +4,8 @@ require "okex/api_v5"
4
4
  require "okex/client"
5
5
  require "okex/coin"
6
6
  require "okex/order"
7
- require "okex/account_order"
8
- require "okex/trade_order"
9
7
  require "okex/host"
8
+ require "okex/max_size"
10
9
 
11
10
 
12
11
  module OKEX
data/lib/okex/api_v5.rb CHANGED
@@ -8,21 +8,16 @@ class OKEX::ApiV5
8
8
  client.get(host, "/api/v5/public/instruments?instType=SWAP")
9
9
  end
10
10
 
11
- def account_orders
12
- resp = client.get(host, "/api/v5/account/positions")
13
-
14
- if resp['success']
15
- return resp['data'].map {|params| OKEX::AccountOrder.new(params)}
11
+ def orders(inst_id=nil)
12
+ url = "/api/v5/account/positions"
13
+ if inst_id.present?
14
+ url += "?instId=#{inst_id}"
16
15
  end
17
16
 
18
- []
19
- end
20
-
21
- def trade_orders(instrument_id)
22
- resp = client.get(host, "/api/v5/trade/order?instId=#{instrument_id}")
17
+ resp = client.get(host, url)
23
18
 
24
- if resp['code'].to_i == 0 && resp['data'].size > 0
25
- return resp['data'].map {|params| OKEX::TradeOrder.new(params)}
19
+ if resp['success']
20
+ return resp['data'].map {|params| OKEX::Order.new(params)}
26
21
  end
27
22
 
28
23
  []
@@ -49,6 +44,20 @@ class OKEX::ApiV5
49
44
  close_position(instrument_id, "short")
50
45
  end
51
46
 
47
+ def max_size(instrument_id)
48
+ result = client.get(host, "/api/v5/account/max-size?instId=#{instrument_id}&tdMode=cross")
49
+
50
+ ret = OKEX::MaxSize.new(-1, -1)
51
+ if result['success']
52
+ el = result['data'][0]
53
+ if el.present? && el['maxBuy'].to_i > 0 && el['maxSell'].to_i > 0
54
+ ret = OKEX::MaxSize.new(el['maxBuy'].to_i, el['maxSell'].to_i)
55
+ end
56
+ end
57
+
58
+ ret
59
+ end
60
+
52
61
  private
53
62
 
54
63
  attr_reader :client, :host
@@ -0,0 +1,3 @@
1
+ class OKEX::MaxSize < Struct.new(:buy, :sell)
2
+ def
3
+ end
data/lib/okex/order.rb CHANGED
@@ -7,7 +7,7 @@ module OKEX
7
7
  @params = params
8
8
  end
9
9
 
10
- def instrument_id
10
+ def inst_id
11
11
  dig("instId")
12
12
  end
13
13
 
@@ -71,6 +71,16 @@ module OKEX
71
71
  dig("pos").to_i
72
72
  end
73
73
 
74
+ # 是否正在持仓
75
+ def open?
76
+ pos > 0
77
+ end
78
+
79
+ # 已经平仓
80
+ def closed?
81
+ pos == 0
82
+ end
83
+
74
84
  private
75
85
 
76
86
  def dig(key)
data/lib/okex/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OKEX
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: okex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Zhang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-24 00:00:00.000000000 Z
11
+ date: 2021-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,15 +99,14 @@ files:
99
99
  - bin/console
100
100
  - bin/setup
101
101
  - lib/okex.rb
102
- - lib/okex/account_order.rb
103
102
  - lib/okex/api_v3.rb
104
103
  - lib/okex/api_v5.rb
105
104
  - lib/okex/client.rb
106
105
  - lib/okex/coin.rb
107
106
  - lib/okex/coin/bitcoin.rb
108
107
  - lib/okex/host.rb
108
+ - lib/okex/max_size.rb
109
109
  - lib/okex/order.rb
110
- - lib/okex/trade_order.rb
111
110
  - lib/okex/version.rb
112
111
  - okex.gemspec
113
112
  homepage: https://github.com/daqing/okex
@@ -1,4 +0,0 @@
1
- module OKEX
2
- class AccountOrder < Order
3
- end
4
- end
@@ -1,24 +0,0 @@
1
- module OKEX
2
- class TradeOrder < Order
3
-
4
- # 预估强平价
5
- def est_liq_price
6
- dig("liqPx").to_f
7
- end
8
-
9
- # 最新成交价
10
- def last_price
11
- dig("fillPx").to_f
12
- end
13
-
14
- # 未实现收益
15
- def upl
16
- dig("pnl").to_f
17
- end
18
-
19
- # 持仓张数
20
- def pos
21
- dig("sz").to_i
22
- end
23
- end
24
- end