2
Suivre
387
Abonnés

Créez un système de trading automatisé basé sur l'IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.

Créé le: 2026-02-03 17:28:39, Mis à jour le: 2026-02-04 16:56:01
comments   0
hits   636

[TOC]

Créez un système de trading automatisé basé sur l’IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.

introduction

Dans la dernière vidéo, nous avons implémenté une stratégie de double moyenne mobile avec ClawdBot/OpenClaw. Nombreux sont ceux qui, insatisfaits, ont posé la question suivante dans les commentaires : l’IA peut-elle analyser les conditions du marché, prendre ses propres décisions et passer des ordres de manière autonome ? Aujourd’hui, nous allons relever ce défi et créer un système de trading entièrement automatisé par l’IA.

Certains amis craignent que laisser l’IA trader directement soit trop risqué, nous avons donc conçu une architecture plus sûre :ClawdBot comme cerveauElle est chargée de collecter les données, d’analyser l’actualité et de générer des signaux de trading ;Plateforme de quantification des inventeurs (FMZ) à deux mainsElle est chargée de recevoir les signaux, d’exécuter les transactions et de gérer le contrôle des risques. Elle tire parti des capacités analytiques de l’IA, offre les garanties de sécurité d’une plateforme professionnelle et permet une surveillance et un examen en temps réel.

Créez un système de trading automatisé basé sur l’IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.


I. Décomposition de l’architecture système

Avant de commencer, analysons le système dans son ensemble. Le système complet se compose de…fin du cerveauetFin de l’exécutionComposé de deux éléments principaux, liés par des requêtes HTTP, formant une boucle fermée complète de trading quantitatif d’IA :

Créez un système de trading automatisé basé sur l’IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.

1. ClawdBot (Terminal cérébral)

  1. Collecter des données en temps réelAccès automatisé au navigateur pour obtenir en temps réel les prix, les volumes d’échanges et les actualités concernant les cryptomonnaies cibles.
  2. Analyse du sentiment médiatiqueL’IA intègre le contenu des actualités pour déterminer si le sentiment du marché est positif, négatif ou neutre.
  3. Générer un JSON de décision de transactionIl combine l’analyse des données et des sentiments pour générer des décisions d’achat, de vente ou d’attente, et les conditionne au format JSON sous forme de données standardisées pour la communication multiplateforme.
  4. Requête HTTP POST envoyée à FMZLe signal de décision au format JSON est transmis à la plateforme d’exécution de quantification de l’inventeur via une requête HTTP POST.

2. Stratégie FMZ (Fin d’exécution)

  1. Signal reçu par le canal de surveillanceSurveiller en permanence un canal dédié désigné afin de capturer les requêtes HTTP envoyées par le système central et les signaux de transaction qu’elles contiennent.
  2. Analyser le JSON et exécuter les transactionsLe système analyse les données JSON reçues, extrait les instructions de trading essentielles et déclenche le robot de trading en direct de la plateforme pour finaliser automatiquement le placement de l’ordre.
  3. Gestion des risques et protection contre les pertesLors de l’exécution des transactions, le système surveille les prix du marché en temps réel et exécute des opérations de contrôle des risques telles que des ordres stop-loss et des mesures d’atténuation des risques selon des règles prédéfinies afin de réduire les risques de négociation.
  4. Affichage du tableau de bord visuelLe tableau de bord de la plateforme affiche des informations en temps réel telles que l’état des transactions, les résultats d’exécution, les données de contrôle des risques et les droits du compte, permettant ainsi une surveillance visuelle complète du processus.

II. Consignes de rédaction : Enseigner à l’IA ce qu’il faut faire

Le cœur de ClawdBot réside dans son manuel d’utilisation, véritable guide détaillé pour l’IA, qui définit clairement ses étapes de fonctionnement, ses critères de jugement et les actions à effectuer. Examinons la structure de ce manuel :

2.1 Section Acquisition de données

Tout d’abord, indiquez à l’IA quelles données clés elle doit lire lorsqu’elle ouvre la page de la devise cible :

【操作指令】
1. 自动化打开浏览器新标签页
2. 导航至目标币种页面:https://www.coingecko.com/en/coins/bitcoin
3. 等待页面完全加载

【需要读取的数据】
- BTC当前价格
- 24小时交易量

【需要读取的新闻】
- 滚动页面找到 "News" 区域
- 读取最新的3-5条新闻标题和摘要
- 将所有新闻整合为一条信息汇总
- 判断整体情绪(利好/利空/中性)

2.2 Section sur la logique de prise de décision

Ensuite, définissez des critères de négociation clairs, en précisant dans quelles circonstances acheter et dans quelles circonstances vendre :

【买入条件】
□ 新闻情绪整体正面(利好消息主导)
□ 交易量放大显示市场活跃
□ 综合判断市场处于上升趋势

【卖出条件】
□ 新闻情绪整体负面(利空消息主导)
□ 市场出现明显风险信号

【观望条件】
□ 新闻情绪中性或混杂
□ 市场方向不明确

2.3 Définition du format de sortie

L’IA doit générer des données au format JSON standard. Il s’agit du protocole de communication principal entre ClawdBot et la plateforme de l’inventeur, garantissant une analyse des données sans ambiguïté.

{
    "coin": "BTC",
    "timestamp": "2024-01-15T14:00:00.000Z",
    "current_price": 42500.00,
    "volume_24h": "25,000,000,000",
    "news_summary": "ETF资金持续流入,机构增持意愿强烈",
    "news_sentiment": "positive",
    "trade_decision": "买入",
    "decision_reason": "新闻情绪积极,交易量放大,适合建仓"
}

2.4 Exécution des actions

Enfin, demandez à l’IA d’envoyer le signal JSON à la plateforme de l’inventeur et d’enregistrer les opérations locales pour un examen ultérieur :

【发送信号】
执行HTTP POST请求:
URL: https://www.fmz.com/api/v1?method=pub&robot={实盘ID}&channel={UUID}
- 实盘ID:发明者平台上对应机器人的唯一数字标识,用于精准指定接收信号的目标交易机器人。
- UUID:通用唯一识别码,作为自定义频道唯一标识,是ClawdBot与FMZ的通信密钥,请勿泄露,避免恶意操作。

【记录日志】
将每次操作的时间、币种、决策、信号发送状态等信息追加到本地 tradediary.csv 文件,便于后续策略复盘与优化。

Bien entendu, cette directive a été affinée grâce à de nombreux tests. Une fois les tests concluants, nous pourrons l’intégrer à une compétence et la configurer pour qu’elle s’exécute automatiquement en tant que tâche planifiée.

Créez un système de trading automatisé basé sur l’IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.


III. Plateforme de l’inventeur : Code de réception des signaux

Créez un système de trading automatisé basé sur l’IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.

Une fois les capacités de prise de décision basées sur l’IA établies, la tâche actuelle pour la plateforme de l’inventeur consiste à développer un code de support pour mettre en œuvre l’ensemble du processus de réception du signal, d’exécution des transactions et de gestion du contrôle des risques.

3.1 Paramètres de configuration

Commencez par définir les éléments de configuration principaux permettant de gérer de manière centralisée les paramètres de transaction, de surveillance et de contrôle des risques. L’UUID doit être conforme à celui spécifié dans les directives ClawdBot.

const CONFIG = {
    TRADE_AMOUNT: 0.01,           // 每次固定交易数量
    CHECK_INTERVAL: 3000,         // 信号监听与风控检查间隔(毫秒)
    UUID: "自定义UUID",            // 与ClawdBot一致的频道标识,作为通信密钥
    STOP_LOSS_PERCENT: 5,         // 止损/踏空保护比例(%)
};

3.2 Réception et déduplication du signal

Intégrée à la plateforme FMZGetChannelDataCette fonction écoute un canal UUID spécifié et récupère le signal JSON envoyé par l’IA. Un détail important : un horodatage est utilisé pour déterminer si le signal a été traité, évitant ainsi son exécution répétée en raison de problèmes de réseau ou de plateforme, et prévenant de ce fait les transactions erronées.

function receiveSignal() {
    try {
        const res = GetChannelData(CONFIG.UUID);
        
        if (res === null || res === "") {
            return null;
        }
        
        const signal = typeof res === 'string' ? JSON.parse(res) : res;
        
        // 校验信号格式,确保核心字段完整
        if (!signal.coin || !signal.trade_decision) {
            Log("❌ 信号格式无效,核心字段缺失");
            return null;
        }
        
        // 检查时间戳是否已处理(信号去重核心逻辑)
        if (isSignalProcessed(signal.timestamp)) {
            return null;
        }
        
        Log(`📥 收到新信号: ${signal.coin} - ${signal.trade_decision}`);
        return signal;
        
    } catch (e) {
        Log(`❌ 获取信号失败: ${e.message}`);
        return null;
    }
}

3.3 Logique d’exécution des transactions

Analysez le contenu principal du signal, en vous basant surtrade_decisionCe champ exécute l’opération d’achat/vente correspondante. Avant l’achat, il vérifie si le solde en USDT est suffisant ; avant la vente, il vérifie si le solde dans la devise cible est suffisant afin d’éviter un échec de transaction pour solde insuffisant.

function executeBuy(signal, reason) {
    const symbol = signal.coin + "_USDT"; // 拼接交易对,如BTC_USDT
    exchange.SetCurrency(symbol); // 指定当前交易对
    
    const account = _C(exchange.GetAccount); // 获取账户实时资产
    const ticker = _C(exchange.GetTicker); // 获取币种实时行情
    const currentPrice = ticker.Last; // 获取最新成交价
    
    // 资金充足性检查
    const requiredBalance = currentPrice * CONFIG.TRADE_AMOUNT;
    if (account.Balance < requiredBalance) {
        Log(`❌ 余额不足,需要 USDT $${requiredBalance.toFixed(2)},当前仅 $${account.Balance.toFixed(2)}`);
        return false;
    }
    
    // 执行市价买入(-1表示市价,按当前市场价格成交)
    const orderId = exchange.Buy(-1, CONFIG.TRADE_AMOUNT * currentPrice);
    
    if (orderId) {
        addTradeRecord({
            coin: signal.coin,
            action: "买入",
            price: currentPrice,
            amount: CONFIG.TRADE_AMOUNT,
            reason: reason
        });
        Log(`✅ ${signal.coin} 市价买入成功,成交价格: $${currentPrice.toFixed(2)}`);
        return true;
    }
    Log(`❌ ${signal.coin} 买入失败,未生成订单ID`);
    return false;
}

function executeSell(signal, reason) {
    try {
        const symbol = signal.coin + "_USDT";
        exchange.SetCurrency(symbol);
        
        const account = _C(exchange.GetAccount);
        const ticker = _C(exchange.GetTicker);
        const currentPrice = ticker.Last;
        
        // 目标币种充足性检查
        if (account.Stocks < CONFIG.TRADE_AMOUNT) {
            Log(`❌ ${signal.coin} 余额不足,需要 ${CONFIG.TRADE_AMOUNT}枚,当前仅 ${account.Stocks.toFixed(6)}枚`);
            return false;
        }
        
        // 执行市价卖出
        const orderId = exchange.Sell(-1, CONFIG.TRADE_AMOUNT);
        
        if (orderId) {
            // 添加交易记录至平台
            addTradeRecord({
                coin: signal.coin,
                action: "卖出",
                price: currentPrice,
                amount: CONFIG.TRADE_AMOUNT,
                reason: reason || signal.decision_reason,
                timestamp: new Date().toISOString()
            });
            
            Log(`✅ ${signal.coin} 市价卖出成功 - 成交价格: $${currentPrice.toFixed(2)}, 成交数量: ${CONFIG.TRADE_AMOUNT}`);
            return true;
        } else {
            Log(`❌ ${signal.coin} 卖出失败,未生成订单ID`);
            return false;
        }
        
    } catch (e) {
        Log(`❌ 卖出异常: ${e.message}`);
        return false;
    }
}

3.4 Mécanisme de contrôle des risques de stop-loss

Le code définit un pourcentage de stop-loss fixe. Lorsque le prix du marché atteint ce niveau prédéfini, il exécute automatiquement une opération inverse.Stop lossetLimitez vos pertes si vous ratez une opportunité.Deux scénarios principaux pour un contrôle complet des risques liés aux transactions :

function checkStopLoss() {
    const latestTrade = getLatestTradeRecord(); // 获取最新一笔交易记录
    
    if (!latestTrade) return { triggered: false }; // 无交易记录则跳过风控检查
    
    const ticker = _C(exchange.GetTicker);
    const currentPrice = ticker.Last;
    const tradePrice = latestTrade.price; // 最新交易的成交价格
    const priceChangePercent = ((currentPrice - tradePrice) / tradePrice) * 100; // 价格涨跌幅百分比
    
    // 场景一:买入后价格下跌触发亏损止损,限制最大亏损
    if (latestTrade.action === "买入") {
        const stopLossPrice = tradePrice * (1 - CONFIG.STOP_LOSS_PERCENT / 100); // 计算止损价格
        
        if (currentPrice <= stopLossPrice) {
            Log(`🔴 亏损止损触发!当前跌幅: ${priceChangePercent.toFixed(2)}%,触发${CONFIG.STOP_LOSS_PERCENT}%止损线`);
            return {
                triggered: true,
                action: "卖出",
                reason: `止损卖出:跌幅触发${CONFIG.STOP_LOSS_PERCENT}%止损线,当前跌幅${priceChangePercent.toFixed(2)}%`
            };
        }
    }
    
    // 场景二:卖出后价格上涨触发踏空止损,避免错过大幅上涨行情
    if (latestTrade.action === "卖出") {
        const stopLossPrice = tradePrice * (1 + CONFIG.STOP_LOSS_PERCENT / 100); // 计算踏空保护价格
        
        if (currentPrice >= stopLossPrice) {
            Log(`🟢 踏空止损触发!当前涨幅: ${priceChangePercent.toFixed(2)}%,触发${CONFIG.STOP_LOSS_PERCENT}%保护线`);
            return {
                triggered: true,
                action: "买入",
                reason: `踏空止损:涨幅触发${CONFIG.STOP_LOSS_PERCENT}%保护线,当前涨幅${priceChangePercent.toFixed(2)}%`
            };
        }
    }
    
    return { triggered: false };
}

3.5 Logique de boucle principale

L’essence de toute la stratégie repose sur une boucle infinie, exécutée par…Contrôle des risques en premierLe principe consiste à traiter les contrôles de stop-loss, le traitement des signaux d’IA et les mises à jour du tableau de bord dans cet ordre, en veillant à ce que le contrôle des risques soit toujours la priorité absolue :

function main() {
    initialize(); // 初始化:创建交易记录、仪表板等
    Log("🚀 现货自动交易机器人启动,开始监听AI信号...");
    
    while (true) { // 无限循环,持续运行
        // 1. 检查止损(优先级最高),触发则立即执行
        const stopLossInfo = checkStopLoss();
        if (stopLossInfo.triggered) {
            executeStopLoss(stopLossInfo);
        }
        
        // 2. 获取并处理AI信号,无信号则跳过
        const signal = receiveSignal();
        if (signal) {
            processSignal(signal);
        }
        
        // 3. 实时更新可视化仪表板
        displayDashboard();
        
        // 4. 按预设间隔等待,进入下一轮检查
        Sleep(CONFIG.CHECK_INTERVAL);
    }
}

3.6 Visualisation

L’exécution de transactions en elle-même n’étant pas suffisamment intuitive, nous avons également créé un tableau de bord visuel regroupant quatre tableaux de données essentiels. Ce tableau de bord affiche les informations du compte, le contrôle des risques, les signaux et l’historique des transactions en un seul endroit, offrant ainsi une vue d’ensemble claire de l’état opérationnel du système.

Nom de la table Afficher le contenu
💰 Aperçu des avantages Quantité initiale/actuelle de devises, solde en USDT, capital total du compte, montant et pourcentage des profits/pertes
🛡️ Surveillance des ordres stop-loss Dernier type de transaction, prix de la transaction, variation de prix actuelle, distance par rapport à la ligne de stop-loss, état actuel du contrôle des risques.
🤖 Signal actuel de l’IA Devise cible, cours en temps réel, résumé de l’actualité, analyse du sentiment de marché, décisions de trading de l’IA et justification de ces décisions.
📋 Historique des transactions L’heure, le type d’opération, le prix de la transaction et le motif des 10 dernières transactions.

Créez un système de trading automatisé basé sur l’IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.

IV. Exécution automatisée

Une fois les instructions de ClawdBot correctement déboguées et le code de la plateforme de l’inventeur validé par les tests, le système peut fonctionner de manière entièrement automatique : dans le backend de ClawdBot, les instructions écrites sont regroupées en un seul fichier…Skill(Modèle d’opération d’IA réutilisable), et configurerTâches planifiéesPar exemple, si l’exécution a lieu toutes les 10 minutes, le système collecte, analyse et prend des décisions automatiquement, puis envoie des signaux à la fréquence définie. La plateforme de l’inventeur écoute et exécute ensuite les transactions en temps réel, sans intervention manuelle.

Créez un système de trading automatisé basé sur l’IA à partir de zéro : laissez ClawdBot (OpenClaw) être votre cerveau de trading.


V. Précautions et avertissements relatifs aux risques

Il est important de rappeler que le trading quantitatif comporte toujours des risques de marché et que les décisions de l’IA ne sont pas infaillibles. Veuillez prendre en compte les points suivants avant de trader :

  1. La prise de décision pilotée par l’IA est donnée à titre indicatif uniquement.Son analyse repose sur des données publiques et une logique prédéfinie, et ne peut être utilisée comme unique fondement des décisions d’investissement ;
  2. Bien qu’un mécanisme de stop-loss ait été ajouté, la stratégie peut échouer dans des conditions de marché extrêmes (telles que des chutes brutales ou des krachs) et ne peut pas complètement éviter les pertes.
  3. Il est recommandé de commencer par un compte démo ou avec une petite somme d’argent.Après avoir fait fonctionner le système pendant au moins 1 à 2 cycles de bourse afin de vérifier sa stabilité, nous envisagerons d’augmenter progressivement les investissements.
  4. Veillez à bien gérer les risques. Il est recommandé d’utiliser un compte et un appareil distincts pour vos opérations de trading afin d’éviter toute divulgation d’informations de compte et de clés de communication UUID.
  5. Vérifiez régulièrement l’état opérationnel de la stratégie, consultez les journaux de transactions et les messages d’erreur de la plateforme pour vous assurer que tous les modules de ClawdBot et de la plateforme de l’inventeur fonctionnent correctement ;
  6. Les journaux de transactions peuvent servir de données de retour d’information pour optimiser la logique de prise de décision des instructions de ClawdBot et les paramètres de contrôle des risques de la plateforme de l’inventeur, permettant ainsi au système d’itérer et de se mettre à jour en continu.

Résumer

Passons en revue les réalisations d’aujourd’hui : nous avons réussi à construire un ensembleSystème de trading quantitatif entièrement automatisé par IA de bout en boutLe système repose sur deux modules principaux : ClawdBot, véritable cerveau du système, qui collecte les données de marché, analyse le sentiment des actualités et génère les décisions de trading ; et la plateforme quantitative Inventor, qui assure l’exécution des signaux, la réception des ordres, le trading automatisé, la gestion des risques et le suivi visuel. Grâce à une interface HTTP, les deux modules échangent des données de manière standardisée, permettant ainsi un trading entièrement automatisé sans intervention manuelle.

Plus important encore, cette architecture offre une grande évolutivité : les journaux de transactions peuvent être réinjectés dans l’IA pour analyse et optimisation, et les compétences de ClawdBot peuvent être continuellement améliorées grâce à l’ajout de nouvelles sources de données (telles que des données contractuelles et des rapports d’études sectorielles) et d’une logique de décision plus précise. Bien entendu, le modèle actuel reste relativement basique et ne fournit qu’un cadre et une approche pratique pour le trading quantitatif piloté par l’IA.

Si vous avez de meilleures idées d’optimisation ou de nouvelles demandes de fonctionnalités, n’hésitez pas à les partager dans la section des commentaires !

Code de référence : https://www.fmz.com/strategy/526322