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

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

时间:2023-06-17 21:44:24浏览次数:32  
标签:binance return get df symbol param result 量化 区块

新增cross_order.py文件

# -*- coding: utf-8 -*-
import pandas as pd
from binance.client import Client
from binance.config import api_key, api_secret
import time

client = Client(api_key, api_secret)
pd.set_option('expand_frame_repr', False)

 

# 交易对集合
# symbol:交易对
symbol_pool = ['BTCUSDT', 'ETHUSDT']


def get_orderbook_ask(symbol='EOSUSDT'):
"""
查看买一的价格
@param symbol: 币种
@return:
"""
result = client.get_orderbook_ticker(symbol=symbol)
return float(result['askPrice'])


def get_orderbook_bid(symbol='EOSUSDT'):
"""
查看卖一的价格
@param symbol: 币种
@return:
"""
result = client.get_orderbook_ticker(symbol=symbol)
return float(result['bidPrice'])


def get_available_cash(symbol='USDT'):
"""
查看账户余额
@param symbol: 币种
@return:
"""
result = client.futures_account_balance()
for value in result:
if value['asset'] == symbol:
balance = float(value['balance'])
return balance


def get_candlesticks(symbol='EOSUSDT', interval='5m', limit='30'):
"""
查看历吏价格
@param symbol: 交易对
@param interval: K线数据
@param limit: 显示条数
@return:
"""
limits = int(limit)
result = client.futures_klines(symbol=symbol, interval=interval.lower(), limit=limits)
for line in result:
del line[6:]
df = pd.DataFrame(data=result, columns=['time', 'open', 'high', 'low', 'close', 'vol'])
df['symbol'] = symbol
# 时区转换为+8.00区域
df['time'] = pd.to_datetime(df['time'], unit='ms', utc=True).dt.tz_convert('Asia/Shanghai')
# 删除重复数据
df.drop_duplicates(['time'], inplace=True)
# 将数值数据转为float型,便于后续处理
convert_list = ['open', 'high', 'low', 'close', 'vol']
df[convert_list] = df[convert_list].astype(float)
# 重置索引
df.reset_index(drop=True, inplace=True)
return df


def get_long_positions(symbol='EOSUSDT'):
"""
查看合约多仓持仓信息
@param symbol: 交易对
@return:
"""
result = client.futures_position_information(symbol=symbol)
for value in result:
if value['positionSide'] == 'LONG':
return float(value['positionAmt'])


def get_short_positions(symbol='EOSUSDT'):
"""
查看合约空仓持仓信息
@param symbol: 交易对
@return:
"""
result = client.futures_position_information(symbol=symbol)
for value in result:
if value['positionSide'] == 'SHORT':
return float(value['positionAmt'])


def set_leverage(symbol='EOSUSDT', leverage='5'):
"""
设置合约杠杆倍数
@param symbol: 交易对以-SWAP为结尾
@param leverage: 倍数
@return:
"""
long_positions = get_long_positions(symbol)
short_positions = get_short_positions(symbol)
if not long_positions and not short_positions:
leverages = int(leverage)
result = client.futures_change_leverage(symbol=symbol, leverage=leverages)
return result
else:
print('已持仓中,无法修改杠杆倍数')

标签:binance,return,get,df,symbol,param,result,量化,区块
From: https://www.cnblogs.com/nbjjy/p/17488298.html

相关文章

  • 九、区块量化 binance 合约操作文件续
    defcreate_limit_order(symbol='EOSUSDT',side='BUY',positionside='LONG',ordtype='LIMIT',price=0,quantity='1',message=''):"""全仓合约市价下单@paramsymbol:......
  • 五、区块量化 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可以进行异地组网,但实际上在公网层面无法实现。嗯...的确之前我没有说清楚,其实在我实施的过程中还是遇到了比较多的问题的,譬如:国内三大网络运营商对于公网接入会有不同的网络策略;......