三十九、区块量化 BitGet 合约操作文件
1、打开新增的cross_order.py 文件
# -*- coding: utf-8 -*-
import pandas as pd
import bitget.mix.market_api as market
import bitget.mix.account_api as accounts
import bitget.mix.position_api as position
import bitget.mix.order_api as order
from bitget.config import Config
import time
from datetime import datetime
import weixin
from bitget.enums import *
# 市场行情接口
marketApi = market.MarketApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
# 用户账户接口
accountApi = accounts.AccountApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
# 仓位接口
positionApi = position.PositionApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
# 订单接口
orderApi = order.OrderApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
pd.set_option('expand_frame_repr', False)
# 交易对集合
# symbol:交易对
symbol_pool = ['BTCUSDT_UMCBL', 'ETHUSDT_UMCBL']
def get_orderbook(symbol='BTCUSDT_UMCBL'):
"""
查看买一和卖一的价格
@param symbol: 交易对
@return:
"""
result = marketApi.ticker(symbol=symbol)
if len(result['data']) > 0:
return float(result['data']['bestAsk']), float(result['data']['bestBid'])
else:
return 0, 0
def get_orderbook_ask(symbol='BTCUSDT_UMCBL'):
"""
查看买一的价格
@param symbol: 交易对
@return:
"""
result = marketApi.ticker(symbol=symbol)
if len(result['data']) > 0:
return float(result['data']['bestAsk'])
else:
return 0
def get_orderbook_bid(symbol='BTCUSDT_UMCBL'):
"""
查看卖一的价格
@param symbol: 交易对
@return:
"""
result = marketApi.ticker(symbol=symbol)
if len(result['data']) > 0:
return float(result['data']['bestBid'])
else:
return 0
def get_available_cash(asset='umcbl'):
"""
查看账户余额
@param asset: 币种
@return: 可用余额、占用金额
"""
result = accountApi.accounts(productType=asset)
if len(result['data']) > 0:
return float(result['data'][0]['available'])
# return float(result['data'][0]['available']), float(result['data'][0]['locked'])
else:
return 0
def datetime_to_timestamp13(date):
"""
生成13时间戳
@date 输入日期
@return: Unix时间戳的毫秒数格式 如:1540281250399895
"""
timeArray = datetime.strptime(date, "%Y-%m-%d %H:%M:%S.%f")
# 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
date_stamp = str(int(time.mktime(timeArray.timetuple())))
# 3位,微秒
data_microsecond = str("%06d" % timeArray.microsecond)[0:3]
timestamp = date_stamp + data_microsecond
return str(timestamp)
def get_timestamp13():
"""
生成13时间戳
@return: Unix时间戳的毫秒数格式 如:1540281250399895
"""
datetime_now = datetime.now()
# 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
date_stamp = str(int(time.mktime(datetime_now.timetuple())))
# 3位,微秒
data_microsecond = str("%06d" % datetime_now.microsecond)[0:3]
timestamp = date_stamp + data_microsecond
return str(timestamp)
def timestamp_to_datetime(timestamp):
"""
时间戳转标准时间
@param timestamp:
@return:
"""
datatime = time.strftime(
import pandas as pd
import bitget.mix.market_api as market
import bitget.mix.account_api as accounts
import bitget.mix.position_api as position
import bitget.mix.order_api as order
from bitget.config import Config
import time
from datetime import datetime
import weixin
from bitget.enums import *
# 市场行情接口
marketApi = market.MarketApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
# 用户账户接口
accountApi = accounts.AccountApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
# 仓位接口
positionApi = position.PositionApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
# 订单接口
orderApi = order.OrderApi(Config.BITGET_API_KEY, Config.BITGET_API_SECRET, Config.BITGET_PASSPHRASE,
use_server_time=False, first=False)
pd.set_option('expand_frame_repr', False)
# 交易对集合
# symbol:交易对
symbol_pool = ['BTCUSDT_UMCBL', 'ETHUSDT_UMCBL']
def get_orderbook(symbol='BTCUSDT_UMCBL'):
"""
查看买一和卖一的价格
@param symbol: 交易对
@return:
"""
result = marketApi.ticker(symbol=symbol)
if len(result['data']) > 0:
return float(result['data']['bestAsk']), float(result['data']['bestBid'])
else:
return 0, 0
def get_orderbook_ask(symbol='BTCUSDT_UMCBL'):
"""
查看买一的价格
@param symbol: 交易对
@return:
"""
result = marketApi.ticker(symbol=symbol)
if len(result['data']) > 0:
return float(result['data']['bestAsk'])
else:
return 0
def get_orderbook_bid(symbol='BTCUSDT_UMCBL'):
"""
查看卖一的价格
@param symbol: 交易对
@return:
"""
result = marketApi.ticker(symbol=symbol)
if len(result['data']) > 0:
return float(result['data']['bestBid'])
else:
return 0
def get_available_cash(asset='umcbl'):
"""
查看账户余额
@param asset: 币种
@return: 可用余额、占用金额
"""
result = accountApi.accounts(productType=asset)
if len(result['data']) > 0:
return float(result['data'][0]['available'])
# return float(result['data'][0]['available']), float(result['data'][0]['locked'])
else:
return 0
def datetime_to_timestamp13(date):
"""
生成13时间戳
@date 输入日期
@return: Unix时间戳的毫秒数格式 如:1540281250399895
"""
timeArray = datetime.strptime(date, "%Y-%m-%d %H:%M:%S.%f")
# 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
date_stamp = str(int(time.mktime(timeArray.timetuple())))
# 3位,微秒
data_microsecond = str("%06d" % timeArray.microsecond)[0:3]
timestamp = date_stamp + data_microsecond
return str(timestamp)
def get_timestamp13():
"""
生成13时间戳
@return: Unix时间戳的毫秒数格式 如:1540281250399895
"""
datetime_now = datetime.now()
# 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
date_stamp = str(int(time.mktime(datetime_now.timetuple())))
# 3位,微秒
data_microsecond = str("%06d" % datetime_now.microsecond)[0:3]
timestamp = date_stamp + data_microsecond
return str(timestamp)
def timestamp_to_datetime(timestamp):
"""
时间戳转标准时间
@param timestamp:
@return:
"""
datatime = time.strftime(