Platform-platform kecil melakukan pasar mereka sendiri, mengurangi risiko, dan mengamankan ke bursa besar Pikiran strategis: Saldo aset dari akun rotasi berputar mati, yang menghambat perubahan mata uang menjadi token Saat itu juga mengirim pemberitahuan WeChat ke administrator. Menggunakan sqlite untuk menyimpan saldo akun historis, melayani strategi sisa, dan memudahkan manajemen keuangan
# -*- coding: UTF-8 -*- import time from api import * from Huobiapi import * import sqlite3 def wechatmsg(text,desp): server = 'https://sc.ftqq.com/xxxxxx.send' payload = {'text':text,'desp':desp} requests.post(server,params = payload) def dingmsg(title,msg): url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' data = { "msgtype": "markdown", "markdown": { "title":title+msg, "text": "#### " + title + "\n" "> " + msg }} header = {'Content-Type':'application/json'} r = requests.post(url = url ,headers=header,data = json.dumps(data)).json() return r def check(): try: pre_balance = {} conn = sqlite3.connect("/root/bot/hedge.db") cursor = conn.cursor() sql = 'select * from balance order by id desc limit 20;' result = list(cursor.execute(sql)) for a in result: if a[1] in list(pre_balance.keys()): break else: pre_balance[a[1]] = a[2] #读取之前balance coinname = list(pre_balance.keys()) print(pre_balance,coinname) balance = GetBalance() t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) for x in balance: sql = "insert into balance (coin,balance,time) values(?,?,?);" b = x['balance']+x['frozenBalance'] if b != 0: v = (x['coin']['unit'],b,t) print(v) cursor.execute(sql,v) for n in coinname: if n == x['coin']['unit']: d = round(b - pre_balance[n],5) #数量差 if d > 0: Sell(n,d) msg = '对冲卖出'+n+'数量:'+str(d) print(msg) wechatmsg('对冲',msg) dingmsg('对冲',msg) sql = "insert into hedge (coin,hedge_amount,status,time) values(?,?,?,?);" v = (n,d,0,t) cursor.execute(sql,v) elif d < 0: Buy(n,d) msg = '对冲买入:'+n+'数量:'+str(d) print(msg) wechatmsg('对冲',msg) dingmsg('对冲',msg) sql = "insert into hedge (coin,hedge_amount,status,time) values(?,?,?,?);" v = (n,d,0,t) cursor.execute(sql,v) else: print('no hedge') conn.commit() conn.close() except Exception as e: raise e def insert_balance(): try: conn = sqlite3.connect("hedge.db") cursor = conn.cursor() balance = GetBalance() t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) for x in balance: sql = "insert into balance (coin,balance,time) values(?,?,?);" b = x['balance']+x['frozenBalance'] if b != 0: v = (x['coin']['unit'],b,t) cursor.execute(sql,v) conn.commit() conn.close() print('finish') except Exception as e: print('err',e) if __name__ == '__main__': while 1: try: check() except Exception as e: print(e) time.sleep(30)
Firetheskyimport time
from api import *, kesalahan saat dijalankan.
Traceback (most recent call last): File "