feat(mapping): move mapping table to json

This commit is contained in:
2025-07-15 21:21:49 +08:00
parent 1c3ca56823
commit 40a797e7ed
2 changed files with 16 additions and 15 deletions

View File

@@ -31,6 +31,9 @@ MEXC 交易机器人是一个自动化交易工具,用于在 MEXC 交易所执
```json ```json
{ {
"symbol_mapping": {
"BTCUSDC": "BTCUSDT"
},
"trades": [ "trades": [
{ {
"symbol": "BTCUSDT", "symbol": "BTCUSDT",
@@ -48,20 +51,25 @@ MEXC 交易机器人是一个自动化交易工具,用于在 MEXC 交易所执
### 配置字段详解 ### 配置字段详解
#### 1. 交易列表 (`trades`) #### 1. 证券代码映射 (`symbol_mapping`)
- 类型:数组
- 描述API代码: CSV记录代码如`"BTCUSDC": "BTCUSDT"`代表向API请求`BTCUSDC`但CSV中记录证券代码`BTCUSDT`
#### 2. 交易列表 (`trades`)
- 类型:数组 - 类型:数组
- 描述:包含所有交易指令的列表 - 描述:包含所有交易指令的列表
- 每个交易指令是一个包含以下字段的对象: - 每个交易指令是一个包含以下字段的对象:
#### 2. 交易对 (`symbol`) ##### 1. 交易对 (`symbol`)
- 类型:字符串 - 类型:字符串
- 必填:是 - 必填:是
- 示例:`"BTCUSDT"` - 示例:`"BTCUSDT"`
- 描述:要交易的货币对,如 BTC/USDT - 描述:要交易的货币对,如 BTC/USDT
#### 3. 订单类型 (`order_type`) ##### 2. 订单类型 (`order_type`)
- 类型:字符串 - 类型:字符串
- 必填:是 - 必填:是
@@ -72,7 +80,7 @@ MEXC 交易机器人是一个自动化交易工具,用于在 MEXC 交易所执
- `"IMMEDIATE_OR_CANCEL"`:立即成交或取消 - `"IMMEDIATE_OR_CANCEL"`:立即成交或取消
- `"FILL_OR_KILL"`:全部成交或取消 - `"FILL_OR_KILL"`:全部成交或取消
#### 4. 交易方向 (`side`) ##### 3. 交易方向 (`side`)
- 类型:字符串 - 类型:字符串
- 必填:是 - 必填:是
@@ -80,7 +88,7 @@ MEXC 交易机器人是一个自动化交易工具,用于在 MEXC 交易所执
- `"BUY"`:买入 - `"BUY"`:买入
- `"SELL"`:卖出 - `"SELL"`:卖出
#### 5. 执行日期 (`execute_dates`) ##### 4. 执行日期 (`execute_dates`)
- 类型:数组 - 类型:数组
- 必填:是 - 必填:是
@@ -91,14 +99,12 @@ MEXC 交易机器人是一个自动化交易工具,用于在 MEXC 交易所执
- `["*"]`:每天执行 - `["*"]`:每天执行
- 格式YYYY-MM-DD - 格式YYYY-MM-DD
#### 6. 订单参数 (`params`) ##### 5. 订单参数 (`params`)
- 类型:对象 - 类型:对象
- 必填:是 - 必填:是
- 内容根据订单类型不同而变化: - 内容根据订单类型不同而变化:
##### 参数
**必须包含 `quantity` 或 `quoteOrderQty` 之一** **必须包含 `quantity` 或 `quoteOrderQty` 之一**
- `quantity`:交易数量(字符串格式的数字) - `quantity`:交易数量(字符串格式的数字)

View File

@@ -110,12 +110,6 @@ class MexcSpotTrade:
- _tool_record_transaction(): 记录交易到CSV - _tool_record_transaction(): 记录交易到CSV
""" """
# 证券代码映射 (API代码: CSV记录代码)
SYMBOL_MAPPING = {
"BTCUSDC": "BTCUSDT",
# 可以在此添加更多映射
}
# 订单类型与必需参数 # 订单类型与必需参数
ORDER_TYPE_REQUIREMENTS = { ORDER_TYPE_REQUIREMENTS = {
"LIMIT": [ "LIMIT": [
@@ -134,6 +128,7 @@ class MexcSpotTrade:
self.trader = mexc_spot_v3.mexc_trade() self.trader = mexc_spot_v3.mexc_trade()
self.market = MexcSpotMarket() self.market = MexcSpotMarket()
self.csv_file = "output/mexc_spot_trade.csv" self.csv_file = "output/mexc_spot_trade.csv"
self.symbol_mapping = TradingConfig().config_data.get("symbol_mapping", {})
def _api_get_order(self, symbol: str, order_id: str) -> Optional[Dict[str, Any]]: def _api_get_order(self, symbol: str, order_id: str) -> Optional[Dict[str, Any]]:
""" """
@@ -163,7 +158,7 @@ class MexcSpotTrade:
def _tool_map_symbol(self, symbol: str) -> str: def _tool_map_symbol(self, symbol: str) -> str:
"""映射证券代码用于记录""" """映射证券代码用于记录"""
return self.SYMBOL_MAPPING.get(symbol, symbol) return self.symbol_mapping.get(symbol, symbol)
def _tool_validate_order_params( def _tool_validate_order_params(
self, order_type: str, params: Dict[str, Any] self, order_type: str, params: Dict[str, Any]