okex 0.3.3 → 0.3.7

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: 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