okex 0.3.1 → 0.3.5

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: a104fac8edf7712e91a90bdab72ccccc93cb1e20633400c70aee249b69b22202
4
- data.tar.gz: 8003c43686c142e4619a4ff52852aa4cbb5c050bcfd161df2af5d0fbe35409fb
3
+ metadata.gz: c89695e5a69a030932da7523030a2653250666a64b5d6be96cc49302c44f42b6
4
+ data.tar.gz: a556bf958a0c14b9b94e6b2ac91c5320541fb4fb05307920d8b60f6b28faa170
5
5
  SHA512:
6
- metadata.gz: 34a805305702198ec747fc78bd8c34fa8a7a1a67594e63334c63d2eb17591875d81c88273084aae92b4182a8330ae009e115c64ee7fd0f5e49dcc59524b0de80
7
- data.tar.gz: ad5fb25b020d99ee030272cffa8b706f3ac077442caa26df10c1c6a8a2214b34c6c6842f60f668e9634e6423858f8a930c6b4f221ae16f002b5b6f3a32dda068
6
+ metadata.gz: a9bf7db9c81660b0295ac62a4fd217b79c888de5422b94fdcafb37cbb0b57db10c33c9d2d0ebe2522c2d98fa92acaf261784ef19b18b208585e55a80dae37c01
7
+ data.tar.gz: bf336b5e91e7d003afdcb262ada4f94a799d4704d4dff27b8c7e3f55f14cb750d6255da5c3e5d6e2d8c1daa5e2421757aa340032db0748ad7f92adacdda90e38
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- okex (0.3.1)
4
+ okex (0.3.4)
5
5
  faraday (~> 1.5)
6
6
 
7
7
  GEM
data/lib/okex/api_v5.rb CHANGED
@@ -59,22 +59,6 @@ class OKEX::ApiV5
59
59
  client.post(host, "/api/v5/trade/order", params)
60
60
  end
61
61
 
62
- # # 开多带止损
63
- # def long_swap_stop(instid, amount, stop_price)
64
- # params = {
65
- # "instId": instid,
66
- # "tdMode": "cross",
67
- # "side": "buy",
68
- # "posSide": "long",
69
- # "ordType": "conditional",
70
- # "sz": amount.to_s,
71
- # "slTriggerPx": stop_price.to_s,
72
- # "slOrdPx": "-1", # 执行市价止损
73
- # }
74
-
75
- # client.post(host, "/api/v5/trade/order-algo", params)
76
- # end
77
-
78
62
  def close_long(instrument_id)
79
63
  close_position(instrument_id, "long")
80
64
  end
@@ -96,6 +80,45 @@ class OKEX::ApiV5
96
80
  ret
97
81
  end
98
82
 
83
+ def current_leverage(inst_id)
84
+ data = client.get(host, "/api/v5/account/leverage-info?instId=#{inst_id}&mgnMode=cross")
85
+
86
+ data[0]['lever'].to_i
87
+ end
88
+
89
+ # 设置止损价格
90
+ # @param inst_id [String] 合约名称
91
+ # @param posSide [String] 持仓方向
92
+ # @param sz [Integer] 持仓数量(张)
93
+ # @param price [Float] 止损价格
94
+ def set_stop_loss(inst_id, posSide, sz, price)
95
+ side = (posSide == OKEX::Order::POS_LONG) ? "sell" : "buy"
96
+
97
+ params = {
98
+ "instId": inst_id,
99
+ "tdMode": "cross",
100
+ "side": side,
101
+ "posSide": posSide.to_s,
102
+ "sz": sz.to_s,
103
+ "ordType": "conditional",
104
+ "slTriggerPx": price.to_s,
105
+ "slOrdPx": "-1"
106
+ }
107
+
108
+ client.post(host, "/api/v5/trade/order-algo", params)
109
+ end
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_i if result.size == 1
118
+
119
+ raise "invalid result: #{result.inspect}"
120
+ end
121
+
99
122
  private
100
123
 
101
124
  attr_reader :client, :host
@@ -113,4 +136,4 @@ class OKEX::ApiV5
113
136
  def dig_round(obj, key, round)
114
137
  obj[key].to_f.round(round)
115
138
  end
116
- end
139
+ end
data/lib/okex/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OKEX
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.5"
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.1
4
+ version: 0.3.5
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-25 00:00:00.000000000 Z
11
+ date: 2021-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler