MCPcopy Create free account
hub / github.com/ccxt/ccxt / createOrder

Method createOrder

js/src/gate.js:4286–4392  ·  view source on GitHub ↗

* @method * @name gate#createOrder * @description Create an order on the exchange * @see https://www.gate.com/docs/developers/apiv4/en/#create-an-order * @see https://www.gate.com/docs/developers/apiv4/en/#create-price-triggered-order * @see https://www.gate.com/docs/develop

(symbol, type, side, amount, price = undefined, params = {})

Source from the content-addressed store, hash-verified

4284 * @returns {object|undefined} [An order structure]{@link https://docs.ccxt.com/?id=order-structure}
4285 */
4286 async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
4287 await this.loadMarkets();
4288 await this.loadUnifiedStatus();
4289 const market = this.market(symbol);
4290 const trigger = this.safeValue(params, 'trigger');
4291 const triggerPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
4292 const stopLossPrice = this.safeValue(params, 'stopLossPrice', triggerPrice);
4293 const takeProfitPrice = this.safeValue(params, 'takeProfitPrice');
4294 const isStopLossOrder = stopLossPrice !== undefined;
4295 const isTakeProfitOrder = takeProfitPrice !== undefined;
4296 const isTpsl = isStopLossOrder || isTakeProfitOrder;
4297 const nonTriggerOrder = !isTpsl && (trigger === undefined);
4298 const orderRequest = this.createOrderRequest(symbol, type, side, amount, price, params);
4299 let response;
4300 if (market['spot'] || market['margin']) {
4301 if (nonTriggerOrder) {
4302 response = await this.privateSpotPostOrders(orderRequest);
4303 }
4304 else {
4305 response = await this.privateSpotPostPriceOrders(orderRequest);
4306 }
4307 }
4308 else if (market['swap']) {
4309 if (nonTriggerOrder) {
4310 response = await this.privateFuturesPostSettleOrders(orderRequest);
4311 }
4312 else {
4313 response = await this.privateFuturesPostSettlePriceOrders(orderRequest);
4314 }
4315 }
4316 else if (market['future']) {
4317 if (nonTriggerOrder) {
4318 response = await this.privateDeliveryPostSettleOrders(orderRequest);
4319 }
4320 else {
4321 response = await this.privateDeliveryPostSettlePriceOrders(orderRequest);
4322 }
4323 }
4324 else {
4325 response = await this.privateOptionsPostOrders(orderRequest);
4326 }
4327 // const response = await this[method] (this.deepExtend (request, params));
4328 //
4329 // spot
4330 //
4331 // {
4332 // "id": "95282841887",
4333 // "text": "apiv4",
4334 // "create_time": "1637383156",
4335 // "update_time": "1637383156",
4336 // "create_time_ms": 1637383156017,
4337 // "update_time_ms": 1637383156017,
4338 // "status": "open",
4339 // "currency_pair": "ETH_USDT",
4340 // "type": "limit",
4341 // "account": "spot",
4342 // "side": "buy",
4343 // "amount": "0.01",

Callers 2

closePositionMethod · 0.95

Tested by

no test coverage detected