J'ai déjà écrit à d'autres personnes, et j'ai découvert que beaucoup d'amis ont besoin d'une stratégie de surveillance de marché, pour alerter immédiatement en cas de situation particulière, mais ils ne sont pas très satisfaits d'avoir toujours ouvert un disque réel; alors aujourd'hui, je partage une simple démonstration de rappel de prix pour toute référence.ps: le langage est utilisé par python, par l'interface de clôture d'alarme, la configuration du serveur n'est pas présentée ici
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
Une fois terminé, vous obtenez l'adresse Web et vous vous connectez (si l'adresse Web n'est pas ouverte, vous devez ouvrir le port 8888)
Accéder aux droits ouvrir la sécurité - shh gérer la sécurité - ouvrir la clé de connexion shh
Télécharger des documents
sudo apt-get install screen
screen -S [name]
Cliquez sur le bouton de sortie
ctrl+a+d
Voir le processus en cours d'exécution en arrière-plan
screen -ls
Fin du processus (le nom de la pip peut être consulté par le processus)
kill -9 [pid号]
Nettoyer les informations de processus qui sont mortes sur l'écran
screen -wipe
# 钉钉输出接口
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函数,输出信息
La transaction est obtenue via Binance API, en utilisant l'interface U-bit contractée Fapi, le code suivant est simplement enveloppé dans Binance API, à titre de référence seulement.
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
Comme la stratégie est uniquement utilisée pour obtenir des interfaces de prix, nous n'avons fait qu'une simple démonstration ici, les autres interfaces sont similaires.
#封装获取价格接口
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"]
Ci-dessous, les codes de surveillance du secteur sont mis en œuvre:
# 监控币种&&监控价格一一对应
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()
Lorsque le code est prêt, mémorisez le chemin et ouvrez l'écran d'exécution du terminal.
screen -S [名称]
cd [路径]
python3 [文件名]
Une fois que le processus de confirmation a été exécuté, vous pouvez vous déconnecter.
L'adresse de la stratégie:Le prix simple rappelle le robot
Le montant de la garantie est calculé à partir du montant de la garantie.Le robot ne réagit pas après avoir été mis en marche
L'inventeur de la quantification - un petit rêveMerci de partager votre expérience.
Le programmeRésultats de l'enquête
Le montant de la garantie est calculé à partir du montant de la garantie.Le prix est arrivé, les paramètres sont arrivés, le robot fonctionne, c'est-à-dire que je ne vous rappelle pas ce qui se passe?
Le programmeLe prix est le seul rappel.