ایک سادہ قیمت یاد دہانی روبوٹ بنانے

مصنف:پروگرام, تخلیق: 2022-03-27 15:44:13, تازہ کاری: 2022-03-27 15:59:46

میں نے پہلے دوسروں کے لئے لکھا تھا ، اور میں نے محسوس کیا کہ بہت سے دوستوں کو مارکیٹ مانیٹرنگ کی حکمت عملی کی ضرورت ہے ، خاص حالات میں فوری طور پر پولیس کو مطلع کرنے کے لئے ، لیکن ہمیشہ کھلے رہنے کے لئے کافی مطمئن نہیں ہیں۔ لہذا آج ہم آپ کے حوالہ کے لئے ایک آسان قیمت یاد دہانی ڈیمو شیئر کرتے ہیں۔پی ایس: زبان کا استعمال کیا جاتا ہے پطرون، پنگل انٹرفیس کی طرف سے الارم، سرور کی ترتیب یہاں نہیں کیا جاتا ہے


一.准备

  1. کنٹرول پینل یہاں پر بیوٹا پینل کا استعمال کیا گیا ہے، جس کا مقصد فائل کو سرور پر اپ لوڈ کرنا ہے، اور یقینا آپ دوسرے طریقوں سے بھی استعمال کرسکتے ہیں، صرف راستہ یاد رکھیں ((کیونکہ مصنف سرور اوبنٹو سسٹم ہے، لہذا مندرجہ ذیل تمام احکامات اس کے مطابق ہیں، دوسرے سسٹم کے احکامات خود بخود دیکھ سکتے ہیں)
  • ڈاؤن لوڈ کریں
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

مکمل کرنے کے بعد ویب سائٹ حاصل کریں اور لاگ ان کریں ((اگر ویب سائٹ نہیں کھولی جاسکتی ہے تو بندرگاہ 8888 کھولنے کی ضرورت ہے))

  • اجازت حاصل کریں کھولیں سیکیورٹی -shh سیکیورٹی مینجمنٹ - کھولیں shh کلید لاگ ان کریںimg img

  • فائل اپ لوڈ کریںimg

  1. اسکرین اسکرین ایک ونڈو ورڈپریس مینیجر ہے جو لینکس پر استعمال کیا جاتا ہے۔ اس کا مقصد یہ ہے کہ ٹرمینل کے شے سے منسلک ہونے کے بعد بھی یہ پروگرام چلتا رہے۔
  • ڈاؤن لوڈ کریں
sudo apt-get install screen
  • عام احکامات اسکرین کو چلائیں ، راستہ کھولنے کے بعد فائل چلائیں (([name] ٹیگ خود بخود ترتیب دے سکتے ہیں) ؛)
screen -S [name]

اسکرین سے باہر نکلنے کے لئے شارٹ کٹ

ctrl+a+d

اسکرین کو پس منظر میں چلنے والی کارروائیوں کو دیکھیں

screen -ls

ختم عمل (پڈ کو عمل کے ذریعے دیکھا جا سکتا ہے)

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函数,输出信息

二.代码实现

لین دین کو بائن این اے پی آئی کے ذریعہ حاصل کیا جاتا ہے ، جس میں یو بٹ کنٹریکٹ فیپی انٹرفیس کا استعمال کیا جاتا ہے ، مندرجہ ذیل کوڈ کو بائن این اے پی آئی میں آسانی سے پیک کیا گیا ہے ، صرف حوالہ کے لئے۔

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قیمت آ گئی، سیٹ اپ کی شرائط آ گئیں، روبوٹ چل رہا ہے، یا پھر مجھے یاد نہیں ہے کہ کیا ہو رہا ہے؟

پروگرامصرف قیمتیں یاد دلاتی ہیں