okex 0.3.3 → 0.3.7

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: 2103a60d7a2cbb14582569e691dfa577bc69a2d02214d200cfd0c9ae17d122a9
4
- data.tar.gz: 5754ed1518c2486162d94bd6c63a9d402cc573aae1ead9a90932a7ce4acbf2f3
3
+ metadata.gz: 633daa1f0495d2dcb85221058ac2b5e5a967416ea139277bb56bf34d88216a80
4
+ data.tar.gz: 2272c040ebb0bdaa5e1791d5ed94753c06d9c2e11f8a505164fcce8e8badd1f7
5
5
  SHA512:
6
- metadata.gz: 52ac7f191021bdfd1179898ee340be1f468498e4d0fd5e318ca1f670443ef769dfdca3b7a33136b1406330ea40bcb82c53f366f47d0b36db07796c0e24e8fcc6
7
- data.tar.gz: ea3ce28a4e2eda19f3c882f03ab012955d7025d6e7c5a11a3e3c092d71e5c4492fc0aebedcb6dc1ec08425a6bcb10e8b51a47490fbef518d46150c7c80f74f70
6
+ metadata.gz: d96d3b40bbf42de610b2cb02e6bab2f19face0a8a39f8ade8c3a4fc3ea170213f88f83a60bd3a8cfb16feb83703c57f2d593d9ab63731a860760fd34292c07cc
7
+ data.tar.gz: 947569fb37f6cc68557d79abd6897d05c7522e8148701f4e285873c5cbeb6065f7a075e113cd6f8a131be271a7bfb21049fc70f5a0f2f97b0ea0ed94ac3224ba
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- okex (0.3.3)
4
+ okex (0.3.7)
5
5
  faraday (~> 1.5)
6
6
 
7
7
  GEM
data/lib/okex/api_v5.rb CHANGED
@@ -69,7 +69,7 @@ class OKEX::ApiV5
69
69
 
70
70
  def max_size(instrument_id)
71
71
  data = client.get(host, "/api/v5/account/max-size?instId=#{instrument_id}&tdMode=cross")
72
-
72
+
73
73
  ret = OKEX::MaxSize.new(-1, -1)
74
74
 
75
75
  el = data[0]
@@ -87,6 +87,10 @@ class OKEX::ApiV5
87
87
  end
88
88
 
89
89
  # 设置止损价格
90
+ # @param inst_id [String] 合约名称
91
+ # @param posSide [String] 持仓方向
92
+ # @param sz [Integer] 持仓数量(张)
93
+ # @param price [Float] 止损价格
90
94
  def set_stop_loss(inst_id, posSide, sz, price)
91
95
  side = (posSide == OKEX::Order::POS_LONG) ? "sell" : "buy"
92
96
 
@@ -104,6 +108,41 @@ class OKEX::ApiV5
104
108
  client.post(host, "/api/v5/trade/order-algo", params)
105
109
  end
106
110
 
111
+ # 查询当前设置的止损价格
112
+ # @param inst_id [String] 合约名称
113
+ def stop_loss_price(inst_id)
114
+ result = client.get(host, "/api/v5/trade/orders-algo-pending?instId=#{inst_id}&instType=SWAP&ordType=conditional")
115
+
116
+ return -1 if result.empty?
117
+ return result[0]["slTriggerPx"].to_f if result.size == 1
118
+
119
+ raise "invalid result: #{result.inspect}"
120
+ end
121
+
122
+ # 查询当前止损订单的ID
123
+ # 可用于后续取消止损订单
124
+ # @param inst_id [String] 合约名称
125
+ def algo_order_id(inst_id)
126
+ result = client.get(host, "/api/v5/trade/orders-algo-pending?instId=#{inst_id}&instType=SWAP&ordType=conditional")
127
+
128
+ return "" if result.empty?
129
+ return result[0]["algoId"] if result.size == 1
130
+
131
+ raise "invalid result: #{result.inspect}"
132
+ end
133
+
134
+ # 撤销委托单
135
+ # @param algo_id [String] 策略委托单ID
136
+ # @param inst_id [String] 合约ID
137
+ def cancel_algo_order(algo_id, inst_id)
138
+ params = {
139
+ "algoId": algo_id,
140
+ "instId": inst_id
141
+ }
142
+
143
+ client.post(host, "/api/v5/trade/cancel-algos", [params])
144
+ end
145
+
107
146
  private
108
147
 
109
148
  attr_reader :client, :host
data/lib/okex/client.rb CHANGED
@@ -23,8 +23,15 @@ module OKEX
23
23
  end
24
24
 
25
25
  def post(host, path, payload)
26
- payload_json = gen_payload(payload)
27
-
26
+ if payload.is_a?(Array)
27
+ _json = payload.map do |hx|
28
+ gen_payload(hx)
29
+ end
30
+ payload_json = "[#{_json.join(",")}]"
31
+ else
32
+ payload_json = gen_payload(payload)
33
+ end
34
+
28
35
  url = host + path
29
36
  ts = timestamp
30
37
  sig = sign(ts, "POST", path + payload_json)
data/lib/okex/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OKEX
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.7"
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.3.3
4
+ version: 0.3.7
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-29 00:00:00.000000000 Z
11
+ date: 2021-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler