Создание простого и дешевого напоминания для роботов

Автор:Программа, Создано: 2022-03-27 15:44:13, Обновлено: 2022-03-27 15:59:46

Я написал для других людей, и обнаружил, что многие друзья хотят стратегии мониторинга, чтобы сразу же сообщить о чрезвычайных ситуациях, но не очень удовлетворены тем, что они всегда работают на реальном устройстве; поэтому сегодня я поделюсь простым демо-напоминанием о цене для всех.ps: язык использует python, сигнализирует с помощью интерфейса, конфигурация сервера здесь не представлена


一.准备

  1. Контрольная панель Здесь используется панель петухов, целью которой является загрузка файлов на сервер, и, конечно, можно использовать и другие способы, запомнить только путь ((поскольку авторский сервер является системой Ubuntu, все следующие команды базируются на этом, другие системные команды могут просматриваться самостоятельно)
  • Загрузка
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

После этого получаете адрес и входите (если он не открыт, то нужно открыть порт 8888)

  • Получение прав Открыть безопасность-shh Управление безопасностью-открыть ключ shhimg img

  • Загрузка документовimg

  1. Экран screen - Windows Multiple-Use Manager под Linux, предназначенный для того, чтобы вы могли продолжать запускать программы после подключения к терминалу shh.
  • Загрузка
sudo apt-get install screen
  • Обычные приказы Запустить экран, открыть путь и запустить файл (([name] тег может быть настроен самостоятельно) ).
screen -S [name]

Выйти из экрана

ctrl+a+d

Процессы, выполняемые на экране в фоне

screen -ls

Окончание процесса ((pid можно просмотреть через процесс)

kill -9 [pid号]

Уборка мертвых процессов с экрана

screen -wipe
  1. Установка гвоздей Здесь приведены ссылки на статью о строительстве здания Хукибо, где принципы реализации не описаны, а только простые коды упаковки, которые используются только для справки.https://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函数,输出信息

二.代码实现

Транзакции получены через Binance, используя U-битный контрактный интерфейс Fapi, следующий код просто упакован в Binance, только для справки.

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

Поскольку стратегия используется только для получения ценового интерфейса, здесь будет продемонстрирована простая демонстрация, другие интерфейсы аналогичны.

#封装获取价格接口
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"]

Ниже приведены реализации кода для мониторинга рынка.

# 监控币种&&监控价格一一对应
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()

三.运行

После того, как код будет готов, запомните путь и откройте экран запуска терминала.

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

После того, как процесс подтверждения будет запущен, вы можете выйти из него.

Политический адрес:Простые цены напоминают роботам


Больше

btc123456Что происходит, когда робот не реагирует после запуска?

Маленькие мечтыСпасибо, что поделились своим опытом.

Программаqq 2700903954

btc123456Стоимость достигнута, настройки достигнуты, робот работает, или не напоминает, что происходит?

ПрограммаТолько цена может напомнить.