@@ -57,11 +57,15 @@ func (s *exchangeInfoServiceTestSuite) TestExchangeInfo() {
57
57
"filterType": "MAX_NUM_ORDERS",
58
58
"limit": 200
59
59
},
60
+ {
61
+ "limit": 20,
62
+ "filterType": "MAX_NUM_ALGO_ORDERS"
63
+ },
60
64
{
61
65
"filterType": "PERCENT_PRICE",
62
66
"multiplierUp": "1.0500",
63
67
"multiplierDown": "0.9500",
64
- "multiplierDecimal": 4
68
+ "multiplierDecimal": "4"
65
69
}
66
70
],
67
71
"OrderType": [
@@ -146,37 +150,48 @@ func (s *exchangeInfoServiceTestSuite) TestExchangeInfo() {
146
150
{"filterType" : "LOT_SIZE" , "minQty" : "1" , "maxQty" : "100000" , "stepSize" : "1" },
147
151
{"filterType" : "MARKET_LOT_SIZE" , "maxQty" : "100000" , "minQty" : "1" , "stepSize" : "1" },
148
152
{"filterType" : "MAX_NUM_ORDERS" , "limit" : 200 },
149
- {"filterType" : "PERCENT_PRICE" , "multiplierUp" : "1.0500" , "multiplierDown" : "0.9500" , "multiplierDecimal" : 4 },
153
+ {"filterType" : "MAX_NUM_ALGO_ORDERS" , "limit" : 20 },
154
+ {"filterType" : "PERCENT_PRICE" , "multiplierUp" : "1.0500" , "multiplierDown" : "0.9500" , "multiplierDecimal" : "4" },
150
155
},
151
156
},
152
157
},
153
158
}
154
159
s .assertExchangeInfoEqual (ei , res )
155
- s .r ().Len (ei .Symbols [0 ].Filters , 5 , "Filters" )
160
+ s .r ().Len (ei .Symbols [0 ].Filters , 6 , "Filters" )
161
+
156
162
ePriceFilter := & PriceFilter {
157
163
MaxPrice : "100000" ,
158
164
MinPrice : "0.1" ,
159
165
TickSize : "0.1" ,
160
166
}
161
167
s .assertPriceFilterEqual (ePriceFilter , res .Symbols [0 ].PriceFilter ())
168
+
162
169
eLotSizeFilter := & LotSizeFilter {
163
170
MaxQuantity : "100000" ,
164
171
MinQuantity : "1" ,
165
172
StepSize : "1" ,
166
173
}
167
174
s .assertLotSizeFilterEqual (eLotSizeFilter , res .Symbols [0 ].LotSizeFilter ())
175
+
168
176
eMarketLotSizeFilter := & MarketLotSizeFilter {
169
177
MaxQuantity : "100000" ,
170
178
MinQuantity : "1" ,
171
179
StepSize : "1" ,
172
180
}
173
181
s .assertMarketLotSizeFilterEqual (eMarketLotSizeFilter , res .Symbols [0 ].MarketLotSizeFilter ())
182
+
174
183
eMaxNumOrdersFilter := & MaxNumOrdersFilter {
175
184
Limit : 200 ,
176
185
}
177
186
s .assertMaxNumOrdersFilterEqual (eMaxNumOrdersFilter , res .Symbols [0 ].MaxNumOrdersFilter ())
187
+
188
+ eMaxNumAlgoOrdersFilter := & MaxNumAlgoOrdersFilter {
189
+ Limit : 20 ,
190
+ }
191
+ s .assertMaxNumAlgoOrdersFilterEqual (eMaxNumAlgoOrdersFilter , res .Symbols [0 ].MaxNumAlgoOrdersFilter ())
192
+
178
193
ePercentPriceFilter := & PercentPriceFilter {
179
- MultiplierDecimal : 4 ,
194
+ MultiplierDecimal : "4" ,
180
195
MultiplierUp : "1.0500" ,
181
196
MultiplierDown : "0.9500" ,
182
197
}
@@ -219,6 +234,33 @@ func (s *exchangeInfoServiceTestSuite) assertExchangeInfoEqual(e, a *ExchangeInf
219
234
r .Equal (e .Symbols [i ].PricePrecision , a .Symbols [i ].PricePrecision , "PricePrecision" )
220
235
r .Equal (e .Symbols [i ].QuantityPrecision , a .Symbols [i ].QuantityPrecision , "QuantityPrecision" )
221
236
r .Equal (e .Symbols [i ].RequiredMarginPercent , a .Symbols [i ].RequiredMarginPercent , "RequiredMarginPercent" )
237
+
238
+ for fi , currentFilter := range a .Symbols [i ].Filters {
239
+ r .Len (currentFilter , len (e .Symbols [i ].Filters [fi ]))
240
+ switch currentFilter ["filterType" ] {
241
+ case "PRICE_FILTER" :
242
+ r .Equal (e .Symbols [i ].PriceFilter ().MinPrice , a .Symbols [i ].PriceFilter ().MinPrice , "MinPrice" )
243
+ r .Equal (e .Symbols [i ].PriceFilter ().MaxPrice , a .Symbols [i ].PriceFilter ().MaxPrice , "MaxPrice" )
244
+ r .Equal (e .Symbols [i ].PriceFilter ().TickSize , a .Symbols [i ].PriceFilter ().TickSize , "TickSize" )
245
+ case "LOT_SIZE" :
246
+ r .Equal (e .Symbols [i ].LotSizeFilter ().MinQuantity , a .Symbols [i ].LotSizeFilter ().MinQuantity , "MinQuantity" )
247
+ r .Equal (e .Symbols [i ].LotSizeFilter ().MaxQuantity , a .Symbols [i ].LotSizeFilter ().MaxQuantity , "MaxQuantity" )
248
+ r .Equal (e .Symbols [i ].LotSizeFilter ().StepSize , a .Symbols [i ].LotSizeFilter ().StepSize , "StepSize" )
249
+ case "MARKET_LOT_SIZE" :
250
+ r .Equal (e .Symbols [i ].MarketLotSizeFilter ().MinQuantity , a .Symbols [i ].MarketLotSizeFilter ().MinQuantity , "MinQuantity" )
251
+ r .Equal (e .Symbols [i ].MarketLotSizeFilter ().MaxQuantity , a .Symbols [i ].MarketLotSizeFilter ().MaxQuantity , "MaxQuantity" )
252
+ r .Equal (e .Symbols [i ].MarketLotSizeFilter ().StepSize , a .Symbols [i ].MarketLotSizeFilter ().StepSize , "StepSize" )
253
+ case "MAX_NUM_ORDERS" :
254
+ r .Equal (e .Symbols [i ].MaxNumOrdersFilter ().Limit , a .Symbols [i ].MaxNumOrdersFilter ().Limit , "Limit" )
255
+ case "MAX_NUM_ALGO_ORDERS" :
256
+ r .Equal (e .Symbols [i ].MaxNumAlgoOrdersFilter ().Limit , a .Symbols [i ].MaxNumAlgoOrdersFilter ().Limit , "Limit" )
257
+ case "PERCENT_PRICE" :
258
+ r .Equal (e .Symbols [i ].PercentPriceFilter ().MultiplierDecimal , a .Symbols [i ].PercentPriceFilter ().MultiplierDecimal , "MultiplierDecimal" )
259
+ r .Equal (e .Symbols [i ].PercentPriceFilter ().MultiplierUp , a .Symbols [i ].PercentPriceFilter ().MultiplierUp , "MultiplierUp" )
260
+ r .Equal (e .Symbols [i ].PercentPriceFilter ().MultiplierDown , a .Symbols [i ].PercentPriceFilter ().MultiplierDown , "MultiplierDown" )
261
+ }
262
+ }
263
+
222
264
r .Len (a .Symbols [i ].OrderType , len (e .Symbols [i ].OrderType ))
223
265
for j , orderType := range e .Symbols [i ].OrderType {
224
266
r .Equal (orderType , a .Symbols [i ].OrderType [j ], "OrderType" )
@@ -262,3 +304,8 @@ func (s *exchangeInfoServiceTestSuite) assertMaxNumOrdersFilterEqual(e, a *MaxNu
262
304
r := s .r ()
263
305
r .Equal (e .Limit , a .Limit , "Limit" )
264
306
}
307
+
308
+ func (s * exchangeInfoServiceTestSuite ) assertMaxNumAlgoOrdersFilterEqual (e , a * MaxNumAlgoOrdersFilter ) {
309
+ r := s .r ()
310
+ r .Equal (e .Limit , a .Limit , "Limit" )
311
+ }
0 commit comments