首页 > 其他分享 >十二、区块量化 gate.io 合约操作文件

十二、区块量化 gate.io 合约操作文件

时间:2023-06-18 14:57:29浏览次数:59  
标签:return symbol futures param api io position gate 区块

新增cross_order.py 文件

# -*- coding: utf-8 -*-
import pandas as pd
from gate_api import ApiClient, Configuration, FuturesApi, FuturesOrder
from gate_api.exceptions import GateApiException
from gate_api.config import key, secret, host
import weixin
import time

pd.set_option('expand_frame_repr', False)
config = Configuration(key=key, secret=secret, host=host)
futures_api = FuturesApi(ApiClient(config))

# 交易对集合
# symbol:交易对
symbol_pool = ['BTC_USDT', 'ETH_USDT']
def get_orderbook_ask(symbol='EOS_USDT'):
"""
查看买一的价格
@param symbol: 币种
@return:
"""
result = futures_api.list_futures_order_book(settle='usdt', contract=symbol)
return float(result.asks[0].p)


def get_orderbook_bid(symbol='EOS_USDT'):
"""
查看卖一的价格
@param symbol: 币种
@return:
"""
result = futures_api.list_futures_order_book(settle='usdt', contract=symbol)
return float(result.bids[0].p)
def get_available_cash(symbol='usdt'):
"""
查看账户余额
@param symbol: 币种
@return:
"""
available = "0"
try:
futures_account = futures_api.list_futures_accounts(settle=symbol)
available = futures_account.available
except GateApiException as ex:
if ex.label != "USER_NOT_FOUND":
raise ex
return float(available)


def get_candlesticks(symbol='EOS_USDT', interval='5m', limit='30'):
"""
查看历吏价格
@param symbol:交易对
@param interval: K线数据
@param limit: 显示条数
@return:
"""
limits = int(limit)
tickers = futures_api.list_futures_candlesticks(settle='usdt', contract=symbol, limit=limits, interval=interval)
output_list = []
for item in tickers:
sub_dict = {'time': item.t, 'open': item.o, 'high': item.h, 'low': item.l, 'close': item.c, 'vol': item.v}
output_list.append(sub_dict)
df = pd.DataFrame(data=output_list, columns=['time', 'open', 'high', 'low', 'close', 'vol'])
df['symbol'] = symbol
df['time'] = pd.to_datetime(df['time'], unit='s', 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.sort_values(by=['symbol', 'time'], ignore_index=True, ascending=True, inplace=True)
# 重置索引
df.reset_index(drop=True, inplace=True)
return df

def get_long_positions(symbol='EOS_USDT'):
"""
查看合约多仓持仓信息
@param symbol:交易对
@return:
"""
position_size = 0
try:
position = futures_api.get_dual_mode_position(settle='usdt', contract=symbol)
for pos in position:
if pos.mode == 'dual_long':
position_size = pos.size
except GateApiException as ex:
if ex.label != "POSITION_NOT_FOUND":
raise ex
return position_size


def get_short_positions(symbol='EOS_USDT'):
"""
查看合约空仓持仓信息
@param symbol:交易对
@return:
"""
position_size = 0
try:
position = futures_api.get_dual_mode_position(settle='usdt', contract=symbol)
for pos in position:
if pos.mode == 'dual_short':
position_size = pos.size
except GateApiException as ex:
if ex.label != "POSITION_NOT_FOUND":
raise ex
return position_size


def set_leverage(symbol='EOS_USDT', leverage='25'):
"""
设置合约杠杆倍数
@param symbol:交易对
@param leverage:倍数
@return:
"""
long_positions = get_long_positions(symbol)
short_positions = get_short_positions(symbol)
if not long_positions and not short_positions:
futures_api.update_dual_mode_position_leverage(settle='usdt', contract=symbol, leverage=leverage)
else:
print('已持仓中,无法修改杠杆倍数')

标签:return,symbol,futures,param,api,io,position,gate,区块
From: https://www.cnblogs.com/nbjjy/p/17489125.html

相关文章

  • 十三、区块量化 gate.io 合约操作文件续
    defcreate_market_order(symbol='EOS_USDT',quantity='1',message=''):"""全仓合约市价下单@paramsymbol:交易对@paramquantity:委托数量正数为买入,负数为卖出@parammessage:判断依据@return:"""quantitys......
  • 十一、区块量化 gate.io 接口
    1、接口文档网址:https://www.gate.ac/docs/developers/apiv4/zh_CN/#futures2、安装python工具:pip3installgateapi-python3、下载https://github.com/gateio/gateapi-python4、解压下载好的gateapi-python-master.zip5、用pycharm打开gateapi-python-master文件除了gate_a......
  • 聊聊Zookeeper的Session会话超时重连
    概述简单地说,ZooKeeper的连接与会话就是客户端通过实例化ZooKeeper对象来实现客户端与服务器创建并保持TCP连接的过程。本质上,Session就是一个TCP长连接。会话Session会话的作用:ZKServer执行任何请求之前,都需要Client与Server先建立Session;Client提交给Server的......
  • 【Java学习】 Spring的基础理解 IOC、AOP以及事务
    一、简介  官网: https://spring.io/projects/spring-framework#overview   官方下载工具: https://repo.spring.io/release/org/springframework/spring/  github下载: https://github.com/spring-projects/spring-framework   maven依赖:<dependency>......
  • 一种垮域通知的协议解决思路-Notification Interface Protocol
    NotificationInterface提供一种协议,使得分布于各个网站的消息发送点能够方便地向一个集合点发送消息,通知有新消息到达,请前往查看详细内容。消息发送点:可以是位于blog、facebook、twitter等网站的一段程序,能够将网站更新消息发往集合点消息集合点:可以使QQ、MSN等在线工具,能够接......
  • dremio 24.1 zstd 支持的的处理
    以前我简单介绍过关于dremio如何自己编译支持zstd压缩,目前官方24.1直接支持了,通过查看源码实际上处理思路以及方法与我介绍的是一致的,具体可以参考我写过的博客参考资料https://www.cnblogs.com/rongfengliang/p/16823130.html......
  • SpringBoot项目报错解决:“Error starting ApplicationContext. To display the condit
    SpringBoot项目报错:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug'enabled.以下方案80%可以帮助您解决这些个‘可恶的’问题目录一、编译出问题二、代码格式导致的编译出问题三、请求接口重复四、......
  • Mysql union和union all用法
    1:什么时候用union和unionall?  我们经常会碰到这样的应用,两个表的数据按照一定的查询条件查询出来以后,需要将结果合并到一起显示出来,这个时候就需要用到union和unionall关键字来实现这样的功能,union和unionall的主要区别是unionall是把结果集直接合并在一起,而union......
  • minio通过docker方式部署
    MinIO是在GNUAffero通用公共许可证v3.0下发布的高性能对象存储。它是与AmazonS3云存储服务兼容的API官方文档http://docs.minio.org.cn/docs/master/minio-admin-complete-guidehttps://hub.docker.com/r/minio/minio/tags?page=1&ordering=last_updateddocker仓库上......
  • Camtasia Studio9-Camtasia Studio9官方版下载 软件大全
    CamtasiaStudio是最专业的屏幕录像和视频编辑软件,支持屏幕录像、视频的剪辑和编辑、视频菜单制作等功能,可以方便地进行屏幕操作的录制和配音、视频的剪辑和过场动画、添加说明字幕和水印、制作视频封面和菜单、视频压缩和播放。[下载地址]:后台私信我camtasiastudio2020最新版介绍......