Back to Ccxt

You can read more about spot trailing orders here:

wiki/examples/py/binance-spot-trailing.md

4.5.522.1 KB
Original Source
python
# -*- coding: utf-8 -*-

import asyncio
import os
from random import randint
import sys
from pprint import pprint


import ccxt.async_support as ccxt  # noqa: E402


print('CCXT Version:', ccxt.__version__)

exchange = ccxt.binance({
   'apiKey': 'YOUR_API_KEY',
   'secret': 'YOUR_SECRET_KEY',
})

exchange = ccxt.binance({
   'apiKey': os.environ['BINANCE_APIKEY'],
   'secret': os.environ['BINANCE_SECRET'],
})

# You can read more about spot trailing orders here:
# https://github.com/binance/binance-spot-api-docs/blob/master/faqs/trailing-stop-faq.md

# Example 1: Spot : trailing spot loss
async def example_1():
   markets = await exchange.load_markets(True)

   # create STOP_LOSS_LIMIT BUY with a trailing stop of 5%.
   symbol = 'LTC/USDT'
   type = 'STOP_LOSS_LIMIT'
   side = 'buy'
   amount = 0.4
   price = 25
   params = {
       'trailingDelta':  500, # 5% in BIPS
   }
   exchange.verbose = True
   create_order = await exchange.create_order(symbol, type, side, amount, price, params)
   print('Create order id:', create_order['id'])

   # cancel created order
   canceled_order = await exchange.cancel_order(create_order['id'], symbol)
   print(canceled_order)

   await exchange.close()
# Example 2: Spot : TAKE_PROFIT_LIMIT BUY order
async def example_2():
   markets = await exchange.load_markets(True)

   # create TAKE_PROFIT_LIMIT BUY with a trailing stop of 5%.
   symbol = 'LTC/USDT'
   type = 'TAKE_PROFIT_LIMIT'
   side = 'buy'
   amount = 0.2
   price = 70
   params = {
       'trailingDelta':  250 # 2.5% in BIPS
   }
   exchange.verbose = True
   create_order = await exchange.create_order(symbol, type, side, amount, price, params)
   print('Create order id:', create_order['id'])

   # cancel created order
   canceled_order = await exchange.cancel_order(create_order['id'], symbol)
   print(canceled_order)

   await exchange.close()
async def main():
   try:
       # await example_1()
       await example_2()
   except Exception as e:
       print(e)
   await exchange.close()
   
   


asyncio.run(main())