okex 0.2.6 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
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