当前位置: 首页 > article >正文

2.9 Binance_interface APP 现货交易-限单价平仓

Binance_interface APP 现货交易-限单价平仓

  • Github地址
  • PyTed量化交易研究院
量化交易研究群(VX) = py_ted

目录

  • Binance_interface APP 现货交易-限单价平仓
    • 1. APP 现货交易-限单价平仓函数总览
    • 2. 模型实例化
    • 3. 同步 非堵塞 固定价格平仓(卖出)
    • 4. 同步 非堵塞 止盈价格平仓(卖出)
    • 5. 同步 堵塞 止盈价格平仓(卖出) 超时取消
    • 6. 同步 堵塞 止盈价格平仓(卖出) 回调函数
    • 7. 异步 堵塞 止盈价格平仓(卖出) 回调函数

1. APP 现货交易-限单价平仓函数总览

方法解释
close_limit限价单卖出

2. 模型实例化

from binance_interface.app import BinanceSPOT
from pprint import pprint
# 转发:需搭建转发服务器,可参考:https://github.com/pyted/binance_resender
proxy_host = None
key = 'xxxx'
secret = 'xxxx'

binanceSPOT = BinanceSPOT(
    key=key, secret=secret,
    proxy_host=proxy_host
)
trade = binanceSPOT.trade

3. 同步 非堵塞 固定价格平仓(卖出)

# block = False
close_limit3 = trade.close_limit(
    symbol='MANAUSDT',  # 产品
    closePrice=1,  # 平仓价格 closePrice 和 tpRate必须填写其中一个
    # tpRate=0.1,  # 挂单止盈率
    quantity=5,  # 平仓数量(交易货币) 
    block=False,  # 是否以堵塞的模式
    meta={},  # 向回调函数中传递的参数字典
)

pprint(close_limit3)

输出:

>>> {'cancel_result': None,
>>>  'error_result': None,
>>>  'func_param': {'base_asset': None,
>>>                 'block': False,
>>>                 'callback': None,
>>>                 'cancel': True,
>>>                 'closePrice': 1,
>>>                 'delay': 0.2,
>>>                 'errorback': None,
>>>                 'meta': {},
>>>                 'newClientOrderId': '',
>>>                 'newThread': False,
>>>                 'quantity': 5,
>>>                 'symbol': 'MANAUSDT',
>>>                 'timeout': 60,
>>>                 'tpRate': None},
>>>  'get_order_result': None,
>>>  'meta': {},
>>>  'request_param': {'newClientOrderId': '',
>>>                    'price': '1.0000',
>>>                    'quantity': '5',
>>>                    'side': 'SELL',
>>>                    'symbol': 'MANAUSDT',
>>>                    'timeInForce': 'GTC',
>>>                    'type': 'LIMIT'},
>>>  'set_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': 'm7UdoWyzjkl80q1rgzJ19U',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'fills': [],
>>>                                'orderId': 2207181640,
>>>                                'orderListId': -1,
>>>                                'origQty': '5.00000000',
>>>                                'price': '1.00000000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'NEW',
>>>                                'symbol': 'MANAUSDT',
>>>                                'timeInForce': 'GTC',
>>>                                'transactTime': 1706105539772,
>>>                                'type': 'LIMIT',
>>>                                'workingTime': 1706105539772},
>>>                       'msg': ''},
>>>  'status': None,
>>>  'symbol': 'MANAUSDT'}

4. 同步 非堵塞 止盈价格平仓(卖出)

# 设置tpRate = 0.1,止盈率为10%,止盈率以当前最新价格为基准
close_limit4 = trade.close_limit(
    symbol='MANAUSDT',  # 产品
    # closePrice=10,  # 平仓价格 closePrice 和 tpRate必须填写其中一个
    tpRate=0.1,  # 挂单止盈率
    quantity=15,  # 平仓数量(交易货币) 
    block=False,  # 是否以堵塞的模式
    meta={},  # 向回调函数中传递的参数字典
)

pprint(close_limit4)

输出:

>>> {'cancel_result': None,
>>>  'error_result': None,
>>>  'func_param': {'base_asset': None,
>>>                 'block': False,
>>>                 'callback': None,
>>>                 'cancel': True,
>>>                 'closePrice': None,
>>>                 'delay': 0.2,
>>>                 'errorback': None,
>>>                 'meta': {},
>>>                 'newClientOrderId': '',
>>>                 'newThread': False,
>>>                 'quantity': 15,
>>>                 'symbol': 'MANAUSDT',
>>>                 'timeout': 60,
>>>                 'tpRate': 0.1},
>>>  'get_order_result': None,
>>>  'meta': {},
>>>  'request_param': {'newClientOrderId': '',
>>>                    'price': '0.4794',
>>>                    'quantity': '15',
>>>                    'side': 'SELL',
>>>                    'symbol': 'MANAUSDT',
>>>                    'timeInForce': 'GTC',
>>>                    'type': 'LIMIT'},
>>>  'set_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': 'G03pZe5KataOJ7C1DS3gmn',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'fills': [],
>>>                                'orderId': 2207182516,
>>>                                'orderListId': -1,
>>>                                'origQty': '15.00000000',
>>>                                'price': '0.47940000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'NEW',
>>>                                'symbol': 'MANAUSDT',
>>>                                'timeInForce': 'GTC',
>>>                                'transactTime': 1706105588896,
>>>                                'type': 'LIMIT',
>>>                                'workingTime': 1706105588896},
>>>                       'msg': ''},
>>>  'status': None,
>>>  'symbol': 'MANAUSDT'}

5. 同步 堵塞 止盈价格平仓(卖出) 超时取消

# quantity = 'all' 表示全部可交易货币
# 设置block、timeout、cancel
close_limit5 = trade.close_limit(
    symbol='MANAUSDT',  # 产品
    base_asset='USDT',  # 交易基础货币
    # closePrice=10,  # 平仓价格 closePrice 和 tpRate必须填写其中一个
    tpRate=0.1,  # 挂单止盈率
    meta={},  # 向回调函数中传递的参数字典

    quantity='all',  # 平仓数量
    block=True,  # 是否堵塞
    timeout=5,  # 等待订单成功的超时时间
    delay=0.2,  # 检测订单状态的间隔 (秒)
    cancel=True,  # 未完全成交是否取消订单
)

pprint(close_limit5)

输出:

>>> {'cancel_result': {'code': 200,
>>>                    'data': {'clientOrderId': 'f9NGIgY5NlaFdSWebznwiD',
>>>                             'cummulativeQuoteQty': '0.00000000',
>>>                             'executedQty': '0.00000000',
>>>                             'orderId': 2207183228,
>>>                             'orderListId': -1,
>>>                             'origClientOrderId': '9fWIbWOlGAKCy3dXeWCkFW',
>>>                             'origQty': '68.00000000',
>>>                             'price': '0.47900000',
>>>                             'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                             'side': 'SELL',
>>>                             'status': 'CANCELED',
>>>                             'symbol': 'MANAUSDT',
>>>                             'timeInForce': 'GTC',
>>>                             'transactTime': 1706105634381,
>>>                             'type': 'LIMIT'},
>>>                    'msg': ''},
>>>  'error_result': None,
>>>  'func_param': {'base_asset': 'USDT',
>>>                 'block': True,
>>>                 'callback': None,
>>>                 'cancel': True,
>>>                 'closePrice': None,
>>>                 'delay': 0.2,
>>>                 'errorback': None,
>>>                 'meta': {},
>>>                 'newClientOrderId': '',
>>>                 'newThread': False,
>>>                 'quantity': 'all',
>>>                 'symbol': 'MANAUSDT',
>>>                 'timeout': 5,
>>>                 'tpRate': 0.1},
>>>  'get_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': '9fWIbWOlGAKCy3dXeWCkFW',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'icebergQty': '0.00000000',
>>>                                'isWorking': True,
>>>                                'orderId': 2207183228,
>>>                                'orderListId': -1,
>>>                                'origQty': '68.00000000',
>>>                                'origQuoteOrderQty': '0.00000000',
>>>                                'price': '0.47900000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'CANCELED',
>>>                                'stopPrice': '0.00000000',
>>>                                'symbol': 'MANAUSDT',
>>>                                'time': 1706105628694,
>>>                                'timeInForce': 'GTC',
>>>                                'type': 'LIMIT',
>>>                                'updateTime': 1706105634381,
>>>                                'workingTime': 1706105628694},
>>>                       'msg': ''},
>>>  'meta': {},
>>>  'request_param': {'newClientOrderId': '',
>>>                    'price': '0.4790',
>>>                    'quantity': '68',
>>>                    'side': 'SELL',
>>>                    'symbol': 'MANAUSDT',
>>>                    'timeInForce': 'GTC',
>>>                    'type': 'LIMIT'},
>>>  'set_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': '9fWIbWOlGAKCy3dXeWCkFW',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'fills': [],
>>>                                'orderId': 2207183228,
>>>                                'orderListId': -1,
>>>                                'origQty': '68.00000000',
>>>                                'price': '0.47900000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'NEW',
>>>                                'symbol': 'MANAUSDT',
>>>                                'timeInForce': 'GTC',
>>>                                'transactTime': 1706105628694,
>>>                                'type': 'LIMIT',
>>>                                'workingTime': 1706105628694},
>>>                       'msg': ''},
>>>  'status': 'CANCELED',
>>>  'symbol': 'MANAUSDT'}

6. 同步 堵塞 止盈价格平仓(卖出) 回调函数

# 执行成功回调
def callback6(information):
    print('callback')
    pprint(information)


# 执行错误回调
def errorback6(information):
    print('errorback')
    pprint(information)
# 设置callback与errorback
close_limit6 = trade.close_limit(
    symbol='MANAUSDT',  # 产品
    base_asset='USDT',  # 交易基础货币
    # closePrice=1000,  # 平仓价格 closePrice 和 tpRate必须填写其中一个
    tpRate=0.1,  # 挂单止盈率
    quantity='all',  # 平仓数量
    block=True,  # 是否堵塞
    timeout=5,  # 等待订单成功的超时时间
    delay=0.2,  # 检测订单状态的间隔 (秒)
    cancel=True,  # 未完全成交是否取消订单
    meta={},  # 向回调函数中传递的参数字典

    callback=callback6,  # 开仓成功触发的回调函数
    errorback=errorback6,  # 开仓失败触发的回调函数
)

输出:

>>> callback
>>> {'cancel_result': {'code': 200,
>>>                    'data': {'clientOrderId': 'q4zAFZ9vVezIcXRDX72MV5',
>>>                             'cummulativeQuoteQty': '0.00000000',
>>>                             'executedQty': '0.00000000',
>>>                             'orderId': 2207183792,
>>>                             'orderListId': -1,
>>>                             'origClientOrderId': 'kjcGDdhQV2J38b3vVOPxrX',
>>>                             'origQty': '68.00000000',
>>>                             'price': '0.47900000',
>>>                             'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                             'side': 'SELL',
>>>                             'status': 'CANCELED',
>>>                             'symbol': 'MANAUSDT',
>>>                             'timeInForce': 'GTC',
>>>                             'transactTime': 1706105681137,
>>>                             'type': 'LIMIT'},
>>>                    'msg': ''},
>>>  'error_result': None,
>>>  'func_param': {'base_asset': 'USDT',
>>>                 'block': True,
>>>                 'callback': <function callback6 at 0x7fede0b008b0>,
>>>                 'cancel': True,
>>>                 'closePrice': None,
>>>                 'delay': 0.2,
>>>                 'errorback': <function errorback6 at 0x7fede0b009d0>,
>>>                 'meta': {},
>>>                 'newClientOrderId': '',
>>>                 'newThread': False,
>>>                 'quantity': 'all',
>>>                 'symbol': 'MANAUSDT',
>>>                 'timeout': 5,
>>>                 'tpRate': 0.1},
>>>  'get_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': 'kjcGDdhQV2J38b3vVOPxrX',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'icebergQty': '0.00000000',
>>>                                'isWorking': True,
>>>                                'orderId': 2207183792,
>>>                                'orderListId': -1,
>>>                                'origQty': '68.00000000',
>>>                                'origQuoteOrderQty': '0.00000000',
>>>                                'price': '0.47900000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'CANCELED',
>>>                                'stopPrice': '0.00000000',
>>>                                'symbol': 'MANAUSDT',
>>>                                'time': 1706105674825,
>>>                                'timeInForce': 'GTC',
>>>                                'type': 'LIMIT',
>>>                                'updateTime': 1706105681137,
>>>                                'workingTime': 1706105674825},
>>>                       'msg': ''},
>>>  'meta': {},
>>>  'request_param': {'newClientOrderId': '',
>>>                    'price': '0.4790',
>>>                    'quantity': '68',
>>>                    'side': 'SELL',
>>>                    'symbol': 'MANAUSDT',
>>>                    'timeInForce': 'GTC',
>>>                    'type': 'LIMIT'},
>>>  'set_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': 'kjcGDdhQV2J38b3vVOPxrX',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'fills': [],
>>>                                'orderId': 2207183792,
>>>                                'orderListId': -1,
>>>                                'origQty': '68.00000000',
>>>                                'price': '0.47900000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'NEW',
>>>                                'symbol': 'MANAUSDT',
>>>                                'timeInForce': 'GTC',
>>>                                'transactTime': 1706105674825,
>>>                                'type': 'LIMIT',
>>>                                'workingTime': 1706105674825},
>>>                       'msg': ''},
>>>  'status': 'CANCELED',
>>>  'symbol': 'MANAUSDT'}

7. 异步 堵塞 止盈价格平仓(卖出) 回调函数

# 执行成功回调
def callback7(information):
    print('thread callback')
    pprint(information)


# 执行错误回调
def errorback7(information):
    print('thread errorback')
    pprint(information)
# 设置newThread=True
close_limit7 = trade.close_limit(
    symbol='MANAUSDT',  # 产品
    base_asset='USDT',  # 交易基础货币
    # closePrice=1000,  # 平仓价格 closePrice 和 tpRate必须填写其中一个
    tpRate=0.1,  # 挂单止盈率
    quantity='all',  # 平仓数量
    block=True,  # 是否堵塞
    timeout=5,  # 等待订单成功的超时时间
    delay=0.2,  # 检测订单状态的间隔 (秒)
    cancel=True,  # 未完全成交是否取消订单
    callback=callback7,  # 开仓成功触发的回调函数
    errorback=errorback7,  # 开仓失败触发的回调函数
    meta={},  # 向回调函数中传递的参数字典

    newThread=True,  # 是否开启一个新的线程维护这个订单
)
print(close_limit7)
print('-' * 30)

输出:

>>> <Thread(Thread-5, started 123145588416512)>
>>> ------------------------------
>>> thread callback
>>> {'cancel_result': {'code': 200,
>>>                    'data': {'clientOrderId': 'oqQITJhGlWgjHRaCK0TreO',
>>>                             'cummulativeQuoteQty': '0.00000000',
>>>                             'executedQty': '0.00000000',
>>>                             'orderId': 2207184973,
>>>                             'orderListId': -1,
>>>                             'origClientOrderId': 'bMTfXGOjnbhzbIuuiQyGcC',
>>>                             'origQty': '68.00000000',
>>>                             'price': '0.47920000',
>>>                             'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                             'side': 'SELL',
>>>                             'status': 'CANCELED',
>>>                             'symbol': 'MANAUSDT',
>>>                             'timeInForce': 'GTC',
>>>                             'transactTime': 1706105778149,
>>>                             'type': 'LIMIT'},
>>>                    'msg': ''},
>>>  'error_result': None,
>>>  'func_param': {'base_asset': 'USDT',
>>>                 'block': True,
>>>                 'callback': <function callback7 at 0x7ff4808cf8b0>,
>>>                 'cancel': True,
>>>                 'closePrice': None,
>>>                 'delay': 0.2,
>>>                 'errorback': <function errorback7 at 0x7ff49097d790>,
>>>                 'meta': {},
>>>                 'newClientOrderId': '',
>>>                 'newThread': True,
>>>                 'quantity': 'all',
>>>                 'symbol': 'MANAUSDT',
>>>                 'timeout': 5,
>>>                 'tpRate': 0.1},
>>>  'get_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': 'bMTfXGOjnbhzbIuuiQyGcC',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'icebergQty': '0.00000000',
>>>                                'isWorking': True,
>>>                                'orderId': 2207184973,
>>>                                'orderListId': -1,
>>>                                'origQty': '68.00000000',
>>>                                'origQuoteOrderQty': '0.00000000',
>>>                                'price': '0.47920000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'CANCELED',
>>>                                'stopPrice': '0.00000000',
>>>                                'symbol': 'MANAUSDT',
>>>                                'time': 1706105772757,
>>>                                'timeInForce': 'GTC',
>>>                                'type': 'LIMIT',
>>>                                'updateTime': 1706105778149,
>>>                                'workingTime': 1706105772757},
>>>                       'msg': ''},
>>>  'meta': {},
>>>  'request_param': {'newClientOrderId': '',
>>>                    'price': '0.4792',
>>>                    'quantity': '68',
>>>                    'side': 'SELL',
>>>                    'symbol': 'MANAUSDT',
>>>                    'timeInForce': 'GTC',
>>>                    'type': 'LIMIT'},
>>>  'set_order_result': {'code': 200,
>>>                       'data': {'clientOrderId': 'bMTfXGOjnbhzbIuuiQyGcC',
>>>                                'cummulativeQuoteQty': '0.00000000',
>>>                                'executedQty': '0.00000000',
>>>                                'fills': [],
>>>                                'orderId': 2207184973,
>>>                                'orderListId': -1,
>>>                                'origQty': '68.00000000',
>>>                                'price': '0.47920000',
>>>                                'selfTradePreventionMode': 'EXPIRE_MAKER',
>>>                                'side': 'SELL',
>>>                                'status': 'NEW',
>>>                                'symbol': 'MANAUSDT',
>>>                                'timeInForce': 'GTC',
>>>                                'transactTime': 1706105772757,
>>>                                'type': 'LIMIT',
>>>                                'workingTime': 1706105772757},
>>>                       'msg': ''},
>>>  'status': 'CANCELED',
>>>  'symbol': 'MANAUSDT'}

http://www.kler.cn/news/234125.html

相关文章:

  • MySQL数据库-索引概念及其数据结构、覆盖索引与回表查询关联、超大分页解决思路
  • 人工智能之参数估计
  • 算法学习——LeetCode力扣栈与队列篇1
  • 计算机视觉主要知识点
  • CleanMyMac X 4.14.7帮您安全清理Mac系统垃圾
  • [UI5 常用控件] 08.Wizard,NavContainer
  • 论文笔记:相似感知的多模态假新闻检测
  • Nginx实战:3-日志按天分割
  • python coding with ChatGPT 打卡第19天| 二叉树:合并二叉树
  • 显示器校准软件:BetterDisplay Pro for Mac v2.0.11激活版下载
  • 读书笔记之《运动改造大脑》:运动是最佳的健脑丸
  • 【大厂AI课学习笔记】【1.6 人工智能基础知识】(1)人工智能、机器学习、深度学习之间的关系
  • 二、数据结构
  • golang 集成sentry:http.Client
  • 【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-Viterbi译码原理
  • GPT-4登场:多模态能力革新,提升ChatGPT与必应体验,开放API助力游戏革新
  • ZooKeeper分布式锁
  • 【golang】23、gorilla websocket 源码:examples、数据结构、流程
  • 【数据结构与算法】【小白也能学的数据结构与算法】递归 分治 迭代 动态规划 无从下手?一文通!!!
  • Linux满载CPU和运行内存的方法
  • 中文点选识别
  • c#安全-nativeAOT
  • 【java】Hibernate访问数据库
  • 快团团大团长加了微信都不回复怎么回事?如果自己做快团团预算需要多少,团队需要几个人
  • Java 将TXT文本文件转换为PDF文件
  • 前端-Vue項目初始化
  • AJAX——认识URL
  • 灰度发布浅见
  • Flink-CDC实时读Postgresql数据
  • HiveSQL——连续增长问题