@@ -88,23 +88,23 @@ public extension SwiftTrader {
88
88
89
89
// MARK: Place Orders
90
90
91
- /// Places a Futures order.
91
+ /// Places a Futures stop limit order.
92
92
///
93
93
/// https://docs.kucoin.com/futures/#place-an-order
94
94
///
95
95
/// - Parameter orderInput: `SwiftTraderOrderInput` instance that encapsulates
96
- /// all the arguments required for submiting the orders .
96
+ /// all the arguments required for submiting the stop limit order .
97
97
/// - Returns: An instance of `KucoinFuturesPlaceOrder` or `SwiftTraderError`.
98
- func kucoinFuturesPlaceOrder ( _ orderInput : SwiftTraderOrderInput ) async throws -> Result < KucoinFuturesPlaceOrder , SwiftTraderError > {
98
+ func kucoinFuturesPlaceStopLimitOrder ( _ stopLimitOrderInput : SwiftTraderStopLimitOrderInput ) async throws -> Result < KucoinFuturesPlaceOrder , SwiftTraderError > {
99
99
100
- #warning("TODO: parameterize cleaning up untriggered stop orders" )
101
- let orderParameters = try createOrderParameters ( for : orderInput )
102
-
103
- do {
104
- #warning("TODO: test" )
105
- try await kucoinFuturesCancelStopOrders ( symbol : orderInput . contractSymbol )
106
- } catch {
107
- #warning("TODO: log")
100
+ let orderParameters = try createStopLimitOrderParameters ( for : stopLimitOrderInput )
101
+
102
+ if stopLimitOrderInput . clean {
103
+ do {
104
+ try await kucoinFuturesCancelStopOrders ( symbol : stopLimitOrderInput . contractSymbol )
105
+ } catch {
106
+ logger . log ( " Could not cancel untriggered stop orders: \( error ) " )
107
+ }
108
108
}
109
109
110
110
let request = KucoinFuturesPlaceOrdersRequest (
@@ -119,7 +119,7 @@ public extension SwiftTrader {
119
119
}
120
120
return . success( placeOrder)
121
121
case . failure( let error) :
122
- let swiftTraderError = handle ( networkRequestError: error, operation: . kucoinFuturesPlaceOrder )
122
+ let swiftTraderError = handle ( networkRequestError: error, operation: . kucoinFuturesPlaceStopLimitOrder )
123
123
return . failure( swiftTraderError)
124
124
}
125
125
}
@@ -193,8 +193,8 @@ private extension SwiftTrader {
193
193
return . kucoinFuturesCancelStopOrders( error: networkRequestError)
194
194
case . kucoinFuturesOrderList:
195
195
return . kucoinOrderList( error: networkRequestError)
196
- case . kucoinFuturesPlaceOrder :
197
- return . kucoinPlaceOrder ( error: networkRequestError)
196
+ case . kucoinFuturesPlaceStopLimitOrder :
197
+ return . kucoinPlaceStopLimitOrder ( error: networkRequestError)
198
198
case . kucoinFuturesPositionList:
199
199
return . kucoinPositionList( error: networkRequestError)
200
200
}
0 commit comments