Back to Ccxt

Huobi Open Close Contract

wiki/examples/js/huobi-open-close-contract.md

4.5.522.0 KB
Original Source
javascript
import ccxt from '../../js/ccxt.js';

const exchange = new ccxt.huobi ({
   'apiKey': 'YOUR_API_KEY',
   'secret': 'YOUR_SECRET',
   'options': {
       'defaultType': 'swap',
       'marginMode': 'cross'
   },
})

;(async () => {
   const markets = await exchange.loadMarkets ()

   // exchange.verbose = true // uncomment for debugging purposes if necessary

   // Example: creating and closing a contract
   let symbol = 'ADA/USDT:USDT' // market positions for contracts not available
   let type = 'limit'
   let side = 'buy'
   let offset= 'open'
   let leverage = 1
   let amount = 1
   let price = 1
   let clientOrderId = 6;
   let params = {
       'offset': offset,
       'lever_rate': leverage,
       'client_order_id': clientOrderId
   }

   try {
       // fetching current balance
       const balance = await exchange.fetchBalance()
       console.log(balance)

       // placing an order
       const order = await exchange.createOrder (symbol, type, side, amount, price, params)
       console.log (order)

       // fetching position
       const position = await exchange.fetchPosition(symbol)
       console.log(position)


       // closing it by issuing an oposite contract 
       // warning: since we can only place limit orders
       // it might take a while (depending on the price we choose and market fluctuations) 
       // to the order be fulfilled
       // and therefore close our previous position
       side = 'sell'
       type = 'limit'
       offset = 'close'
       reduce_only = 1 // 1 : yes, 0: no
       clientOrderId = 9
       price = 1.147 // adjust this accordingly
       params = {'offset': offset, 'reduce_only': reduce_only, 'client_order_id': clientOrderId}
       const opositeOrder = await exchange.createOrder (symbol, type, side, amount, price, params)
       console.log (opositeOrder)
   } catch (e) {
       console.log (e.constructor.name, e.message)
   }
}) ()