Buat robot peringatan harga mudah

Penulis:program, Dicipta: 2022-03-27 15:44:13, Dikemas kini: 2022-03-27 15:59:46

Saya telah menulis kepada orang lain sebelum ini, dan mendapati ramai rakan ingin memantau strategi perdagangan, untuk memberi amaran segera apabila berlaku keadaan yang luar biasa, tetapi tidak berpuas hati untuk terus membuka piring sebenar; jadi hari ini saya berkongsi demo peringatan harga mudah untuk rujukan anda semua.ps: bahasa ini menggunakan python, dengan penyamaran antara muka paku, konfigurasi pelayan tidak diperkenalkan disini


一.准备

  1. Panel kawalan Di sini, panel menara digunakan untuk memuat naik fail ke pelayan, dan sudah tentu anda boleh menggunakan cara lain, ingat laluan. (Sebagai pelayan penulis adalah sistem Ubuntu, semua arahan berikut adalah berdasarkannya, arahan sistem lain boleh dilihat sendiri)
  • Muat turun
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

Setelah selesai, anda akan mendapat alamat web dan masuk (jika alamat web tidak dapat dibuka, anda perlu membuka port 8888)

  • Memperoleh keizinan Buka keselamatan - shh Pengurusan keselamatan - Buka kunci masuk shhimg img

  • Mengunggah dokumenimg

  1. Layar screen adalah program pengurus pelbagai kegunaan tetingkap di bawah Linux yang bertujuan untuk menjalankan program selepas sambungan terminal shh.
  • Muat turun
sudo apt-get install screen
  • Perintah biasa Run screen, buka laluan untuk menjalankan fail selepas itu (([name] tag boleh diset sendiri) ).
screen -S [name]

Tombol pintasan keluar skrin

ctrl+a+d

Lihat proses yang dijalankan di latar belakang skrin

screen -ls

Menamatkan proses ((pid boleh dilihat oleh proses)

kill -9 [pid号]

Bersihkan maklumat proses yang telah mati pada skrin

screen -wipe
  1. Pengaturan paku Di sini merujuk kepada artikel Hukybo Dam, prinsip pelaksanaan tidak dijelaskan, hanya menunjukkan kod pembungkusan mudah, hanya untuk rujukanhttps://www.fmz.com/digest-topic/5840
# 钉钉输出接口
class DING:
    # 向钉钉群输出信息
    def msg(self,text):
        token ="***"
        headers = {'Content-Type': 'application/json;charset=utf-8'}  # 请求头
        api_url = f"***={token}"
        json_text = {
            "msgtype": "text",  # 信息格式
            "text": {
                "content": text
            }
        }
        # 发送并打印信息
        requests.post(api_url, json.dumps(json_text), headers=headers).content
    
    #拼接输出信息
    def dd(self,logging):
        bj_dt = str(datetime.datetime.now())
        bj_dt = bj_dt.split('.')[0]  # 处理时间
        text = f'{bj_dt}\n'  # 定义信息内容
        text = text + logging # 处理信息内容
        log.msg(text)  # 调用msg函数,输出信息

二.代码实现

Perdagangan diperoleh melalui BinanceAPI, menggunakan antara muka kontrak U-bit Fapi, kod berikut mudah dibungkus BinanceAPI, hanya untuk rujukan

import requests,json,time,hmac,hashlib,datetime

# APIKEY填写位置
apikey = '***'
Secret_KEY = '***'

#币安接口
class bian:
    #拼接请求参数
    def param2string(self,param):
        s = ''
        for k in param.keys():
            s += k
            s += '='
            s += str(param[k])
            s += '&'
        return s[:-1]
    
    # 参数为get,post请求方式,路径,body
    def IO(self,method,request_path,body):
        header = {
        'X-MBX-APIKEY': apikey,
        }
        #选择请求方式
        if body != '':
            #签名
            body['signature'] = hmac.new(Secret_KEY.encode('utf-8'), self.param2string(body).encode('utf-8'), hashlib.sha256).hexdigest()
            if method == 'GET':
                body = self.param2string(body)
                tell = 'https://fapi.binance.com{0}?{1}'.format(request_path,body)
                response = requests.get(url=tell, headers=header).json()
                return response
            elif method == 'POST':
                response = requests.post(url='https://fapi.binance.com'+str(request_path), headers=header, data=body).json()
                return response
        else:
            response = requests.get(url='https://fapi.binance.com'+str(request_path), headers=header).json()
            return response

Oleh kerana strategi ini hanya digunakan untuk mendapatkan antara muka harga, ini hanya demonstrasi ringkas, yang lain adalah sama.

#封装获取价格接口
def price(self,Name):
    body = {"symbol":str(Name)}
    info = self.IO("GET","/fapi/v1/ticker/price",body)
    for i in info:
        if i == "code":
            #设计一个接口错误容错功能
            time.sleep(0.5)
            letgo = '调用price函数接口返回错误,再次尝试 返回错误代码:{0}'.format(str(info))
            log.dd(str(letgo))
            exchange.price(Name)
    return info["price"]

Di bawah ini adalah pelaksanaan kod pemantauan pasaran:

# 监控币种&&监控价格一一对应
ccy = ["BTCUSDT","ETHUSDT","LTCUSDT"]
PriceTIME = ["100000;28000","500000000;1200","500;100"]

#行情监控逻辑
def pricewarm():
    #轮询获取当前价格
    for i in range(len(PriceTIME)):
        info = exchange.price(str(PriceTIME[i]))
        priceindex = PriceTIME[i].find(";") #提取价格区间
        #价格上限
        priceup = PriceTIME[i][:priceindex]
        #价格下限
        pricedown = PriceTIME[i][priceindex+1:]
        if float(info) >= float(priceup): #钉钉接口输出
            letgo = f'当前价格{info}USDT大于所设定上限{priceup}USDT'
            log.dd(letgo)
        elif float(info) <= float(pricedown):
            letgo = f'当前价格{info}USDT小于等于设定下限{pricedown}USDT'
            log.dd(letgo)
        time.sleep(0.2)

# 主函数
def main():
    global exchange,log
    log = DING
    exchange = bian
    while True:
        try:
            pricewarm()
            time.sleep(1)
        except:
            time.sleep(1)

if __name__ == "__main__":
    main()

三.运行

Apabila kod sudah siap, ingat laluan, buka skrin pelaksanaan terminal

screen -S [名称]
cd [路径]
python3 [文件名]

Perisian pengesahan telah berjalan dan anda boleh keluar.

Alamat strategi:Harga mudah mengingatkan robot


Lebih lanjut

btc123456Apa yang berlaku apabila robot tidak bertindak balas?

Mimpi kecilTerima kasih kerana berkongsi pengalaman anda.

programqq 2700903954

btc123456Harga telah tiba, syarat-syarat telah tiba, robot berjalan, atau tidak mengingatkan apa yang berlaku?

programHanya harga yang mengingatkan.