3c250dc01bca95dbf19df796ffb22fce9491de14
				
			
			
		
	MEXC 定投交易机器人
项目简介
MEXC 定投交易机器人是一个自动化交易工具,用于在 MEXC 交易所执行现货定投交易。它通过 JSON 配置文件管理交易指令,支持多种订单类型,并自动记录交易日志。
主要功能
- 配置文件管理:从 JSON 文件读取交易指令
 - 灵活调度:支持按日期执行交易(
*表示每天执行) - 多种订单类型:支持 LIMIT、MARKET、LIMIT_MAKER、IMMEDIATE_OR_CANCEL、FILL_OR_KILL 等订单类型
 - 智能价格获取:当无 price 参数时自动获取实时价格作为限价
 - 自动计算数量:LIMIT 订单支持只提供 quoteOrderQty 自动计算 quantity
 - 证券代码映射:支持不同代码格式间的转换
 - 完整交易记录:记录交易到 CSV 文件和日志
 
安装与使用
- 
创建配置文件
config/trading_config.json(可有多个不同名字的.json文件,程序会自动遍历所有) - 
运行程序:
python main.py 
配置文件
配置文件结构
配置文件采用 JSON 格式,命名为trading_config.json,基本结构如下:
{
    "api": {
        "mexc_host": "https://api.mexc.com",
        "api_key": "mxxxxxxxxxx",
        "secret_key": "xxxxxxxxxxxxxxxxx"
    },
    "symbol_mapping": {
        "BTCUSDC": "BTCUSDT"
    },
    "trades": [
        {
            "symbol": "BTCUSDT",
            "order_type": "LIMIT",
            "side": "BUY",
            "execute_dates": ["*"],
            "params": {
                "quoteOrderQty": "100",
                "price": "50000"
            }
        }
    ]
}
配置字段详解
1. API 配置 (api)
2. 证券代码映射 (symbol_mapping)
- 类型:数组
 - 描述:API 代码: CSV 记录代码,如
"BTCUSDC": "BTCUSDT"代表向 API 请求BTCUSDC,但 CSV 中记录证券代码BTCUSDT 
3. 交易列表 (trades)
- 类型:数组
 - 描述:包含所有交易指令的列表
 - 每个交易指令是一个包含以下字段的对象:
 
1. 交易对 (symbol)
- 类型:字符串
 - 必填:是
 - 示例:
"BTCUSDT" - 描述:要交易的货币对,如 BTC/USDT
 
2. 订单类型 (order_type)
- 类型:字符串
 - 必填:是
 - 可选值:
"LIMIT":限价单"MARKET":市价单"LIMIT_MAKER":限价做市单"IMMEDIATE_OR_CANCEL":立即成交或取消"FILL_OR_KILL":全部成交或取消
 
3. 交易方向 (side)
- 类型:字符串
 - 必填:是
 - 可选值:
"BUY":买入"SELL":卖出
 
4. 执行日期 (execute_dates)
- 类型:数组
 - 必填:是
 - 特殊值:
"*":表示每天执行
 - 示例:
["2023-01-01", "2023-01-15"]:仅在指定日期执行["*"]:每天执行
 - 格式:YYYY-MM-DD
 
5. 订单参数 (params)
- 类型:对象
 - 必填:是
 - 内容根据订单类型不同而变化:
 
必须包含 quantity 或 quoteOrderQty 之一
quantity:交易数量(字符串格式的数字)quoteOrderQty:交易金额(字符串格式的数字)price:限价价格(字符串格式的数字),如果为空则自动获取最新价
配置示例
示例 1:每日限价买入
{
    "trades": [
        {
            "symbol": "BTCUSDT",
            "order_type": "LIMIT",
            "side": "BUY",
            "execute_dates": ["*"],
            "params": {
                "quoteOrderQty": "100",
                "price": "50000"
            }
        }
    ]
}
示例 2:特定日期市价卖出
{
    "trades": [
        {
            "symbol": "ETHUSDT",
            "order_type": "MARKET",
            "side": "SELL",
            "execute_dates": ["2023-12-25", "2023-12-31"],
            "params": {
                "quantity": "1.5"
            }
        }
    ]
}
示例 3:多种订单组合
{
    "trades": [
        {
            "symbol": "BTCUSDT",
            "order_type": "LIMIT",
            "side": "BUY",
            "execute_dates": ["2023-12-01"],
            "params": {
                "quantity": "0.01",
                "price": "42000"
            }
        },
        {
            "symbol": "ETHUSDT",
            "order_type": "MARKET",
            "side": "SELL",
            "execute_dates": ["*"],
            "params": {
                "quoteOrderQty": "200"
            }
        }
    ]
}
注意事项
- 价格和数量都使用字符串格式而非数字,以避免浮点数精度问题
 - 对于 LIMIT 订单,可以只提供
quoteOrderQty,系统会自动计算quantity - 当
execute_dates包含"*"时,会忽略其他日期设置 - 系统会自动创建
output目录存放日志和交易记录 - 所有时间均以系统时区为准
 
错误处理
如果配置文件格式错误,程序会记录错误并退出。常见错误包括:
- JSON 格式错误
 - 缺少必填字段
 - 日期格式不正确
 - 订单参数不符合订单类型要求
 
输出文件
output/mexc_trading_bot.log: 交易日志output/mexc_spot_trade.csv: 交易记录 CSV 文件
Description
				
					Languages
				
				
								
								
									Python
								
								100%