首页 > 其他分享 >九、区块量化 binance 合约操作文件续

九、区块量化 binance 合约操作文件续

时间:2023-06-17 21:44:13浏览次数:34  
标签:binance elif symbol param amount 量化 message 区块 side

def create_limit_order(symbol='EOSUSDT', side='BUY', positionside='LONG', ordtype='LIMIT', price=0, quantity='1',
message=''):
"""
全仓合约市价下单
@param symbol: 产品ID EOSUSDT
@param side: 订单方向:BUY:买, SELL:卖
@param positionside: 持仓方向:LONG 或 SHORT
@param ordtype: 订单类型:MARKET:市价单、LIMIT:限价单
@param price: 委托价格
@param quantity: 委托数量
@param message: 判断依据
@return:
"""
quantitys = float(quantity)
result = client.futures_create_order(symbol=symbol, side=side, positionSide=positionside, type=ordtype, price=price,
quantity=quantitys, timeInForce='GTC')
if side == 'SELL':
sides = '卖出'
else:
sides = '买入'
if positionside == 'SHORT':
possides = '做空'
else:
possides = '做多'
weixin.senddata('@all', 'Binance 限价单委托下单成功,\n 订单ID:' + str(result["orderId"]) + '\n 交易对:' + symbol +
'\n 买卖方式:' + sides + '\n 购买方向:' + possides + '\n 购买价格:' + str(
price) + '\n 购买数量:' + str(quantity) + '\n 判断依据:' + message)


def create_market_order(symbol='EOSUSDT', side='BUY', positionside='LONG', ordtype='MARKET', quantity='1', message=''):
"""
全仓合约市价下单
@param symbol: 产品ID EOSUSDT
@param side: 订单方向:BUY:买, SELL:卖
@param positionside: 持仓方向:LONG 或 SHORT
@param ordtype: 订单类型:MARKET:市价单、LIMIT:限价单
@param quantity: 委托数量
@param message: 判断依据
@return:
"""
quantitys = float(quantity)
result = client.futures_create_order(symbol=symbol, side=side, positionSide=positionside,
type=ordtype, quantity=quantitys)
if side == 'SELL':
sides = '卖出'
else:
sides = '买入'
if positionside == 'SHORT':
possides = '做空'
else:
possides = '做多'
weixin.senddata('@all', 'Binance 市价单下单成功,\n 订单ID:' + str(result["orderId"]) + '\n 交易对:' + symbol +
'\n 买卖方式:' + sides + '\n 购买方向:' + possides + '\n 购买数量:' + str(quantity) +
'\n 判断依据:' + message)


'''
开平仓模式下,side和posSide需要进行组合
开多:买入开多(side 填写 buy; posSide 填写 long )
开空:卖出开空(side 填写 sell; posSide 填写 short )
平多:卖出平多(side 填写 sell;posSide 填写 long )
平空:买入平空(side 填写 buy; posSide 填写 short )
'''


def close_long_positions(symbol='EOSUSDT', price='0', message=''):
"""
平多仓
@param symbol: 交易对
@param price: 平仓价格
@param message: 判断依据
@return:
"""
client.futures_create_order(symbol=symbol, closePosition=True, type='STOP_MARKET', side='SELL', positionSide='LONG',
stopPrice=price)
weixin.senddata('@all', 'Binance 平多仓成功,\n 交易对:' + symbol + '\n 判断依据:' + message)


def close_short_positions(symbol='EOSUSDT', price='0', message=''):
"""
平空仓
@param symbol: 交易对
@param price: 平仓价格
@param message: 判断依据
@return:
"""
client.futures_create_order(symbol=symbol, closePosition=True, type='STOP_MARKET', side='BUY', positionSide='SHORT',
stopPrice=price)
weixin.senddata('@all', 'Binance 平空仓成功,\n 交易对:' + symbol + '\n 判断依据:' + message)


def up_cross_order(symbol, message=''):
"""
市价开多仓
@param symbol: 交易对
@param message: 消息处理
@return:
"""
print('可做多的交易对:' + symbol)
available_cash = get_available_cash('USDT')
print('可用USDT:' + str(available_cash))
if symbol == 'BTCUSDT':
amount = '0.01'
elif symbol == 'ETHUSDT':
amount = '0.1'
elif symbol == 'DASHUSDT':
amount = '0.2'
elif symbol == 'BCHUSDT':
amount = '0.1'
elif symbol == 'ZECUSDT':
amount = '0.2'
elif symbol == 'LTCUSDT':
amount = '0.1'
elif symbol == 'FILUSDT':
amount = '2'
elif symbol == 'XMRUSDT':
amount = '0.1'
elif symbol == 'DOTUSDT':
amount = '2'
elif symbol == 'SOLUSDT':
amount = '1'
else:
amount = '1'
if available_cash > 0:
print('Binance 市价开多仓' + symbol)
create_market_order(symbol=symbol, side='BUY', positionside='LONG', ordtype='MARKET', quantity=amount,
message=message)


def down_cross_order(symbol, message=''):
"""
市价开空仓
@param symbol: 交易对
@param message: 消息处理
@return:
"""
print('可做空的交易对:' + symbol)
available_cash = get_available_cash('USDT')
print('可用USDT:' + str(available_cash))
if symbol == 'BTCUSDT':
amount = '0.01'
elif symbol == 'ETHUSDT':
amount = '0.1'
elif symbol == 'DASHUSDT':
amount = '0.2'
elif symbol == 'BCHUSDT':
amount = '0.1'
elif symbol == 'ZECUSDT':
amount = '0.2'
elif symbol == 'LTCUSDT':
amount = '0.1'
elif symbol == 'FILUSDT':
amount = '2'
elif symbol == 'XMRUSDT':
amount = '0.1'
elif symbol == 'DOTUSDT':
amount = '2'
elif symbol == 'SOLUSDT':
amount = '1'
else:
amount = '1'
if available_cash > 0:
print('Binance 市价开空仓:' + symbol)
create_market_order(symbol=symbol, side='SELL', positionside='SHORT', ordtype='MARKET', quantity=amount,
message=message)

标签:binance,elif,symbol,param,amount,量化,message,区块,side
From: https://www.cnblogs.com/nbjjy/p/17488301.html

相关文章

  • 五、区块量化 okx boll轨道策略
    1、新增cross_boll_order.py#-*-coding:utf-8-*-importtalibimportcross_orderasorderimporttimeBOLL_N=20#BBands参数NBOLL_M=2#BBands参数Mdefmain():print("任务开始时间:",time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(time.time()))......
  • 二、区块量化 okx 配置修改
    1、用pycharm软件打开python-okx-master文件2、修改Account.py、MarketData.py、Trade.py文件 把debug=True修改为debug=False3、新增config.py文件api_key='你申请的apikey'secret_key='你申请的secretkey'passphrase='你申请时的密码'flag='0'#0、为实盘......
  • 零代码量化投资:用ChatGPT构建一个投资交易策略并进行回测
    准备后数据后,就可以开发构建量化投资策略了。比较知名、流行的量化策略回测框架有vnpy、pyalgotrader、backtrader等。下面以backtrader为例,来运行一个最简单的投资策略。先安装backtrader的库:pipinstallbacktrader然后在ChatGPT中输入提示词:写一段Python代码,用Backtrader库构建......
  • 区块链底层算法基础:有限群及其代码实现
    区块链完全可以说是人类智慧的结晶,它的诞生是人类科技文明发展到一定程度的结果展现。区块链的功能得以实现要有赖于加解密技术的发展,而后者又来源于数论和抽象代数几百年的发展,因此要把握区块链的技术思路,不了解其加解密原理,那你就不可能掌握区块链的技术精髓,所以我们庖丁解牛,一点......
  • javascript现代编程系列教程之一:区块作用域对VAR不起作用的问题
    在JavaScript中,使用var声明的变量具有函数作用域,而不是块级作用域。这意味着在一个函数内部,使用var声明的变量在整个函数范围内都是可见的,包括嵌套的块(如if语句、for循环等)。为了避免区块对var不起作用的问题,你可以采用以下方法:使用let和const代替var:从ECMAScript2015(ES6)开始,引......
  • 加速44%!RT-DETR量化无损压缩优秀实战
    RT-DETR模型是飞表目标检测套件PaddleDetection最新发布的SOTA目标检测模型。它是一种基于DETR架构的端到端目标检测器,在速度和精度上均取了SOTA性能。在现实部署中,为了追求“更准、更小、更快”的效率,本文使用飞模模型压缩工具PaddleSlim中的自动压缩工具(ACT,AutoCompressionTo......
  • Typora 轻量化配置自动上传图片至Gitee
    Typora轻量化配置自动上传图片至Gitee目录​ 目录​ 前言​ 下载upgit​ 创建Gitee仓库​ 配置upgit和typora​ 功能测试前言​ 各位师傅可能会在使用Typora写有图博客的时候,出现上传博客网站手动重新导图,本文主要使用upgit实现轻量化的自动上传图片至Gitee仓库。这样......
  • .Net7矢量化的性能优化
    前言矢量化是性能优化的重要技术,也是寄托硬件层面的优化技术。本篇来看下。概括一:矢量化支持的问题:矢量化的System.Runtime.Intrinsics.X86.Sse2.MoveMask函数和矢量化的Vector128.Create().ExtractMostSignificantBits()函数返回的结果是一样的。但是前者只能在支持SSE2的......
  • 【区块链】HyperLedger Besu Docker异地组网(续)
    最近有些朋友私信我,说之前《【区块链】HyperLedgerBesuDocker异地组网》中提到使用dockerswarm可以进行异地组网,但实际上在公网层面无法实现。嗯...的确之前我没有说清楚,其实在我实施的过程中还是遇到了比较多的问题的,譬如:国内三大网络运营商对于公网接入会有不同的网络策略;......
  • Hive执行计划之什么是hiveSQL向量化模式及优化详解
    Hive开启向量化模式也是hiveSQL优化方法中的一种,可以提升hive查询速率,也叫hive矢量化。问题1:那么什么是hive向量化模式呢?问题2:hive向量化什么情况下可以被使用,或者说它有哪些使用场景呢?问题3:如何查看hive向量化使用的相关信息?1.什么是hive向量化模式hive向量化模式是hive的一......