加入并上报VIRTUAL_HOST_NAME
This commit is contained in:
parent
c6b6f3573f
commit
576a776186
@ -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,
|
||||
|
||||
@ -867,6 +867,55 @@ class FreqaiPrimer(IStrategy):
|
||||
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)}")
|
||||
|
||||
|
||||
@ -333,6 +333,10 @@ cd -
|
||||
# 第3步:启动新容器
|
||||
echo "正在启动新容器..." >&2
|
||||
|
||||
# 获取宿主机虚机名
|
||||
VIRTUAL_HOST_NAME=$(hostname)
|
||||
echo "获取到宿主机虚机名: $VIRTUAL_HOST_NAME" >&2
|
||||
|
||||
# 临时禁用 set -e,以便捕获 docker run 的错误
|
||||
set +e
|
||||
docker run -d --restart=always \
|
||||
@ -340,6 +344,7 @@ docker run -d --restart=always \
|
||||
-p 8080:8080 \
|
||||
--add-host "www.okx.com:104.18.43.174" \
|
||||
--add-host "api.okx.com:104.18.43.174" \
|
||||
-e VIRTUAL_HOST_NAME="$VIRTUAL_HOST_NAME" \
|
||||
-v "$(pwd)/../user_data:/freqtrade/user_data" \
|
||||
-v "$(pwd)/../config_examples:/freqtrade/config_examples" \
|
||||
-v "$(pwd)/../freqtrade/templates:/freqtrade/templates" \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user