[TOC]

Im letzten Video haben wir eine Strategie mit zwei gleitenden Durchschnitten mithilfe von ClawdBot/OpenClaw entwickelt. Viele Zuschauer waren damit noch nicht zufrieden und fragten in den Kommentaren: Kann KI Marktbedingungen analysieren, eigene Entscheidungen treffen und selbstständig Orders platzieren? Heute widmen wir uns diesem Ziel und entwickeln ein vollautomatisiertes KI-Handelssystem.
Einige Freunde befürchten, dass der direkte Handel mit KI zu riskant sei, deshalb haben wir eine sicherere Architektur entwickelt:ClawdBot als GehirnEs ist verantwortlich für die Datenerfassung, die Analyse von Nachrichten und die Generierung von Handelssignalen;Inventor Quantification Platform (FMZ) als zweihändigeEs ist zuständig für den Empfang von Signalen, die Ausführung von Transaktionen und das Risikomanagement. Dabei werden die analytischen Fähigkeiten der KI genutzt, die Sicherheitsgarantien einer professionellen Plattform gewährleistet und Echtzeitüberwachung und -prüfung ermöglicht.

Bevor wir beginnen, wollen wir das gesamte System im Detail betrachten. Das gesamte System besteht aus…HirnendeUndAusführung beendetBesteht aus zwei Kernkomponenten, die über HTTP-Anfragen miteinander verbunden sind und einen vollständigen geschlossenen KI-Kreislauf für den quantitativen Handel bilden:

Das Herzstück von ClawdBot ist seine Bedienungsanleitung, die im Wesentlichen ein detailliertes Benutzerhandbuch für die KI darstellt und deren Arbeitsschritte, Beurteilungskriterien und auszuführende Aktionen klar definiert. Betrachten wir die Struktur dieser Bedienungsanleitung:
Als Erstes muss der KI mitgeteilt werden, welche Schlüsseldaten sie beim Öffnen der Seite der Zielwährung lesen muss:
【操作指令】
1. 自动化打开浏览器新标签页
2. 导航至目标币种页面:https://www.coingecko.com/en/coins/bitcoin
3. 等待页面完全加载
【需要读取的数据】
- BTC当前价格
- 24小时交易量
【需要读取的新闻】
- 滚动页面找到 "News" 区域
- 读取最新的3-5条新闻标题和摘要
- 将所有新闻整合为一条信息汇总
- 判断整体情绪(利好/利空/中性)
Als Nächstes sollten klare Handelskriterien definiert werden, die festlegen, unter welchen Umständen gekauft und unter welchen Umständen verkauft werden soll:
【买入条件】
□ 新闻情绪整体正面(利好消息主导)
□ 交易量放大显示市场活跃
□ 综合判断市场处于上升趋势
【卖出条件】
□ 新闻情绪整体负面(利空消息主导)
□ 市场出现明显风险信号
【观望条件】
□ 新闻情绪中性或混杂
□ 市场方向不明确
Die KI muss Daten im Standard-JSON-Format generieren. Dies ist das zentrale Kommunikationsprotokoll zwischen ClawdBot und der Plattform des Erfinders und gewährleistet eine eindeutige Datenanalyse.
{
"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": "新闻情绪积极,交易量放大,适合建仓"
}
Weisen Sie die KI abschließend an, das JSON-Signal an die Plattform des Erfinders zu senden und den lokalen Vorgang zur späteren Überprüfung zu protokollieren:
【发送信号】
执行HTTP POST请求:
URL: https://www.fmz.com/api/v1?method=pub&robot={实盘ID}&channel={UUID}
- 实盘ID:发明者平台上对应机器人的唯一数字标识,用于精准指定接收信号的目标交易机器人。
- UUID:通用唯一识别码,作为自定义频道唯一标识,是ClawdBot与FMZ的通信密钥,请勿泄露,避免恶意操作。
【记录日志】
将每次操作的时间、币种、决策、信号发送状态等信息追加到本地 tradediary.csv 文件,便于后续策略复盘与优化。
Diese Richtlinie wurde selbstverständlich durch zahlreiche Tests optimiert. Sobald die Tests erfolgreich verlaufen sind, können wir sie in einen Skill packen und so konfigurieren, dass sie automatisch als geplante Aufgabe ausgeführt wird.


Nachdem die KI-gestützten Entscheidungsfindungsfunktionen etabliert sind, besteht die aktuelle Aufgabe für die Erfinderplattform darin, unterstützenden Code zu entwickeln, um den gesamten Prozess des Signalempfangs, der Transaktionsausführung und des Risikomanagements zu implementieren.
Definieren Sie zunächst die Kernkonfigurationselemente zur zentralen Verwaltung von Transaktions-, Überwachungs- und Risikokontrollparametern. Die UUID muss mit der in den ClawdBot-Richtlinien angegebenen übereinstimmen.
const CONFIG = {
TRADE_AMOUNT: 0.01, // 每次固定交易数量
CHECK_INTERVAL: 3000, // 信号监听与风控检查间隔(毫秒)
UUID: "自定义UUID", // 与ClawdBot一致的频道标识,作为通信密钥
STOP_LOSS_PERCENT: 5, // 止损/踏空保护比例(%)
};
In die FMZ-Plattform integriertGetChannelDataDie Funktion überwacht einen festgelegten UUID-Kanal und empfängt das vom KI-System gesendete JSON-Signal. Wichtig ist dabei die Verwendung eines Zeitstempels, um festzustellen, ob das Signal bereits verarbeitet wurde. Dadurch wird verhindert, dass dasselbe Signal aufgrund von Netzwerk- oder Plattformproblemen wiederholt ausgeführt wird, und somit werden fehlerhafte Transaktionen vermieden.
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;
}
}
Analysieren Sie den Kerninhalt des Signals, basierend auftrade_decisionDas Feld führt die entsprechende Kauf-/Verkaufsoperation aus. Vor dem Kauf wird geprüft, ob das USDT-Guthaben ausreicht; vor dem Verkauf wird geprüft, ob das Guthaben in der Zielwährung ausreicht, um einen Transaktionsfehler aufgrund unzureichenden Guthabens zu vermeiden.
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;
}
}
Der Code legt einen festen Stop-Loss-Prozentsatz fest. Sobald der Marktpreis die voreingestellte Stop-Loss-Linie erreicht, wird automatisch ein umgekehrter Trade ausgeführt.Stop-LossUndStoppen Sie den Verlust, wenn Sie eine Gelegenheit verpassenZwei Kernszenarien für eine umfassende Kontrolle der Transaktionsrisiken:
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 };
}
Kern der gesamten Strategie ist eine Endlosschleife, die ausgeführt wird durch…Risikokontrolle an erster StelleDas Prinzip besteht darin, Stop-Loss-Prüfungen, KI-Signalverarbeitung und Dashboard-Aktualisierungen in dieser Reihenfolge abzuwickeln, um sicherzustellen, dass die Risikokontrolle stets oberste Priorität hat:
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);
}
}
Die reine Durchführung von Trades ist nicht intuitiv genug. Daher haben wir zusätzlich ein visuelles Dashboard mit vier zentralen Datentabellen entwickelt. Dieses Dashboard zeigt Kontoinformationen, Risikokontrolle, Handelssignale und Handelsaufzeichnungen übersichtlich an und bietet so einen klaren Überblick über den Betriebszustand des Systems.
| Tabellenname | Anzeigeinhalt |
|---|---|
| 💰 Übersicht der Vorteile | Anfangs-/aktueller Währungsbetrag, USDT-Saldo, Gesamtguthaben, Gewinn-/Verlustbetrag und prozentualer Gewinn/Verlust |
| 🛡️ Stop-Loss-Überwachung | Letzte Transaktionsart, Transaktionspreis, aktuelle Preisänderung, Abstand von der Stop-Loss-Linie, aktueller Risikokontrollstatus. |
| 🤖 Aktuelles KI-Signal | Zielwährung, Echtzeitkurs, Nachrichtenübersicht, Stimmungsanalyse, KI-Handelsentscheidungen und Begründung für diese Entscheidungen. |
| 📋 Transaktionsaufzeichnungen | Zeitpunkt, Art der Transaktion, Transaktionspreis und Grund der letzten 10 Transaktionen. |

Sobald die ClawdBot-Anweisungen korrekt debuggt sind und der Plattformcode des Erfinders die Tests bestanden hat, kann das System vollautomatisch laufen: Im ClawdBot-Backend werden die geschriebenen Anweisungen in einem einzigen Paket zusammengefasst…Skill(Wiederverwendbare KI-Operationsvorlage) und einrichtenGeplante AufgabenWird das System beispielsweise alle 10 Minuten ausgeführt, erfasst es automatisch Daten, analysiert diese, trifft Entscheidungen und sendet Signale in der festgelegten Frequenz. Die Plattform des Erfinders empfängt und führt die Transaktionen dann in Echtzeit aus, ohne dass eine manuelle Überwachung erforderlich ist.

Es ist wichtig, alle daran zu erinnern, dass quantitativer Handel stets mit Marktrisiken verbunden ist und KI-Entscheidungen nicht absolut korrekt sind. Bitte beachten Sie vor dem Handel die folgenden Punkte:
Fassen wir die heutigen Erfolge zusammen: Wir haben erfolgreich ein Set gebaut.Vollautomatisiertes, durchgängiges KI-gestütztes quantitatives HandelssystemDas Kernsystem besteht aus zwei Hauptmodulen: ClawdBot, dem zentralen Steuermodul, das für die Marktdatenerfassung, die Analyse der Nachrichtenlage und die Generierung von Handelsentscheidungen zuständig ist; und der quantitativen Plattform des Entwicklers, die als Ausführungsplattform fungiert und für den Signalempfang, den automatisierten Handel, das Risikomanagement und die visuelle Überwachung verantwortlich ist. Beide Komponenten ermöglichen einen standardisierten Datenaustausch über eine HTTP-Schnittstelle und realisieren so einen vollautomatisierten Handel ohne manuelle Überwachung.
Noch wichtiger ist jedoch die hohe Skalierbarkeit dieser Architektur: Transaktionsprotokolle können zur Überprüfung und Optimierung an die KI zurückgesendet werden, und die Fähigkeiten von ClawdBot lassen sich kontinuierlich weiterentwickeln, indem zusätzliche Datenquellen (wie Vertragsdaten und Branchenforschungsberichte) und eine verfeinerte Entscheidungslogik integriert werden. Selbstverständlich ist das aktuelle Modell noch relativ einfach und bietet lediglich einen Rahmen und einen praktischen Ansatz für KI-gestützten quantitativen Handel.
Wenn Sie bessere Optimierungsideen oder Wünsche für neue Funktionen haben, teilen Sie diese gerne im Kommentarbereich mit!
Referenzcode: https://www.fmz.com/strategy/526322