This commit is contained in:
aaron 2024-09-20 23:50:42 +08:00
parent 2e1f709fd0
commit ee7d8f6a58
4 changed files with 33 additions and 11 deletions

View File

@ -1,12 +1,15 @@
import requests import requests
from binance.spot import Spot from binance.spot import Spot
import pandas as pd import pandas as pd
from binance.cm_futures import CMFutures
import urllib3 import urllib3
api_key = "HCpeel8g6fsTK2630b7BvGBcS09Z3qfXkLVcAY2JkpaiMm1J6DWRvoQZBQlElDJg" api_key = "HCpeel8g6fsTK2630b7BvGBcS09Z3qfXkLVcAY2JkpaiMm1J6DWRvoQZBQlElDJg"
api_secret= "TySs6onlHOTrGzV8fMdDxLKTWWYnQ4rCHVAmjrcHby17acKflmo7xVTWVsbqtxe7" api_secret= "TySs6onlHOTrGzV8fMdDxLKTWWYnQ4rCHVAmjrcHby17acKflmo7xVTWVsbqtxe7"
client = Spot(api_key, api_secret) client = Spot(api_key, api_secret)
future_client = CMFutures(api_key, api_secret)
# 获取市值前top的币种 # 获取市值前top的币种
def _get_top_coins_by_market_cap(top): def _get_top_coins_by_market_cap(top):
@ -58,17 +61,29 @@ def get_symbols():
# 创建DataFrame # 创建DataFrame
columns = ['symbol', 'status', 'baseAsset', 'quoteAsset'] columns = ['symbol', 'status', 'baseAsset', 'quoteAsset']
df = pd.DataFrame(data, columns=columns) df = pd.DataFrame(data, columns=columns)
df = df[(df['status'] == 'TRADING') & (df['quoteAsset'] == 'USDT')]
# 过滤出在架交易对 return df['symbol']
df_in_trade = df[df['status'] == 'TRADING']
df_in_USDT = df_in_trade[df_in_trade['quoteAsset'] == 'USDT']
return df_in_USDT['symbol'] def get_future_symbols():
data = future_client.exchange_info()["symbols"]
# 创建DataFrame
columns = ['symbol', 'contractStatus','contractType', 'baseAsset', 'quoteAsset']
df = pd.DataFrame(data, columns=columns)
# 过滤出交易对
df = df[(df['contractStatus'] == 'TRADING') & (df['quoteAsset'] == 'USD') & (df['contractType'] == 'PERPETUAL')]
return df['symbol']
## 根据交易对和周期获取数据集 ## 根据交易对和周期获取数据集
def get_klines(symbol,interval , limit=1000): def get_klines(symbol,interval, future = False,limit=1000):
# 获取 k 线数据 # 获取 k 线数据
data = client.klines(symbol, interval,limit=limit) data = {}
if future == True:
data = future_client.klines(symbol, interval, limit=limit)
else:
data = client.klines(symbol, interval,limit=limit)
# 将数据转换为DataFrame # 将数据转换为DataFrame
columns = ['timestamp', 'open', 'high', 'low', 'close', 'volume', columns = ['timestamp', 'open', 'high', 'low', 'close', 'volume',

View File

@ -68,8 +68,8 @@ def stratergy_run(symbol, interval, df, debug):
def run_crypto(interval, debug=False): def run_crypto(interval, debug=False):
print('Vegas策略运行.') print('Vegas策略运行.')
for s in setting.symbols: for s in crypto.get_future_symbols():
df = crypto.get_klines(s, interval) df = crypto.get_klines(s, interval, True)
stratergy_run(s,interval, df, debug) stratergy_run(s,interval, df, debug)
time.sleep(1) time.sleep(1)

View File

@ -58,12 +58,11 @@ def stratergy_run(symbol, interval, df, debug):
print(message) print(message)
def run_crypto(interval, debug=False): def run_crypto(interval, debug=False):
print('Vegas策略运行.') print('Vegas策略运行.')
for s in setting.symbols: for s in crypto.get_future_symbols():
df = crypto.get_klines(s, interval) df = crypto.get_klines(s, interval,True)
stratergy_run(s,interval, df, debug) stratergy_run(s,interval, df, debug)
time.sleep(1) time.sleep(1)

View File

@ -1,4 +1,5 @@
import requests import requests
import datasource.crypto
from monitors import move from monitors import move
from datasource import crypto from datasource import crypto
import talib import talib
@ -7,6 +8,13 @@ from binance.cm_futures import CMFutures
from monitors import vegas_cross from monitors import vegas_cross
from datasource import crypto from datasource import crypto
from monitors import macd_boll from monitors import macd_boll
import datasource
from binance.cm_futures import CMFutures
# client = CMFutures()
# print(client.exchange_info()['symbols'])
# print(datasource.crypto.get_future_symbols())
macd_boll.run_crypto('15m', debug=True) macd_boll.run_crypto('15m', debug=True)