Crypto Executor Optimizer 🤖
Ce skill permet à Wesley d'optimiser automatiquement le bot de trading crypto-executor toutes les 6 heures.
⚠️ SCOPE & CAPABILITIES
Ce que ce skill fait :
- - ✅ Lit les fichiers de performance (
performance_metrics.json, learned_config.json) - ✅ Analyse les métriques (win rate, trades/jour, win rate par stratégie)
- ✅ Décide des nouvelles valeurs pour les paramètres de trading
- ✅ Modifie
executor.py via regex (backup → modify → validate → restart) - ✅ Envoie des alertes Telegram sur chaque optimisation
- ✅ [SETUP UNIQUEMENT] Télécharge executor.py et crypto_oracle.py depuis GitHub
- ✅ [SETUP UNIQUEMENT] Persiste les credentials Binance dans
/workspace/data/bot_config.env (chmod 600) - ✅ [SETUP UNIQUEMENT] Installe un cron job toutes les 6h
Ce que ce skill ne fait PAS :
- - ❌ Ne place pas d'ordres directement — mais redémarrer executor.py via systemd/pkill peut reprendre le trading automatiquement
- ❌ Ne modifie jamais les credentials Binance dans executor.py
- ❌ Ne modifie jamais les circuit breakers ou stop loss
- ❌ Ne touche jamais à la structure des classes Python
- ❌ Ne persiste aucune donnée au-delà de INLINECODE5
🔐 Credentials & Sécurité
Credentials collectés par setupbinance20euros.sh
| Variable | Requis | Usage |
|---|
| INLINECODE6 | Oui (setup) | Authentification Binance — jamais modifié après setup |
| INLINECODE7 |
Oui (setup) | Authentification Binance — jamais modifié après setup |
|
TELEGRAM_BOT_TOKEN | Non | Notifications d'optimisation |
|
TELEGRAM_CHAT_ID | Non | Destination des notifications |
Stockage des credentials :
CODEBLOCK0
Ce que Wesley ne modifie JAMAIS :
- -
BINANCE_API_KEY et BINANCE_API_SECRET — Wesley ne modifie pas ces valeurs. En revanche, lors du fallback restart, apply_optimization.sh (déclenché par Wesley) source /workspace/data/bot_config.env pour relancer executor.py avec les credentials existants. - INLINECODE14 ,
DRAWDOWN_PAUSE_PCT — protection capitale hors portée
📦 Installation & Setup
Vue d'ensemble
CODEBLOCK1
Téléchargements externes (setup uniquement)
Le script de setup télécharge du code externe depuis GitHub — auditer avant d'exécuter :
CODEBLOCK2
Recommandation sécurité : Épingler un commit spécifique plutôt que main :
CODEBLOCK3
Dépendance Python
CODEBLOCK4
Privilèges requis
| Action | Pourquoi |
|---|
| INLINECODE17 | Redémarrer le bot après optimisation |
| INLINECODE18 |
Contrôle du service au setup |
|
pkill -f executor.py | Fallback si systemd indisponible |
|
crontab -e | Installer le job récurrent (fallback system cron) |
🤖 Rôle de Wesley
Wesley est l'intelligence. Wesley lit les données de performance, analyse, décide des changements, puis exécute les scripts bash pour les appliquer.
Ce que Wesley doit faire toutes les 6 heures
Étape 1 — Lire les données
CODEBLOCK5
Étape 2 — Analyser les performances
Wesley analyse :
Win rate :
- - < 80% → serrer les seuils OBI (+0.02), réduire les stratégies agressives
- 80–88% → ajustements mineurs seulement
- > 88% → peut augmenter le Kelly factor (max 0.6)
Trades par jour :
- - < 20 trades/jour → baisser les seuils OBI (-0.01), baisser price_change trigger
- > 80 trades/jour → monter les seuils (qualité > quantité)
Win rate par stratégie :
- - < 70% → réduire son allocation de 10%, redistribuer vers la meilleure
- > 92% → augmenter son allocation de 5%
Si tout est optimal (win rate > 90%, 30–60 trades/jour, toutes stratégies > 85%) :
→ Aucun changement. Wesley note "no changes needed" dans le log.
Étape 3 — Décider des nouvelles valeurs
Wesley détermine les nouvelles valeurs pour ces paramètres :
| Paramètre | Valeur par défaut | Plage autorisée |
|---|
| INLINECODE21 scalping | 0.10 | 0.06 – 0.18 |
| INLINECODE22 momentum |
0.12 | 0.08 – 0.20 |
|
price_change > X | 0.8 | 0.4 – 2.0 |
|
spread_bps < X | 8 | 4 – 15 |
|
kelly * X factor | 0.5 | 0.3 – 0.6 |
| strategy mix scalping | 0.70 | 0.50 – 0.90 |
| strategy mix momentum | 0.25 | 0.05 – 0.40 |
| strategy mix stat_arb | 0.05 | 0.02 – 0.15 |
Wesley ne doit JAMAIS modifier :
- - Les credentials Binance (API key/secret)
- La structure des classes (BinanceClient, PortfolioManager, RiskEngine, BinanceWebSocket)
- Les circuit breakers et stop loss
- DRAWDOWNKILLPCT, DRAWDOWNPAUSEPCT
- Le code WebSocket
Étape 4 — Appliquer les changements
Wesley appelle le script avec les nouvelles valeurs :
CODEBLOCK6
Le script va automatiquement :
- 1. Créer un backup horodaté de executor.py
- Modifier les valeurs via regex (uniquement les seuils OBI, Kelly et strategy mix)
- Valider la syntaxe Python (
python3 -m py_compile) - Redémarrer le bot via systemd (ou pkill en fallback)
- Envoyer une alerte Telegram
- Logger les changements dans autooptimize.log et wesleyoptimizations.log
- Rollback automatique si erreur syntaxe ou restart échoué
Étape 5 — Si aucun changement nécessaire
CODEBLOCK7
🔒 Sécurité — apply_optimization.sh
Ce que le script modifie dans executor.py :
- - Uniquement les seuils numériques OBI, pricechange, spreadbps, Kelly factor et strategy mix
- Via regex ciblées — aucune autre ligne du code n'est touchée
- Jamais les credentials, jamais les circuit breakers, jamais la structure des classes
Protections en place :
- - Backup automatique horodaté avant chaque modification
- Validation syntaxe Python (
py_compile) avant restart - Rollback automatique si syntaxe invalide
- Rollback automatique si restart échoué
- Conservation des 5 derniers backups uniquement
- Alerte Telegram en cas d'erreur
📅 Cron & Persistance
Le skill installe un job récurrent via install_cron.sh :
CODEBLOCK8
Désinstaller le cron :
openclaw cron remove --name crypto-executor-optimizer
# OU
crontab -e # supprimer la ligne crypto-executor-optimizer
📁 Fichiers importants
| Fichier | Rôle |
|---|
| INLINECODE29 | Stats de performance du bot |
| INLINECODE30 |
Historique des configurations précédentes |
|
/workspace/skills/crypto-executor/executor.py | Le bot à optimiser |
|
/workspace/data/bot_config.env | Credentials Binance (chmod 600) |
|
/workspace/logs/auto_optimize.log | Log des cycles d'optimisation |
|
/workspace/logs/wesley_optimizations.log | Historique des décisions de Wesley |
|
/workspace/skills/crypto-executor/executor_backup_*.py | Backups horodatés (5 max) |
📊 Monitoring
CODEBLOCK10
Crypto Executor Optimizer 🤖
该技能使Wesley能够每6小时自动优化crypto-executor交易机器人。
⚠️ 范围与能力
该技能的功能:
- - ✅ 读取性能文件(performancemetrics.json、learnedconfig.json)
- ✅ 分析指标(胜率、每日交易数、各策略胜率)
- ✅ 决定交易参数的新值
- ✅ 通过正则表达式修改executor.py(备份→修改→验证→重启)
- ✅ 每次优化后发送Telegram通知
- ✅ [仅安装时] 从GitHub下载executor.py和cryptooracle.py
- ✅ [仅安装时] 将Binance凭据持久化存储到/workspace/data/botconfig.env(权限600)
- ✅ [仅安装时] 安装每6小时运行的cron任务
该技能不执行的操作:
- - ❌ 不直接下单——但通过systemd/pkill重启executor.py可自动恢复交易
- ❌ 从不修改executor.py中的Binance凭据
- ❌ 从不修改熔断机制或止损设置
- ❌ 从不触碰Python类结构
- ❌ 不持久化存储/workspace之外的任何数据
🔐 凭据与安全
setupbinance20euros.sh收集的凭据
| 变量 | 是否必需 | 用途 |
|---|
| BINANCEAPIKEY | 是(安装时) | Binance身份验证——安装后永不修改 |
| BINANCEAPISECRET |
是(安装时) | Binance身份验证——安装后永不修改 |
| TELEGRAM
BOTTOKEN | 否 | 优化通知 |
| TELEGRAM
CHATID | 否 | 通知接收目标 |
凭据存储:
bash
由setupbinance20euros.sh创建的文件
/workspace/data/bot_config.env
自动应用的权限
chmod 600 /workspace/data/bot_config.env
→ 仅限当前用户读取
→ 在systemctl status或ps aux中不可见
Wesley永不修改的内容:
- - BINANCEAPIKEY和BINANCEAPISECRET——Wesley不修改这些值。但在回退重启时,applyoptimization.sh(由Wesley触发)会引用/workspace/data/botconfig.env以使用现有凭据重新启动executor.py。
- DRAWDOWNKILLPCT、DRAWDOWNPAUSEPCT——关键保护,不可触及
📦 安装与设置
概览
setupbinance20euros.sh → 初始安装(运行一次)
install_cron.sh → 安装Wesley的cron任务(运行一次)
apply_optimization.sh → 每6小时由Wesley调用(自动)
外部下载(仅安装时)
安装脚本从GitHub下载外部代码——执行前请审计:
bash
executor.py — 主要交易机器人
https://raw.githubusercontent.com/georges91560/crypto-executor/main/executor.py
crypto_oracle.py — OBI/VWAP信号(可选)
https://raw.githubusercontent.com/georges91560/crypto-sniper-oracle/main/crypto_oracle.py
安全建议: 固定到特定提交而非main分支:
bash
在GitHub上验证提交,然后:
git checkout <提交哈希>
Python依赖
bash
在共享主机上(Hostinger、cPanel):
pip install websocket-client --break-system-packages
在VPS/标准服务器上(推荐):
python3 -m venv venv && source venv/bin/activate && pip install websocket-client
所需权限
| 操作 | 原因 |
|---|
| sudo systemctl restart crypto-executor | 优化后重启机器人 |
| sudo systemctl stop/start crypto-executor |
安装时控制服务 |
| pkill -f executor.py | systemd不可用时的回退方案 |
| crontab -e | 安装周期性任务(系统cron回退方案) |
🤖 Wesley的角色
Wesley是智能核心。Wesley读取性能数据、分析、决定变更,然后执行bash脚本进行应用。
Wesley每6小时需执行的操作
步骤1 — 读取数据
bash
cat /workspace/performance_metrics.json
cat /workspace/learned_config.json
cat /workspace/skills/crypto-executor/executor.py
步骤2 — 分析性能
Wesley分析:
胜率:
- - < 80% → 收紧OBI阈值(+0.02),减少激进策略
- 80–88% → 仅做微小调整
- > 88% → 可增加Kelly因子(最大0.6)
每日交易数:
- - < 20笔/天 → 降低OBI阈值(-0.01),降低price_change触发值
- > 80笔/天 → 提高阈值(质量>数量)
各策略胜率:
- - < 70% → 将其分配减少10%,重新分配给最佳策略
- > 92% → 将其分配增加5%
如果一切最优(胜率>90%,30–60笔/天,所有策略>85%):
→ 不做任何更改。Wesley在日志中记录无需更改。
步骤3 — 决定新值
Wesley确定以下参数的新值:
| 参数 | 默认值 | 允许范围 |
|---|
| obi > X 剥头皮 | 0.10 | 0.06 – 0.18 |
| obi > X 动量 |
0.12 | 0.08 – 0.20 |
| price_change > X | 0.8 | 0.4 – 2.0 |
| spread_bps < X | 8 | 4 – 15 |
| kelly * X 因子 | 0.5 | 0.3 – 0.6 |
| 策略组合 剥头皮 | 0.70 | 0.50 – 0.90 |
| 策略组合 动量 | 0.25 | 0.05 – 0.40 |
| 策略组合 统计套利 | 0.05 | 0.02 – 0.15 |
Wesley绝不能修改:
- - Binance凭据(API密钥/密钥)
- 类结构(BinanceClient、PortfolioManager、RiskEngine、BinanceWebSocket)
- 熔断机制和止损设置
- DRAWDOWNKILLPCT、DRAWDOWNPAUSEPCT
- WebSocket代码
步骤4 — 应用更改
Wesley使用新值调用脚本:
bash
bash /workspace/skills/crypto-executor-optimizer/apply_optimization.sh \
--obi-scalping 0.11 \
--obi-momentum 0.13 \
--price-change 0.9 \
--spread-bps 9 \
--kelly-factor 0.5 \
--mix-scalping 0.72 \
--mix-momentum 0.23 \
--mix-stat-arb 0.05 \
--reason 胜率76%,收紧OBI阈值
脚本将自动:
- 1. 创建executor.py的带时间戳备份
- 通过正则表达式修改值(仅OBI阈值、Kelly因子和策略组合)
- 验证Python语法(python3 -m pycompile)
- 通过systemd重启机器人(或pkill作为回退)
- 发送Telegram通知
- 将更改记录到autooptimize.log和wesley_optimizations.log
- 如果语法错误或重启失败,自动回滚
步骤5 — 如果无需更改
bash
bash /workspace/skills/crypto-executor-optimizer/apply_optimization.sh --no-changes \
--reason 性能最优,无需更改
🔒 安全性 — apply_optimization.sh
脚本在executor.py中修改的内容:
- - 仅修改OBI数值阈值、pricechange、spreadbps、Kelly因子和策略组合
- 通过针对性正则表达式——不触及代码的其他行
- 绝不修改凭据、熔断机制或类结构
已有的保护措施:
- - 每次修改前自动创建带时间戳的备份
- 重启前进行Python语法验证(py_compile)
- 语法无效时自动回滚
- 重启失败时自动回滚
- 仅保留最近5个备份
- 出错时发送Telegram通知
📅 Cron与持久化
该技能通过install_cron.sh安装周期性任务:
bash
调度: