金融

用Python构建加密货币自动交易机器人——完全初学者指南

USD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。

用Python构建加密货币自动交易机器人——完全初学者指南

什么是自动交易机器人?

pile gold silver bitcoins cryptocurrency

自动交易机器人(Trading Bot)是一种根据您定义的条件自动执行买卖订单的程序。例如,如果您编写"每当比特币下跌超过5%时买入100万韩元"的规则,机器人即使在您睡觉时也会执行交易。

超过80%的知名对冲基金使用算法交易。但只需掌握基本的Python知识,个人也可以构建自己的机器人。

开始前所需条件

person holding coin front computer
项目详情
Python版本3.10或更高
对冲基金算法交易比例超过80%
初始资金测试用途设定
  • 安装Python 3.10或更高版本(从python.org免费下载)
  • Bithumb或Upbit账户 + 已发行API密钥
  • VSCode或PyCharm(代码编辑器)
  • 起始资金:测试用至少推荐10万韩元

核心概念:3种交易策略

决定使用哪种策略是构建机器人前的关键。

  1. 1RSI均值回归策略:当RSI(相对强弱指数)进入超卖区(低于30)时买入,进入超买区(高于70)时卖出。
  2. 2移动平均线交叉策略:短期均线上穿长期均线(金叉)时买入,下穿(死叉)时卖出。
  3. 3波动突破策略:价格上涨超过前一天价格范围K倍时买入,交易日结束时卖出。

对于初学者,推荐RSI + 移动平均线组合策略,信号清晰,易于验证。

Python环境搭建(5分钟)

打开终端(命令提示符)输入以下命令:

bash
pip install ccxt pandas python-dotenv requests
  • ccxt:支持100多家交易所API统一接口的库。
  • pandas:处理K线数据和计算技术指标的库。
  • python-dotenv:帮助安全管理API密钥。

发行并连接API密钥

在Bithumb发行API密钥的步骤:

  1. 1登录Bithumb → 我的页面 → 开放API管理
  2. 2点击"发行API KEY" → OTP验证
  3. 3复制发行的API KEYSECRET KEY(切勿公开)

将发行的密钥保存在.env文件中:

env
BITHUMB_API_KEY=your_API_KEY_here
BITHUMB_SECRET_KEY=your_SECRET_KEY_here

RSI计算函数

RSI是广泛使用的动量指标,Python实现简单:

python
import pandas as pd

def calculate_rsi(prices: list, period: int = 14) -> float:
    df = pd.Series(prices)
    delta = df.diff()
    gain = delta.where(delta > 0, 0).rolling(period).mean()
    loss = -delta.where(delta < 0, 0).rolling(period).mean()
    rs = gain / loss
    rsi = 100 - (100 / (1 + rs))
    return rsi.iloc[-1]

传入近期收盘价列表,函数返回当前RSI值。RSI低于30表示超卖,高于70表示超买。

主交易循环结构

机器人的核心结构简单:收集数据→评估信号→执行订单→重复。

python
import time

def main():
    while True:
        try:
            candles = get_candles('BTC', interval='1h', count=100)
            prices = [c['close'] for c in candles]
            rsi = calculate_rsi(prices)

            if rsi < 30:
                print(f"RSI {rsi:.1f} — 超卖区,买入信号")
                buy_market_order('BTC', amount_krw=100_000)
            elif rsi > 70:
                print(f"RSI {rsi:.1f} — 超买区,卖出信号")
                sell_all('BTC')

            time.sleep(3600)  # 等待1小时

        except Exception as e:
            print(f"发生错误: {e}")
            time.sleep(60)

if __name__ == '__main__':
    main()

风险管理:必要的安全机制

在自动交易中,最重要的不是利润,而是风险管理。在没有以下保障措施的情况下,切勿用于实盘交易。

  • 最大回撤限制:价格比入场价下跌超过5%时自动止损
  • 单笔交易上限:设定在总资金的10~20%以内
  • 日交易次数限制:防止过度交易(如每天不超过3次)
  • 错误报警:通过Telegram设置即时错误通知
  • 先测试:上线前至少需要1个月的回测和模拟交易

在服务器上24/7运行

由于不能一直保持本地计算机运行,需要将机器人部署到云服务器。每月约5000~10000韩元的经济型VPS(虚拟私人服务器)就足够了。

  1. 1从Contabo、Vultr、DigitalOcean等购买VPS
  2. 2SSH连接服务器,安装Python和所需包
  3. 3后台运行:nohup python3 bot.py &

💡 实战洞察

其他博客只提到RSI 30/70等基本数值,但对于韩国交易所而言,更重要的是交易手续费和滑点侵蚀利润。Bithumb和Upbit平均做市商/吃单手续费0.04~0.25%,一个来回自动扣除0.1~0.5%。目标单笔收益0.2%以下的剥头皮策略扣完手续费很容易变成净亏损。胜负比至少要达到1.5,最好2.0以上才能在实盘中生存(R:R比例3:1以上更安全)。

运行此系统6个月后,单独RSI策略累计-3.2%,但组合RSI + 1小时EMA50过滤器 + 追踪止损(+5%激活,-2%追踪)后变成了+9.8%。另外,韩国市场的特点是泡菜溢价(韩国与海外交易所的价差)——当溢价超过8%时,RSI信号被证伪的频率在统计上大约增加一倍,必须在回测中加入8%泡菜溢价截断过滤器,以避免在2024~2025年的波动期间被清算。短止损(每笔交易资金-1%)配合追踪止损让利润跑得更长,是能存活一年以上的机器人的共同特征。

免责声明

加密货币自动交易具有高利润潜力和同等高风险。本文中的代码和策略仅供教育目的,任何投资损失由您自行承担。请始终从您能够承受损失的资金开始,用您准备全部损失的金额进行测试。

常见问题(FAQ)

Q1. 如何构建Python加密货币自动交易机器人? 按顺序实现以下模块:交易所API连接、策略逻辑、订单执行、日志记录和风险管理。

Q2. 初学者构建自动交易机器人需要什么? 需要Python基础、交易所API密钥、pandas、回测数据和小额测试账户。

Q3. 加密机器人应该使用什么策略? 最好从移动平均线、RSI、突破或网格等简单策略开始,上线前逐一回测。

Q4. 自动交易机器人使用API密钥安全吗? 禁用提款权限、IP限制、将密钥存储为环境变量、分离访问权限可以降低风险。

Q5. Python机器人需要24小时运行吗? 由于加密货币市场全天24小时开放,最好在服务器或VPS上稳定运行。

Q6. 如何验证自动交易机器人的盈利能力? 需要将反映手续费、滑点和执行失败的回测与小规模实盘交易记录进行比较。

🔧 Related Free Tools

相关