i think we fixed mexc interface at the end!!!
This commit is contained in:
@ -65,11 +65,19 @@ class MEXCInterface(ExchangeInterface):
|
||||
return False
|
||||
|
||||
def _format_spot_symbol(self, symbol: str) -> str:
|
||||
"""Formats a symbol to MEXC spot API standard (e.g., 'ETH/USDT' -> 'ETHUSDT')."""
|
||||
"""Formats a symbol to MEXC spot API standard (e.g., 'ETH/USDT' -> 'ETHUSDC')."""
|
||||
if '/' in symbol:
|
||||
base, quote = symbol.split('/')
|
||||
# Convert USDT to USDC for MEXC spot trading
|
||||
if quote.upper() == 'USDT':
|
||||
quote = 'USDC'
|
||||
return f"{base.upper()}{quote.upper()}"
|
||||
return symbol.upper()
|
||||
else:
|
||||
# Convert USDT to USDC for symbols like ETHUSDT
|
||||
symbol = symbol.upper()
|
||||
if symbol.endswith('USDT'):
|
||||
symbol = symbol.replace('USDT', 'USDC')
|
||||
return symbol
|
||||
|
||||
def _format_futures_symbol(self, symbol: str) -> str:
|
||||
"""Formats a symbol to MEXC futures API standard (e.g., 'ETH/USDT' -> 'ETH_USDT')."""
|
||||
@ -77,22 +85,37 @@ class MEXCInterface(ExchangeInterface):
|
||||
return symbol.replace('/', '_').upper()
|
||||
|
||||
def _generate_signature(self, timestamp: str, method: str, endpoint: str, params: Dict[str, Any]) -> str:
|
||||
"""Generate signature for private API calls"""
|
||||
# Build the string to sign
|
||||
sign_str = self.api_key + timestamp
|
||||
if params:
|
||||
# Append all parameters sorted by key, without URL encoding for signature
|
||||
query_str = "&".join([f"{k}={v}" for k, v in sorted(params.items()) if k != 'signature'])
|
||||
if query_str:
|
||||
sign_str += query_str
|
||||
"""Generate signature for private API calls using MEXC's expected parameter order"""
|
||||
# MEXC requires specific parameter ordering, not alphabetical
|
||||
# Based on successful test: symbol, side, type, quantity, timestamp, then other params
|
||||
mexc_param_order = ['symbol', 'side', 'type', 'quantity', 'timestamp', 'recvWindow']
|
||||
|
||||
# Build ordered parameter list
|
||||
ordered_params = []
|
||||
|
||||
# Add parameters in MEXC's expected order
|
||||
for param_name in mexc_param_order:
|
||||
if param_name in params and param_name != 'signature':
|
||||
ordered_params.append(f"{param_name}={params[param_name]}")
|
||||
|
||||
# Add any remaining parameters not in the standard order (alphabetically)
|
||||
remaining_params = {k: v for k, v in params.items() if k not in mexc_param_order and k != 'signature'}
|
||||
for key in sorted(remaining_params.keys()):
|
||||
ordered_params.append(f"{key}={remaining_params[key]}")
|
||||
|
||||
# Create query string (MEXC doesn't use the api_key + timestamp prefix)
|
||||
query_string = '&'.join(ordered_params)
|
||||
|
||||
logger.debug(f"MEXC signature query string: {query_string}")
|
||||
|
||||
logger.debug(f"Signature string: {sign_str}")
|
||||
# Generate HMAC SHA256 signature
|
||||
signature = hmac.new(
|
||||
self.api_secret.encode('utf-8'),
|
||||
sign_str.encode('utf-8'),
|
||||
query_string.encode('utf-8'),
|
||||
hashlib.sha256
|
||||
).hexdigest()
|
||||
|
||||
logger.debug(f"MEXC signature: {signature}")
|
||||
return signature
|
||||
|
||||
def _send_public_request(self, method: str, endpoint: str, params: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
||||
@ -139,24 +162,26 @@ class MEXCInterface(ExchangeInterface):
|
||||
"Request-Time": timestamp
|
||||
}
|
||||
|
||||
# Ensure endpoint does not start with a slash to avoid double slashes
|
||||
if endpoint.startswith('/'):
|
||||
endpoint = endpoint.lstrip('/')
|
||||
# For spot API, use the correct endpoint format
|
||||
if not endpoint.startswith('api/v3/'):
|
||||
endpoint = f"api/v3/{endpoint}"
|
||||
url = f"{self.base_url}/{endpoint}"
|
||||
try:
|
||||
if method.upper() == "GET":
|
||||
response = self.session.get(url, headers=headers, params=params, timeout=10)
|
||||
elif method.upper() == "POST":
|
||||
headers["Content-Type"] = "application/x-www-form-urlencoded"
|
||||
response = self.session.post(url, headers=headers, data=params, timeout=10)
|
||||
# MEXC expects POST parameters as query string, not in body
|
||||
response = self.session.post(url, headers=headers, params=params, timeout=10)
|
||||
else:
|
||||
logger.error(f"Unsupported method: {method}")
|
||||
return None
|
||||
|
||||
response.raise_for_status()
|
||||
data = response.json()
|
||||
if data.get('success', False):
|
||||
return data.get('data', data)
|
||||
# For successful responses, return the data directly
|
||||
# MEXC doesn't always use 'success' field for successful operations
|
||||
if response.status_code == 200:
|
||||
return data
|
||||
else:
|
||||
logger.error(f"API error: Status Code: {response.status_code}, Response: {response.text}")
|
||||
return None
|
||||
@ -170,7 +195,7 @@ class MEXCInterface(ExchangeInterface):
|
||||
|
||||
def get_account_info(self) -> Dict[str, Any]:
|
||||
"""Get account information"""
|
||||
endpoint = "/api/v3/account"
|
||||
endpoint = "account"
|
||||
result = self._send_private_request("GET", endpoint, {})
|
||||
return result if result is not None else {}
|
||||
|
||||
@ -235,9 +260,39 @@ class MEXCInterface(ExchangeInterface):
|
||||
logger.error(f"Failed to get ticker for {symbol}")
|
||||
return None
|
||||
|
||||
def get_api_symbols(self) -> List[str]:
|
||||
"""Get list of symbols supported for API trading"""
|
||||
try:
|
||||
endpoint = "selfSymbols"
|
||||
result = self._send_private_request("GET", endpoint, {})
|
||||
if result and 'data' in result:
|
||||
return result['data']
|
||||
elif isinstance(result, list):
|
||||
return result
|
||||
else:
|
||||
logger.warning(f"Unexpected response format for API symbols: {result}")
|
||||
return []
|
||||
except Exception as e:
|
||||
logger.error(f"Error getting API symbols: {e}")
|
||||
return []
|
||||
|
||||
def is_symbol_supported(self, symbol: str) -> bool:
|
||||
"""Check if a symbol is supported for API trading"""
|
||||
formatted_symbol = self._format_spot_symbol(symbol)
|
||||
supported_symbols = self.get_api_symbols()
|
||||
return formatted_symbol in supported_symbols
|
||||
|
||||
def place_order(self, symbol: str, side: str, order_type: str, quantity: float, price: Optional[float] = None) -> Dict[str, Any]:
|
||||
"""Place a new order on MEXC."""
|
||||
formatted_symbol = self._format_spot_symbol(symbol)
|
||||
|
||||
# Check if symbol is supported for API trading
|
||||
if not self.is_symbol_supported(symbol):
|
||||
supported_symbols = self.get_api_symbols()
|
||||
logger.error(f"Symbol {formatted_symbol} is not supported for API trading")
|
||||
logger.info(f"Supported symbols include: {supported_symbols[:10]}...") # Show first 10
|
||||
return {}
|
||||
|
||||
endpoint = "order"
|
||||
|
||||
params: Dict[str, Any] = {
|
||||
|
@ -1,285 +1,15 @@
|
||||
{
|
||||
"example_cnn": [
|
||||
{
|
||||
"checkpoint_id": "example_cnn_20250624_213913",
|
||||
"model_name": "example_cnn",
|
||||
"model_type": "cnn",
|
||||
"file_path": "NN\\models\\saved\\example_cnn\\example_cnn_20250624_213913.pt",
|
||||
"created_at": "2025-06-24T21:39:13.559926",
|
||||
"file_size_mb": 0.0797882080078125,
|
||||
"performance_score": 65.67219525381417,
|
||||
"accuracy": 0.28019601724789606,
|
||||
"loss": 1.9252885885630378,
|
||||
"val_accuracy": 0.21531048803825983,
|
||||
"val_loss": 1.953166686238386,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": 1,
|
||||
"training_time_hours": 0.1,
|
||||
"total_parameters": 20163,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "example_cnn_20250624_213913",
|
||||
"model_name": "example_cnn",
|
||||
"model_type": "cnn",
|
||||
"file_path": "NN\\models\\saved\\example_cnn\\example_cnn_20250624_213913.pt",
|
||||
"created_at": "2025-06-24T21:39:13.563368",
|
||||
"file_size_mb": 0.0797882080078125,
|
||||
"performance_score": 85.85617724870231,
|
||||
"accuracy": 0.3797766367576808,
|
||||
"loss": 1.738881079808816,
|
||||
"val_accuracy": 0.31375868989071576,
|
||||
"val_loss": 1.758474336328537,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": 2,
|
||||
"training_time_hours": 0.2,
|
||||
"total_parameters": 20163,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "example_cnn_20250624_213913",
|
||||
"model_name": "example_cnn",
|
||||
"model_type": "cnn",
|
||||
"file_path": "NN\\models\\saved\\example_cnn\\example_cnn_20250624_213913.pt",
|
||||
"created_at": "2025-06-24T21:39:13.566494",
|
||||
"file_size_mb": 0.0797882080078125,
|
||||
"performance_score": 96.86696983784515,
|
||||
"accuracy": 0.41565501055141396,
|
||||
"loss": 1.731468873500252,
|
||||
"val_accuracy": 0.38848400580514414,
|
||||
"val_loss": 1.8154629243104177,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": 3,
|
||||
"training_time_hours": 0.30000000000000004,
|
||||
"total_parameters": 20163,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "example_cnn_20250624_213913",
|
||||
"model_name": "example_cnn",
|
||||
"model_type": "cnn",
|
||||
"file_path": "NN\\models\\saved\\example_cnn\\example_cnn_20250624_213913.pt",
|
||||
"created_at": "2025-06-24T21:39:13.569547",
|
||||
"file_size_mb": 0.0797882080078125,
|
||||
"performance_score": 106.29887197896815,
|
||||
"accuracy": 0.4639872237832544,
|
||||
"loss": 1.4731813440281318,
|
||||
"val_accuracy": 0.4291565645756503,
|
||||
"val_loss": 1.5423255128941882,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": 4,
|
||||
"training_time_hours": 0.4,
|
||||
"total_parameters": 20163,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "example_cnn_20250624_213913",
|
||||
"model_name": "example_cnn",
|
||||
"model_type": "cnn",
|
||||
"file_path": "NN\\models\\saved\\example_cnn\\example_cnn_20250624_213913.pt",
|
||||
"created_at": "2025-06-24T21:39:13.575375",
|
||||
"file_size_mb": 0.0797882080078125,
|
||||
"performance_score": 115.87168812846218,
|
||||
"accuracy": 0.5256293272461906,
|
||||
"loss": 1.3264778472364203,
|
||||
"val_accuracy": 0.46011511860837684,
|
||||
"val_loss": 1.3762786097581432,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": 5,
|
||||
"training_time_hours": 0.5,
|
||||
"total_parameters": 20163,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
}
|
||||
],
|
||||
"example_manual": [
|
||||
{
|
||||
"checkpoint_id": "example_manual_20250624_213913",
|
||||
"model_name": "example_manual",
|
||||
"model_type": "cnn",
|
||||
"file_path": "NN\\models\\saved\\example_manual\\example_manual_20250624_213913.pt",
|
||||
"created_at": "2025-06-24T21:39:13.578488",
|
||||
"file_size_mb": 0.0018634796142578125,
|
||||
"performance_score": 186.07000000000002,
|
||||
"accuracy": 0.85,
|
||||
"loss": 0.45,
|
||||
"val_accuracy": 0.82,
|
||||
"val_loss": 0.48,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": 25,
|
||||
"training_time_hours": 2.5,
|
||||
"total_parameters": 33,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
}
|
||||
],
|
||||
"extrema_trainer": [
|
||||
{
|
||||
"checkpoint_id": "extrema_trainer_20250624_221645",
|
||||
"model_name": "extrema_trainer",
|
||||
"model_type": "extrema_trainer",
|
||||
"file_path": "NN\\models\\saved\\extrema_trainer\\extrema_trainer_20250624_221645.pt",
|
||||
"created_at": "2025-06-24T22:16:45.728299",
|
||||
"file_size_mb": 0.0013427734375,
|
||||
"performance_score": 0.1,
|
||||
"accuracy": 0.0,
|
||||
"loss": null,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "extrema_trainer_20250624_221915",
|
||||
"model_name": "extrema_trainer",
|
||||
"model_type": "extrema_trainer",
|
||||
"file_path": "NN\\models\\saved\\extrema_trainer\\extrema_trainer_20250624_221915.pt",
|
||||
"created_at": "2025-06-24T22:19:15.325368",
|
||||
"file_size_mb": 0.0013427734375,
|
||||
"performance_score": 0.1,
|
||||
"accuracy": 0.0,
|
||||
"loss": null,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "extrema_trainer_20250624_222303",
|
||||
"model_name": "extrema_trainer",
|
||||
"model_type": "extrema_trainer",
|
||||
"file_path": "NN\\models\\saved\\extrema_trainer\\extrema_trainer_20250624_222303.pt",
|
||||
"created_at": "2025-06-24T22:23:03.283194",
|
||||
"file_size_mb": 0.0013427734375,
|
||||
"performance_score": 0.1,
|
||||
"accuracy": 0.0,
|
||||
"loss": null,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "extrema_trainer_20250625_105812",
|
||||
"model_name": "extrema_trainer",
|
||||
"model_type": "extrema_trainer",
|
||||
"file_path": "NN\\models\\saved\\extrema_trainer\\extrema_trainer_20250625_105812.pt",
|
||||
"created_at": "2025-06-25T10:58:12.424290",
|
||||
"file_size_mb": 0.0013427734375,
|
||||
"performance_score": 0.1,
|
||||
"accuracy": 0.0,
|
||||
"loss": null,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "extrema_trainer_20250625_110836",
|
||||
"model_name": "extrema_trainer",
|
||||
"model_type": "extrema_trainer",
|
||||
"file_path": "NN\\models\\saved\\extrema_trainer\\extrema_trainer_20250625_110836.pt",
|
||||
"created_at": "2025-06-25T11:08:36.772996",
|
||||
"file_size_mb": 0.0013427734375,
|
||||
"performance_score": 0.1,
|
||||
"accuracy": 0.0,
|
||||
"loss": null,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
}
|
||||
],
|
||||
"dqn_agent": [
|
||||
{
|
||||
"checkpoint_id": "dqn_agent_20250627_030115",
|
||||
"model_name": "dqn_agent",
|
||||
"model_type": "dqn",
|
||||
"file_path": "models\\saved\\dqn_agent\\dqn_agent_20250627_030115.pt",
|
||||
"created_at": "2025-06-27T03:01:15.021842",
|
||||
"file_size_mb": 57.57266807556152,
|
||||
"performance_score": 95.0,
|
||||
"accuracy": 0.85,
|
||||
"loss": 0.0145,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
}
|
||||
],
|
||||
"enhanced_cnn": [
|
||||
{
|
||||
"checkpoint_id": "enhanced_cnn_20250627_030115",
|
||||
"model_name": "enhanced_cnn",
|
||||
"model_type": "cnn",
|
||||
"file_path": "models\\saved\\enhanced_cnn\\enhanced_cnn_20250627_030115.pt",
|
||||
"created_at": "2025-06-27T03:01:15.024856",
|
||||
"file_size_mb": 0.7184391021728516,
|
||||
"performance_score": 92.0,
|
||||
"accuracy": 0.88,
|
||||
"loss": 0.0187,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
}
|
||||
],
|
||||
"decision": [
|
||||
{
|
||||
"checkpoint_id": "decision_20250702_083032",
|
||||
"checkpoint_id": "decision_20250704_002853",
|
||||
"model_name": "decision",
|
||||
"model_type": "decision_fusion",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250702_083032.pt",
|
||||
"created_at": "2025-07-02T08:30:32.225869",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250704_002853.pt",
|
||||
"created_at": "2025-07-04T00:28:53.963706",
|
||||
"file_size_mb": 0.06720924377441406,
|
||||
"performance_score": 102.79972716525019,
|
||||
"performance_score": 102.79960449231176,
|
||||
"accuracy": null,
|
||||
"loss": 2.7283549419721e-06,
|
||||
"loss": 3.9550925251065546e-06,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
@ -291,15 +21,15 @@
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "decision_20250702_082925",
|
||||
"checkpoint_id": "decision_20250704_002524",
|
||||
"model_name": "decision",
|
||||
"model_type": "decision_fusion",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250702_082925.pt",
|
||||
"created_at": "2025-07-02T08:29:25.899383",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250704_002524.pt",
|
||||
"created_at": "2025-07-04T00:25:24.871025",
|
||||
"file_size_mb": 0.06720924377441406,
|
||||
"performance_score": 102.7997148991013,
|
||||
"performance_score": 102.79956403304311,
|
||||
"accuracy": null,
|
||||
"loss": 2.8510171153430164e-06,
|
||||
"loss": 4.3596885756106274e-06,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
@ -311,15 +41,15 @@
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "decision_20250702_082924",
|
||||
"checkpoint_id": "decision_20250704_002845",
|
||||
"model_name": "decision",
|
||||
"model_type": "decision_fusion",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250702_082924.pt",
|
||||
"created_at": "2025-07-02T08:29:24.538886",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250704_002845.pt",
|
||||
"created_at": "2025-07-04T00:28:45.968378",
|
||||
"file_size_mb": 0.06720924377441406,
|
||||
"performance_score": 102.79971291710027,
|
||||
"performance_score": 102.79955325642156,
|
||||
"accuracy": null,
|
||||
"loss": 2.8708372390440218e-06,
|
||||
"loss": 4.467455742483496e-06,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
@ -331,15 +61,15 @@
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "decision_20250702_082925",
|
||||
"checkpoint_id": "decision_20250704_002527",
|
||||
"model_name": "decision",
|
||||
"model_type": "decision_fusion",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250702_082925.pt",
|
||||
"created_at": "2025-07-02T08:29:25.218718",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250704_002527.pt",
|
||||
"created_at": "2025-07-04T00:25:27.298202",
|
||||
"file_size_mb": 0.06720924377441406,
|
||||
"performance_score": 102.79971274601752,
|
||||
"performance_score": 102.79954341144796,
|
||||
"accuracy": null,
|
||||
"loss": 2.87254807635711e-06,
|
||||
"loss": 4.5659063679132875e-06,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
@ -351,117 +81,15 @@
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "decision_20250702_082925",
|
||||
"checkpoint_id": "decision_20250704_021057",
|
||||
"model_name": "decision",
|
||||
"model_type": "decision_fusion",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250702_082925.pt",
|
||||
"created_at": "2025-07-02T08:29:25.332228",
|
||||
"file_path": "NN\\models\\saved\\decision\\decision_20250704_021057.pt",
|
||||
"created_at": "2025-07-04T02:10:57.474433",
|
||||
"file_size_mb": 0.06720924377441406,
|
||||
"performance_score": 102.79971263447665,
|
||||
"performance_score": 102.79953923346461,
|
||||
"accuracy": null,
|
||||
"loss": 2.873663491419011e-06,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
}
|
||||
],
|
||||
"cob_rl": [
|
||||
{
|
||||
"checkpoint_id": "cob_rl_20250702_004145",
|
||||
"model_name": "cob_rl",
|
||||
"model_type": "cob_rl",
|
||||
"file_path": "NN\\models\\saved\\cob_rl\\cob_rl_20250702_004145.pt",
|
||||
"created_at": "2025-07-02T00:41:45.481742",
|
||||
"file_size_mb": 0.001003265380859375,
|
||||
"performance_score": 9.644,
|
||||
"accuracy": null,
|
||||
"loss": 0.356,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "cob_rl_20250702_004315",
|
||||
"model_name": "cob_rl",
|
||||
"model_type": "cob_rl",
|
||||
"file_path": "NN\\models\\saved\\cob_rl\\cob_rl_20250702_004315.pt",
|
||||
"created_at": "2025-07-02T00:43:15.996943",
|
||||
"file_size_mb": 0.001003265380859375,
|
||||
"performance_score": 9.644,
|
||||
"accuracy": null,
|
||||
"loss": 0.356,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "cob_rl_20250702_004446",
|
||||
"model_name": "cob_rl",
|
||||
"model_type": "cob_rl",
|
||||
"file_path": "NN\\models\\saved\\cob_rl\\cob_rl_20250702_004446.pt",
|
||||
"created_at": "2025-07-02T00:44:46.656201",
|
||||
"file_size_mb": 0.001003265380859375,
|
||||
"performance_score": 9.644,
|
||||
"accuracy": null,
|
||||
"loss": 0.356,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "cob_rl_20250702_004617",
|
||||
"model_name": "cob_rl",
|
||||
"model_type": "cob_rl",
|
||||
"file_path": "NN\\models\\saved\\cob_rl\\cob_rl_20250702_004617.pt",
|
||||
"created_at": "2025-07-02T00:46:17.380509",
|
||||
"file_size_mb": 0.001003265380859375,
|
||||
"performance_score": 9.644,
|
||||
"accuracy": null,
|
||||
"loss": 0.356,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
"pnl": null,
|
||||
"epoch": null,
|
||||
"training_time_hours": null,
|
||||
"total_parameters": null,
|
||||
"wandb_run_id": null,
|
||||
"wandb_artifact_name": null
|
||||
},
|
||||
{
|
||||
"checkpoint_id": "cob_rl_20250702_004712",
|
||||
"model_name": "cob_rl",
|
||||
"model_type": "cob_rl",
|
||||
"file_path": "NN\\models\\saved\\cob_rl\\cob_rl_20250702_004712.pt",
|
||||
"created_at": "2025-07-02T00:47:12.447176",
|
||||
"file_size_mb": 0.001003265380859375,
|
||||
"performance_score": 9.644,
|
||||
"accuracy": null,
|
||||
"loss": 0.356,
|
||||
"loss": 4.607686584533001e-06,
|
||||
"val_accuracy": null,
|
||||
"val_loss": null,
|
||||
"reward": null,
|
||||
|
Reference in New Issue
Block a user