加入并上报VIRTUAL_HOST_NAME
This commit is contained in:
parent
a086fbd14c
commit
01ce5b0d90
@ -123,7 +123,8 @@
|
||||
"bagging_fraction": 0.8,
|
||||
"bagging_freq": 5,
|
||||
"verbose": -1
|
||||
}
|
||||
},
|
||||
"ml_prediction_api_url": "http://pairlist.xl.home/api/mlprediction"
|
||||
},
|
||||
"api_server": {
|
||||
"enabled": true,
|
||||
|
||||
@ -831,15 +831,64 @@ class FreqaiPrimer(IStrategy):
|
||||
pred_values[col] = round(float(last_row[col]), 4)
|
||||
|
||||
if pred_values:
|
||||
pred_info = ", ".join([f"{k}:{v}" for k, v in pred_values.items()])
|
||||
self.strategy_log(f"[{metadata['pair']}] FreqAI多目标预测: {pred_info}")
|
||||
|
||||
# 特别记录三个主要目标变量
|
||||
entry_val = pred_values.get('&s-entry_signal', 'N/A')
|
||||
exit_val = pred_values.get('&s-exit_signal', 'N/A')
|
||||
vol_val = pred_values.get('&s-future_volatility', 'N/A')
|
||||
|
||||
self.strategy_log(f"[{metadata['pair']}] FreqAI三目标预测 - 入场:{entry_val}, 出场:{exit_val}, 波动率:{vol_val}")
|
||||
pred_info = ", ".join([f"{k}:{v}" for k, v in pred_values.items()])
|
||||
self.strategy_log(f"[{metadata['pair']}] FreqAI多目标预测: {pred_info}")
|
||||
|
||||
# 特别记录三个主要目标变量
|
||||
entry_val = pred_values.get('&s-entry_signal', 'N/A')
|
||||
exit_val = pred_values.get('&s-exit_signal', 'N/A')
|
||||
vol_val = pred_values.get('&s-future_volatility', 'N/A')
|
||||
|
||||
self.strategy_log(f"[{metadata['pair']}] FreqAI三目标预测 - 入场:{entry_val}, 出场:{exit_val}, 波动率:{vol_val}")
|
||||
|
||||
# ========== 新增:发送HTTP请求 ==========
|
||||
# 从配置中读取API URL
|
||||
api_url = self.config.get('freqai', {}).get('ml_prediction_api_url', '')
|
||||
if api_url:
|
||||
import json
|
||||
import urllib.request
|
||||
import urllib.error
|
||||
import os
|
||||
|
||||
# 从环境变量获取virtualHostName
|
||||
virtual_host_name = os.environ.get('VIRTUAL_HOST_NAME')
|
||||
|
||||
# 只有正确获取到virtualHostName时才发送请求
|
||||
if virtual_host_name and virtual_host_name != 'default-vhost':
|
||||
# 准备请求数据
|
||||
request_data = {
|
||||
"hostName": "freqtrade-live-c6b6f357-20260215212649",
|
||||
"virtualHostName": virtual_host_name,
|
||||
"pairName": metadata['pair'],
|
||||
"timestamp": int(last_row['date'].timestamp()),
|
||||
"values": {
|
||||
"&s-entry_signal": pred_values.get('&s-entry_signal', 0),
|
||||
"&s-exit_signal": pred_values.get('&s-exit_signal', 0),
|
||||
"&s-future_volatility": pred_values.get('&s-future_volatility', 0)
|
||||
}
|
||||
}
|
||||
|
||||
# 转换为JSON
|
||||
json_data = json.dumps(request_data).encode('utf-8')
|
||||
|
||||
# 发送请求
|
||||
try:
|
||||
req = urllib.request.Request(api_url, data=json_data, method='POST')
|
||||
req.add_header('Content-Type', 'application/json')
|
||||
with urllib.request.urlopen(req, timeout=5) as response:
|
||||
status_code = response.getcode()
|
||||
if status_code == 200:
|
||||
self.strategy_log(f"[{metadata['pair']}] 成功发送ML预测数据到API (virtualHostName: {virtual_host_name})")
|
||||
else:
|
||||
self.strategy_log(f"[{metadata['pair']}] 发送ML预测数据失败,状态码: {status_code}")
|
||||
except urllib.error.URLError as e:
|
||||
self.strategy_log(f"[{metadata['pair']}] 发送ML预测数据网络错误: {str(e)}")
|
||||
except Exception as e:
|
||||
self.strategy_log(f"[{metadata['pair']}] 发送ML预测数据其他错误: {str(e)}")
|
||||
else:
|
||||
self.strategy_log(f"[{metadata['pair']}] 未正确获取到virtualHostName,跳过发送ML预测数据")
|
||||
else:
|
||||
self.strategy_log(f"[{metadata['pair']}] ML预测API URL未配置,跳过发送")
|
||||
except Exception as e:
|
||||
self.strategy_log(f"[{metadata['pair']}] 记录FreqAI预测结果时出错: {str(e)}")
|
||||
|
||||
|
||||
@ -336,11 +336,12 @@ echo "正在启动新容器..." >&2
|
||||
|
||||
# 获取当前主机名
|
||||
VIRTUAL_HOST_NAME=$(hostname)
|
||||
echo "获取到宿主机虚机名: $VIRTUAL_HOST_NAME" >&2
|
||||
|
||||
# 临时禁用 set -e,以便捕获 docker run 的错误
|
||||
set +e
|
||||
docker run -d --restart=always \
|
||||
-e virtualhost-name="$VIRTUAL_HOST_NAME" \
|
||||
-e VIRTUAL_HOST_NAME="$VIRTUAL_HOST_NAME" \
|
||||
--name "${CONTAINER_NAME}" \
|
||||
-p 8080:8080 \
|
||||
-e TZ=Asia/Shanghai \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user