feat(mapping): move mapping table to json
This commit is contained in:
		
							
								
								
									
										22
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								README.md
									
									
									
									
									
								
							@@ -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`:交易数量(字符串格式的数字)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										9
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								main.py
									
									
									
									
									
								
							@@ -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]
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user