From 336a55161794c6fccd01737dc386111308e69e58 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 26 Nov 2025 08:24:15 +0800 Subject: [PATCH] update --- FactorSimulator.py | 302 ++++++++++++++---- alpha.txt | 81 +++-- import_alpha_txt.py | 148 +++++++++ .../fail/fail_results_1764034041.json | 9 - .../fail/fail_results_1764035934.json | 100 ------ .../fail/fail_results_1764037554.json | 65 ---- .../fail/fail_results_1764039167.json | 51 --- .../fail/fail_results_1764050897.json | 16 - .../fail/fail_results_1764054880.json | 9 - .../fail/fail_results_1764057125.json | 9 - .../fail/fail_results_1764058900.json | 37 --- .../success/success_results_1764035934.json | 37 --- .../success/success_results_1764037554.json | 79 ----- .../success/success_results_1764039167.json | 93 ------ .../success/success_results_1764040209.json | 65 ---- .../success/success_results_1764043404.json | 107 ------- .../success/success_results_1764050897.json | 128 -------- .../success/success_results_1764054880.json | 135 -------- .../success/success_results_1764057125.json | 135 -------- .../success/success_results_1764058900.json | 107 ------- 20 files changed, 452 insertions(+), 1261 deletions(-) create mode 100644 import_alpha_txt.py delete mode 100644 simulator_result/fail/fail_results_1764034041.json delete mode 100644 simulator_result/fail/fail_results_1764035934.json delete mode 100644 simulator_result/fail/fail_results_1764037554.json delete mode 100644 simulator_result/fail/fail_results_1764039167.json delete mode 100644 simulator_result/fail/fail_results_1764050897.json delete mode 100644 simulator_result/fail/fail_results_1764054880.json delete mode 100644 simulator_result/fail/fail_results_1764057125.json delete mode 100644 simulator_result/fail/fail_results_1764058900.json delete mode 100644 simulator_result/success/success_results_1764035934.json delete mode 100644 simulator_result/success/success_results_1764037554.json delete mode 100644 simulator_result/success/success_results_1764039167.json delete mode 100644 simulator_result/success/success_results_1764040209.json delete mode 100644 simulator_result/success/success_results_1764043404.json delete mode 100644 simulator_result/success/success_results_1764050897.json delete mode 100644 simulator_result/success/success_results_1764054880.json delete mode 100644 simulator_result/success/success_results_1764057125.json delete mode 100644 simulator_result/success/success_results_1764058900.json diff --git a/FactorSimulator.py b/FactorSimulator.py index e3526f4..db0e221 100644 --- a/FactorSimulator.py +++ b/FactorSimulator.py @@ -3,14 +3,188 @@ import os import time import json import httpx +import psycopg2 from httpx import BasicAuth +class DatabaseManager: + def __init__(self): + self.connection = None + self.database_name = "alpha" + self.init_database() + + def create_database(self): + """创建数据库(如果不存在)""" + try: + # 先连接到默认的postgres数据库来创建alpha数据库 + conn = psycopg2.connect( + host="localhost", + port="5432", + database="postgres", + user="jack", + password="aaaAAA111" + ) + conn.autocommit = True + cursor = conn.cursor() + + # 检查数据库是否存在 + cursor.execute("SELECT 1 FROM pg_catalog.pg_database WHERE datname = %s", (self.database_name,)) + exists = cursor.fetchone() + + if not exists: + cursor.execute(f"CREATE DATABASE {self.database_name}") + print(f"数据库 {self.database_name} 创建成功") + else: + print(f"数据库 {self.database_name} 已存在") + + cursor.close() + conn.close() + + except Exception as e: + print(f"创建数据库时出错: {e}") + raise + + def get_connection(self): + """获取数据库连接""" + if self.connection is None or self.connection.closed: + self.connection = psycopg2.connect( + host="localhost", + port="5432", + database=self.database_name, + user="jack", + password="aaaAAA111" + ) + return self.connection + + def init_database(self): + """初始化数据库和表结构""" + # 先创建数据库 + self.create_database() + + # 然后连接到此数据库创建表 + conn = self.get_connection() + cursor = conn.cursor() + + # 创建 alpha_prepare 表 + cursor.execute(''' + CREATE TABLE IF NOT EXISTS alpha_prepare + ( + id + SERIAL + PRIMARY + KEY, + alpha + TEXT + NOT + NULL + UNIQUE, + unused + BOOLEAN + NOT + NULL + DEFAULT + TRUE, + created_time + TIMESTAMP + DEFAULT + CURRENT_TIMESTAMP + ) + ''') + + # 创建 simulation 表 + cursor.execute(''' + CREATE TABLE IF NOT EXISTS simulation + ( + id + SERIAL + PRIMARY + KEY, + expression + TEXT + NOT + NULL, + time_consuming + REAL + NOT + NULL, + status + TEXT + NOT + NULL, + timestamp + TEXT + NOT + NULL, + alpha_id + TEXT, + message + TEXT, + created_time + TIMESTAMP + DEFAULT + CURRENT_TIMESTAMP + ) + ''') + + conn.commit() + print(f"数据库 {self.database_name} 表结构初始化完成") + + def get_unused_alpha(self): + """获取所有未使用的alpha表达式""" + conn = self.get_connection() + cursor = conn.cursor() + + cursor.execute("SELECT alpha FROM alpha_prepare WHERE unused = TRUE") + results = cursor.fetchall() + + alpha_list = [result[0] for result in results] + return alpha_list + + def mark_alpha_used(self, alpha): + """将alpha标记为已使用""" + conn = self.get_connection() + cursor = conn.cursor() + + cursor.execute("UPDATE alpha_prepare SET unused = FALSE WHERE alpha = %s", (alpha,)) + conn.commit() + + def insert_simulation_result(self, result_data): + """插入模拟结果到simulation表""" + conn = self.get_connection() + cursor = conn.cursor() + + cursor.execute(''' + INSERT INTO simulation + (expression, time_consuming, status, timestamp, alpha_id, message) + VALUES (%s, %s, %s, %s, %s, %s) + ''', ( + result_data["expression"], + result_data["time_consuming"], + result_data["status"], + result_data["timestamp"], + result_data.get("alpha_id"), + result_data.get("message", "") + )) + + conn.commit() + + def close_connection(self): + """关闭数据库连接""" + if self.connection and not self.connection.closed: + self.connection.close() + + class AlphaSimulator: def __init__(self, credentials_file='account.txt'): self.credentials_file = credentials_file self.client = None self.brain_api_url = 'https://api.worldquantbrain.com' + self.db_manager = DatabaseManager() + + def __del__(self): + """析构函数,确保数据库连接被关闭""" + if hasattr(self, 'db_manager'): + self.db_manager.close_connection() def load_credentials(self): if not os.path.exists(self.credentials_file): @@ -33,22 +207,14 @@ class AlphaSimulator: if response.status_code == 201: print(f"登录成功!:{response.json()}") - return True + return response.json() else: print(f"登录失败: {response.json()}") - return False - - def load_alpha_list(self, file_path='alpha.txt'): - if not os.path.exists(file_path): - print(f"{file_path} 文件不存在") - with open(file_path, 'w', encoding='utf-8') as file: - file.write("") - print(f"已创建 {file_path} 文件, 请添加因子后重新运行, 一行一个因子") - return [] - - with open(file_path, 'r', encoding='utf-8') as file: - alpha_list = [line.strip() for line in file if line.strip()] + return {} + def load_alpha_list(self): + """从数据库加载未使用的alpha表达式""" + alpha_list = self.db_manager.get_unused_alpha() return alpha_list def simulate_alpha(self, expression): @@ -99,16 +265,16 @@ class AlphaSimulator: if sim_progress_resp.json().get("status") == "ERROR": result = sim_progress_resp.json().get("message", "未知错误") print(f"因子模拟失败: {result}") - return {"status": "error", "message": result} + return {"status": "err", "message": result} alpha_id = sim_progress_resp.json().get("alpha") print(f"生成的Alpha ID: {alpha_id}") - return {"status": "success", "alpha_id": alpha_id} + return {"status": "ok", "alpha_id": alpha_id} def run_batch_simulation(self, alpha_list, batch_size=3): - success_results = [] - fail_results = [] + success_count = 0 + fail_count = 0 for i in range(0, len(alpha_list), batch_size): batch = alpha_list[i:i + batch_size] @@ -121,81 +287,99 @@ class AlphaSimulator: try: result = self.simulate_alpha(expression) end_time = time.time() - time_consuming = end_time - start_time + time_consuming = round(end_time - start_time, 2) result_data = { "expression": expression, - "time_consuming": round(time_consuming, 2), + "time_consuming": time_consuming, "status": result["status"], "timestamp": time.strftime("%Y-%m-%d %H:%M:%S") } if result["status"] == "success": result_data["alpha_id"] = result["alpha_id"] - success_results.append(result_data) - print(f"✅ 模拟成功 - Alpha ID: {result['alpha_id']} - 耗时: {time_consuming:.2f}秒") + success_count += 1 + print(f"✅ 模拟成功 - Alpha ID: {result['alpha_id']} - 耗时: {time_consuming}秒") else: result_data["message"] = result.get("message", "") - fail_results.append(result_data) + fail_count += 1 print(f"❌ 模拟失败 - {result.get('message', '未知错误')}") + # 无论成功失败,都标记为已使用并保存结果到数据库 + self.db_manager.mark_alpha_used(expression) + self.db_manager.insert_simulation_result(result_data) + except Exception as e: end_time = time.time() - time_consuming = end_time - start_time + time_consuming = round(end_time - start_time, 2) error_result = { "expression": expression, - "time_consuming": round(time_consuming, 2), - "status": "error", + "time_consuming": time_consuming, + "status": "err", "message": str(e), "timestamp": time.strftime("%Y-%m-%d %H:%M:%S") } - fail_results.append(error_result) + fail_count += 1 + + # 异常情况也标记为已使用并保存结果到数据库 + self.db_manager.mark_alpha_used(expression) + self.db_manager.insert_simulation_result(error_result) + print(f"❌ 模拟异常 - {str(e)}") print(f"第 {i // batch_size + 1} 批处理完成") - self._save_results(success_results, fail_results) - return success_results, fail_results + self._print_summary(success_count, fail_count) + return success_count, fail_count - def _save_results(self, success_results, fail_results): - base_dir = 'simulator_result' - success_dir = os.path.join(base_dir, 'success') - fail_dir = os.path.join(base_dir, 'fail') - - os.makedirs(success_dir, exist_ok=True) - os.makedirs(fail_dir, exist_ok=True) - - timestamp = str(int(time.time())) - - if success_results: - success_file = os.path.join(success_dir, f"success_results_{timestamp}.json") - with open(success_file, 'w', encoding='utf-8') as f: - json.dump(success_results, f, ensure_ascii=False, indent=2) - print(f"成功结果已保存到 {success_file}") - - if fail_results: - fail_file = os.path.join(fail_dir, f"fail_results_{timestamp}.json") - with open(fail_file, 'w', encoding='utf-8') as f: - json.dump(fail_results, f, ensure_ascii=False, indent=2) - print(f"失败结果已保存到 {fail_file}") - - print(f"\n总计: 成功 {len(success_results)} 个, 失败 {len(fail_results)} 个") + def _print_summary(self, success_count, fail_count): + """打印总结信息""" + print(f"\n总计: 成功 {success_count} 个, 失败 {fail_count} 个") + print(f"所有结果已保存到 PostgreSQL 数据库 {self.db_manager.database_name} 的 simulation 表中") def main(): simulator = AlphaSimulator() - if not simulator.login(): - return + def refresh_login(): + """刷新登录token""" + login_result = simulator.login() + if not login_result: + print("登录失败,程序退出") + exit(1) + return login_result - alpha_list = simulator.load_alpha_list('alpha.txt') - if not alpha_list: - print("未找到有效的因子表达式,请检查 alpha.txt 文件") - return + # 初始登录 + login_result = refresh_login() + + while True: + try: + expiry = int(login_result['token']['expiry']) + if expiry < 1800: + print(f"Token剩余 {expiry}秒,重新登录...") + login_result = refresh_login() - print(f"共加载 {len(alpha_list)} 个因子表达式") + alpha_list = simulator.load_alpha_list() + if not alpha_list: + print("暂无待处理的alpha表达式,10分钟后重新检查...") + time.sleep(600) + continue - simulator.run_batch_simulation(alpha_list, batch_size=3) + print(f"共加载 {len(alpha_list)} 个需要模拟的因子表达式") + + success_count, fail_count = simulator.run_batch_simulation(alpha_list, batch_size=3) + print(f"本轮处理完成: 成功 {success_count} 个, 失败 {fail_count} 个") + + print("等待5分钟后继续检查...") + time.sleep(300) + + except KeyboardInterrupt: + print("\n程序被用户中断") + break + except Exception as e: + print(f"程序执行异常: {e}") + print("5秒后重试...") + time.sleep(5) if __name__ == "__main__": diff --git a/alpha.txt b/alpha.txt index 5dd95ec..34454d0 100644 --- a/alpha.txt +++ b/alpha.txt @@ -1,20 +1,61 @@ -ts_delta(ts_mean(close, 5), 10) -ts_rank(ts_corr(volume, close, 20), 5) -ts_zscore(ts_std_dev(close, 10), 20) -subtract(ts_mean(close, 10), ts_mean(close, 30)) -ts_delta(ts_arg_max(high, 20), 5) -ts_rank(ts_sum(volume, 5), 10) -ts_zscore(ts_decay_linear(close, 15), 30) -ts_corr(ts_delta(close, 1), ts_delta(volume, 1), 10) -ts_rank(ts_mean(vwap, 20), 5) -ts_delta(ts_std_dev(close, 5), 10) -ts_rank(ts_sum(market_cap, 10), 20) -ts_zscore(ts_corr(close, market_cap, 15), 30) -subtract(ts_mean(high, 5), ts_mean(low, 5)) -ts_delta(ts_rank(volume, 10), 5) -ts_mean(ts_decay_linear(close, 20), 10) -ts_rank(ts_zscore(close, 15), 5) -ts_corr(ts_delta(high, 1), ts_delta(low, 1), 10) -ts_delta(ts_mean(vwap, 10), 20) -ts_rank(ts_std_dev(volume, 5), 10) -ts_zscore(ts_sum(close, 20), 30) \ No newline at end of file +rank(ts_mean(ts_delta(close, 5), 20)) +rank(ts_corr(volume, ts_delta(close, 5), 20)) +ts_zscore(ts_std_dev(close, 20), 100) +group_rank(ts_mean(close, 20), sector) +rank(ts_delta(ts_arg_max(high, 50), 5)) +rank(ts_corr(close, vwap, 20)) +rank(ts_mean(ts_decay_linear(volume, 10), 20)) +rank(ts_delta(ts_mean(close, 10), 5)) +ts_zscore(ts_av_diff(close, 50), 100) +rank(ts_corr(ts_delta(close, 10), ts_delta(volume, 10), 20)) +group_zscore(ts_mean(close, 20), market_cap) +rank(ts_arg_min(low, 50)) +rank(ts_mean(ts_delta(ts_mean(close, 5), 10), 20)) +ts_zscore(ts_corr(close, volume, 20), 100) +rank(ts_delta(ts_std_dev(close, 20), 5)) +group_rank(ts_delta(close, 20), sector) +rank(ts_mean(close, 5) / ts_mean(close, 20)) +rank(ts_corr(high, low, 20)) +ts_zscore(ts_mean(volume, 20), 100) +rank(ts_delta(vwap, 5)) +group_neutralize(ts_zscore(ts_delta(close, 5), 20), sector)group_zscore(divide(ts_delta(volume, 3), ts_mean(volume, 10)), sector)ts_zscore(multiply(sign(ts_delta(close, 7)), sqrt(ts_std_dev(close, 7))), 14)group_neutralize(ts_av_diff(divide(close, vwap), 5), sector)ts_decay_linear(sign(ts_delta(close, 3)), 10)group_rank(divide(ts_sum(volume, 5), ts_mean(volume, 20)), sector)if_else(close > ts_mean(close, 20), multiply(ts_rank(volume, 5), sign(ts_delta(close, 1))), reverse(ts_rank(volume, 5)))ts_zscore(ts_corr(close, volume, 10), 20)group_neutralize(divide(ts_delta(high, 3), ts_delta(low, 3)), country)multiply(sign(ts_delta(close, 5)), ts_scale(market_cap, 30))ts_zscore(ts_av_diff(multiply(close, volume), 7), 14)group_zscore(ts_quantile(ts_delta(vwap, 3), 10), market_cap)ts_decay_linear(divide(ts_max(close, 5), ts_min(close, 5)), 15)group_neutralize(sign(ts_delta(ts_mean(close, 10), 5)), sector)multiply(ts_std_dev(close, 7), inverse(ts_mean(volume, 7)))ts_zscore(group_rank(divide(close, open), sector), 20)if_else(volume > ts_mean(volume, 5), ts_delta(close, 1), reverse(ts_delta(close, 1)))group_zscore(ts_covariance(close, volume, 10), country)ts_av_diff(divide(ts_sum(close, 3), ts_sum(volume, 3)), 10)group_neutralize(multiply(ts_rank(close, 7), inverse(sqrt(market_cap))), sector) +ts_rank(ts_delta(log(close), 5), 20) +reverse(rank(ts_delta(close, 10))) +ts_rank(multiply(sign(ts_delta(close, 1)), volume), 10) +reverse(ts_zscore(ts_delta(close, 5), 20)) +rank(multiply(ts_delta(close, 3), divide(volume, ts_mean(volume, 20)))) +reverse(ts_rank(ts_std_dev(log(close), 10), 20)) +ts_rank(subtract(close, vwap), 10) +rank(subtract(ts_mean(close, 20), close)) +reverse(rank(multiply(ts_delta(close, 5), ts_corr(close, volume, 20)))) +ts_rank(divide(volume, ts_mean(volume, 60)), 20) +group_neutralize(ts_rank(ts_delta(close, 5), 20), sector) +group_neutralize(rank(subtract(ts_delay(close, 5), close)), sector) +rank(multiply(subtract(ts_delay(close, 1), low), subtract(high, close))) +reverse(rank(subtract(log(market_cap), ts_mean(log(market_cap), 20)))) +ts_rank(subtract(close, ts_delay(close, 10)), 20) +rank(multiply(ts_delta(close, 1), subtract(ts_mean(volume, 20), volume))) +reverse(ts_corr(close, volume, 10)) +group_zscore(ts_delta(log(close), 3), sector) +rank(divide(subtract(high, low), add(subtract(close, open), abs(ts_delta(close, 1))))) +ts_rank(multiply(sign(ts_delta(close, 5)), subtract(volume, ts_delay(volume, 1))), 15) +-ts_delta(close,5)/ts_std_dev(close,20) +divide(ts_delta(close,10),ts_mean(volume,10)) +ts_rank(divide(high,ts_mean(close,5)),20) +ts_corr(close,volume,10) +-ts_rank(ts_std_dev(close,10),20) +multiply(sign(ts_delta(close,1)),ts_delta(volume,1)) +divide(ts_delta(vwap,5),ts_std_dev(vwap,20)) +ts_scale(close,10) +-ts_delta(divide(close,ts_mean(close,5)),3) +ts_zscore(divide(volume,ts_mean(volume,20)),10) +divide(ts_sum(close,5),ts_sum(close,20)) +-ts_rank(ts_corr(high,volume,5),10) +multiply(divide(close,vwap),log(volume)) +ts_regression(close,volume,10,0,1) +divide(ts_mean(close,5),ts_mean(close,20)) +-ts_delta(ts_rank(close,10),5) +divide(ts_product(divide(high,low),5),power(close,2)) +ts_av_diff(close,10) +multiply(sign(ts_delta(close,1)),ts_zscore(volume,10)) +group_neutralize(divide(close,ts_mean(close,5)),sector) \ No newline at end of file diff --git a/import_alpha_txt.py b/import_alpha_txt.py new file mode 100644 index 0000000..f3050e7 --- /dev/null +++ b/import_alpha_txt.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +import os +import psycopg2 + + +class AlphaTxtImporter: + def __init__(self, txt_file='alpha.txt'): + self.database_name = "alpha" + self.txt_file = txt_file + self.connection = None + + def get_connection(self): + """获取数据库连接""" + if self.connection is None or self.connection.closed: + self.connection = psycopg2.connect( + host="localhost", + port="5432", + database=self.database_name, + user="jack", + password="aaaAAA111" + ) + return self.connection + + def close_connection(self): + """关闭数据库连接""" + if self.connection and not self.connection.closed: + self.connection.close() + + def load_alpha_from_txt(self): + """从txt文件加载alpha表达式""" + if not os.path.exists(self.txt_file): + print(f"未找到 {self.txt_file} 文件") + return [] + + alpha_list = [] + with open(self.txt_file, 'r', encoding='utf-8') as file: + for line_num, line in enumerate(file, 1): + line = line.strip() + if line and not line.startswith('#'): # 跳过空行和注释行 + alpha_list.append(line) + print(f"第 {line_num} 行: {line}") + + return alpha_list + + def import_to_database(self, alpha_list): + """导入alpha表达式到数据库""" + if not alpha_list: + print("没有要导入的alpha表达式") + return 0 + + conn = self.get_connection() + cursor = conn.cursor() + + imported_count = 0 + duplicate_count = 0 + + for alpha in alpha_list: + try: + # 使用 ON CONFLICT 避免重复插入 + cursor.execute(''' + INSERT INTO alpha_prepare (alpha, unused) + VALUES (%s, %s) ON CONFLICT (alpha) DO NOTHING + ''', (alpha, True)) + + if cursor.rowcount > 0: + imported_count += 1 + print(f"✅ 导入: {alpha}") + else: + duplicate_count += 1 + print(f"⏭️ 跳过(重复): {alpha}") + + except Exception as e: + print(f"❌ 导入失败: {alpha} - 错误: {e}") + continue + + conn.commit() + cursor.close() + + return imported_count, duplicate_count + + def check_existing_data(self): + """检查数据库中已存在的数据""" + conn = self.get_connection() + cursor = conn.cursor() + + cursor.execute("SELECT COUNT(*) FROM alpha_prepare") + total_count = cursor.fetchone()[0] + + cursor.execute("SELECT COUNT(*) FROM alpha_prepare WHERE unused = TRUE") + unused_count = cursor.fetchone()[0] + + cursor.close() + + print(f"数据库统计:") + print(f" - 总alpha数量: {total_count}") + print(f" - 未使用的alpha数量: {unused_count}") + + return total_count, unused_count + + def run_import(self): + """执行导入过程""" + print(f"开始从 {self.txt_file} 导入alpha表达式到 PostgreSQL...") + + # 检查现有数据 + print("\n=== 数据库当前状态 ===") + total_count, unused_count = self.check_existing_data() + + # 加载txt文件 + print(f"\n=== 加载 {self.txt_file} ===") + alpha_list = self.load_alpha_from_txt() + print(f"从文件加载了 {len(alpha_list)} 个alpha表达式") + + if not alpha_list: + print("没有找到有效的alpha表达式,导入终止") + return + + # 导入到数据库 + print(f"\n=== 导入到数据库 ===") + imported_count, duplicate_count = self.import_to_database(alpha_list) + + # 显示结果 + print(f"\n=== 导入结果 ===") + print(f"文件中的表达式数量: {len(alpha_list)}") + print(f"成功导入: {imported_count} 条") + print(f"跳过重复: {duplicate_count} 条") + + # 再次检查数据库状态 + print(f"\n=== 导入后数据库状态 ===") + new_total_count, new_unused_count = self.check_existing_data() + print(f"新增记录: {new_total_count - total_count} 条") + print(f"新增未使用记录: {new_unused_count - unused_count} 条") + + print("\n导入完成!") + + +def main(): + # 可以指定不同的txt文件 + txt_file = 'alpha.txt' # 可以改为其他文件名 + + importer = AlphaTxtImporter(txt_file) + try: + importer.run_import() + finally: + importer.close_connection() + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764034041.json b/simulator_result/fail/fail_results_1764034041.json deleted file mode 100644 index a3d2fd3..0000000 --- a/simulator_result/fail/fail_results_1764034041.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "expression": "group_mean(ts_rank(volume, 252), industry)", - "time_consuming": 6.65, - "status": "error", - "timestamp": "2025-11-25 09:27:21", - "message": "Invalid number of inputs : 2, should be exactly 3 input(s)" - } -] \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764035934.json b/simulator_result/fail/fail_results_1764035934.json deleted file mode 100644 index 9d7a230..0000000 --- a/simulator_result/fail/fail_results_1764035934.json +++ /dev/null @@ -1,100 +0,0 @@ -[ - { - "expression": "group_rank(ts_rank(close, 10)) - group_rank(ts_rank(volume, 10))", - "time_consuming": 6.76, - "status": "error", - "timestamp": "2025-11-25 09:51:58", - "message": "Invalid number of inputs : 1, should be exactly 2 input(s)" - }, - { - "expression": "group_std(ts_returns(close, 1), 5) * -1", - "time_consuming": 6.79, - "status": "error", - "timestamp": "2025-11-25 09:53:27", - "message": "Attempted to use inaccessible or unknown operator \"group_std\"" - }, - { - "expression": "group_neutralize(ts_scale(close - vwap), sector)", - "time_consuming": 6.54, - "status": "error", - "timestamp": "2025-11-25 09:54:53", - "message": "Required attribute \"lookback\" must have a value" - }, - { - "expression": "ts_regression(volume, close, 10, 2)", - "time_consuming": 6.56, - "status": "error", - "timestamp": "2025-11-25 09:55:00", - "message": "Invalid number of inputs : 3, should be exactly 2 input(s)" - }, - { - "expression": "ts_max(ts_delta(vwap, 3), 5) - ts_min(ts_delta(vwap, 3), 5)", - "time_consuming": 6.54, - "status": "error", - "timestamp": "2025-11-25 09:55:06", - "message": "Attempted to use inaccessible or unknown operator \"ts_max\"" - }, - { - "expression": "group_rank(ts_returns(close, 1)) * group_rank(market_cap)", - "time_consuming": 12.66, - "status": "error", - "timestamp": "2025-11-25 09:55:19", - "message": "Attempted to use inaccessible or unknown operator \"ts_returns\"" - }, - { - "expression": "ts_sum(close - open, 5) / ts_std(close - open, 5)", - "time_consuming": 6.66, - "status": "error", - "timestamp": "2025-11-25 09:55:25", - "message": "Attempted to use inaccessible or unknown operator \"ts_std\"" - }, - { - "expression": "group_rank(ts_rank(volume, 5)) * group_rank(ts_rank(close, 5))", - "time_consuming": 6.58, - "status": "error", - "timestamp": "2025-11-25 09:55:32", - "message": "Invalid number of inputs : 1, should be exactly 2 input(s)" - }, - { - "expression": "ts_corr(group_rank(close), group_rank(volume), 10)", - "time_consuming": 6.52, - "status": "error", - "timestamp": "2025-11-25 09:55:39", - "message": "Invalid number of inputs : 1, should be exactly 2 input(s)" - }, - { - "expression": "group_std(ts_returns(vwap, 1), 10) * -ts_returns(close, 1)", - "time_consuming": 6.48, - "status": "error", - "timestamp": "2025-11-25 09:57:10", - "message": "Attempted to use inaccessible or unknown operator \"group_std\"" - }, - { - "expression": "ts_scale(ts_sum(volume * close, 10)) - ts_scale(ts_sum(volume, 10))", - "time_consuming": 6.51, - "status": "error", - "timestamp": "2025-11-25 09:57:16", - "message": "Required attribute \"lookback\" must have a value" - }, - { - "expression": "ts_regression(close, volume, 15, 1) * group_rank(market_cap)", - "time_consuming": 6.53, - "status": "error", - "timestamp": "2025-11-25 09:58:47", - "message": "Invalid number of inputs : 3, should be exactly 2 input(s)" - }, - { - "expression": "ts_delta(ts_mean(close, 10), 5) / ts_std(close, 10)", - "time_consuming": 6.54, - "status": "error", - "timestamp": "2025-11-25 09:58:54", - "message": "Attempted to use inaccessible or unknown operator \"ts_std\"" - }, - { - "expression": "group_rank(ts_returns(close, 5)) - group_rank(ts_returns(volume, 5))", - "time_consuming": 0.53, - "status": "error", - "timestamp": "2025-11-25 09:58:54", - "message": "Attempted to use inaccessible or unknown operator \"ts_returns\"" - } -] \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764037554.json b/simulator_result/fail/fail_results_1764037554.json deleted file mode 100644 index 16b3833..0000000 --- a/simulator_result/fail/fail_results_1764037554.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "expression": "ts_zscore(close, 20) / ts_std(close, 20)", - "time_consuming": 6.54, - "status": "error", - "timestamp": "2025-11-25 10:06:20", - "message": "Attempted to use inaccessible or unknown operator \"ts_std\"" - }, - { - "expression": "ts_corr(volume, close, 10) * ts_std(close, 5)", - "time_consuming": 6.5, - "status": "error", - "timestamp": "2025-11-25 10:08:00", - "message": "Attempted to use inaccessible or unknown operator \"ts_std\"" - }, - { - "expression": "group_zscore(ts_max(high, 20) - close, market_cap)", - "time_consuming": 25.63, - "status": "error", - "timestamp": "2025-11-25 10:09:46", - "message": "Attempted to use inaccessible or unknown operator \"ts_max\"" - }, - { - "expression": "ts_min(low, 5) / ts_max(high, 5) - 1", - "time_consuming": 6.57, - "status": "error", - "timestamp": "2025-11-25 10:11:17", - "message": "Attempted to use inaccessible or unknown operator \"ts_min\"" - }, - { - "expression": "group_rank(ts_std(close, 10), sector) * ts_mean(volume, 5)", - "time_consuming": 18.7, - "status": "error", - "timestamp": "2025-11-25 10:11:36", - "message": "Attempted to use inaccessible or unknown operator \"ts_std\"" - }, - { - "expression": "ts_slope(close, 15) * ts_std(volume, 5)", - "time_consuming": 6.51, - "status": "error", - "timestamp": "2025-11-25 10:13:07", - "message": "Attempted to use inaccessible or unknown operator \"ts_slope\"" - }, - { - "expression": "group_zscore(ts_max(high, 10) - ts_min(low, 10), country)", - "time_consuming": 6.51, - "status": "error", - "timestamp": "2025-11-25 10:13:14", - "message": "Attempted to use inaccessible or unknown operator \"ts_max\"" - }, - { - "expression": "group_rank(ts_zscore(close, 10), market_cap)", - "time_consuming": 6.67, - "status": "error", - "timestamp": "2025-11-25 10:17:02", - "message": "Attempted to use unknown variable \"market_cap\"" - }, - { - "expression": "ts_max(high, 10) / ts_min(low, 10) - 1", - "time_consuming": 6.68, - "status": "error", - "timestamp": "2025-11-25 10:23:01", - "message": "Attempted to use inaccessible or unknown operator \"ts_max\"" - } -] \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764039167.json b/simulator_result/fail/fail_results_1764039167.json deleted file mode 100644 index be3ebea..0000000 --- a/simulator_result/fail/fail_results_1764039167.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "expression": "-ts_argmax(high, 20) * ts_rank(close, 10)", - "time_consuming": 6.49, - "status": "error", - "timestamp": "2025-11-25 10:36:11", - "message": "Attempted to use inaccessible or unknown operator \"ts_argmax\"" - }, - { - "expression": "ts_mean((close - open) / (high - low + 1e-6), 10)", - "time_consuming": 2.37, - "status": "error", - "timestamp": "2025-11-25 10:36:13", - "message": "Unexpected character 'e' near \"- low + 1e-6), 10)\"" - }, - { - "expression": "-ts_zscore(ts_mean(volume, 20), country)", - "time_consuming": 6.55, - "status": "error", - "timestamp": "2025-11-25 10:40:41", - "message": "Got invalid value for attribute \"lookback\", must be constant or string" - }, - { - "expression": "(close - ts_min(low, 10)) / (ts_max(high, 10) - ts_min(low, 10) + 1e-6)", - "time_consuming": 6.49, - "status": "error", - "timestamp": "2025-11-25 10:40:48", - "message": "Unexpected character 'e' near \"w, 10) + 1e-6)\"" - }, - { - "expression": "group_rank(ts_corr(close, ts_delay(close, 5), 60), sector)", - "time_consuming": 66.39, - "status": "error", - "message": "The read operation timed out", - "timestamp": "2025-11-25 10:43:13" - }, - { - "expression": "-ts_product(ts_rank(close, 10), ts_rank(volume, 10))", - "time_consuming": 7.27, - "status": "error", - "timestamp": "2025-11-25 10:43:20", - "message": "Got invalid value for attribute \"lookback\", must be constant or string" - }, - { - "expression": "group_zscore(ts_argmin(low, 20), sector) * -1", - "time_consuming": 6.86, - "status": "error", - "timestamp": "2025-11-25 10:46:54", - "message": "Attempted to use inaccessible or unknown operator \"ts_argmin\"" - } -] \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764050897.json b/simulator_result/fail/fail_results_1764050897.json deleted file mode 100644 index cd85d96..0000000 --- a/simulator_result/fail/fail_results_1764050897.json +++ /dev/null @@ -1,16 +0,0 @@ -[ - { - "expression": "ts_rank(ts_backfill(volume, 5, 1), 15)", - "time_consuming": 88.18, - "status": "error", - "timestamp": "2025-11-25 13:59:21", - "message": "Invalid number of inputs : 2, should be exactly 1 input(s)" - }, - { - "expression": "ts_rank(ts_delta(ts_mean(close, 5), 10), 20)", - "time_consuming": 11.3, - "status": "error", - "message": "The read operation timed out", - "timestamp": "2025-11-25 14:08:17" - } -] \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764054880.json b/simulator_result/fail/fail_results_1764054880.json deleted file mode 100644 index a051642..0000000 --- a/simulator_result/fail/fail_results_1764054880.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "expression": "group_zscore(ts_delta(close, 5), sector)]", - "time_consuming": 6.88, - "status": "error", - "timestamp": "2025-11-25 15:05:03", - "message": "Unexpected character ']' near \"), sector)]\"" - } -] \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764057125.json b/simulator_result/fail/fail_results_1764057125.json deleted file mode 100644 index 8496e01..0000000 --- a/simulator_result/fail/fail_results_1764057125.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "expression": "reverse(divide(ts_covariance(ts_rank(close,10),ts_rank(volume,20),20),add(ts_std_dev(volume,20),1e-5)))", - "time_consuming": 6.7, - "status": "error", - "timestamp": "2025-11-25 15:24:00", - "message": "Unexpected character 'e' near \"lume,20),1e-5)))\"" - } -] \ No newline at end of file diff --git a/simulator_result/fail/fail_results_1764058900.json b/simulator_result/fail/fail_results_1764058900.json deleted file mode 100644 index 99aa793..0000000 --- a/simulator_result/fail/fail_results_1764058900.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "expression": "ts_rank(divide(close - vwap, ts_std_dev(close, 20)), 10) - ts_rank(volume, 10)", - "time_consuming": 98.86, - "status": "error", - "message": "The read operation timed out", - "timestamp": "2025-11-25 16:01:34" - }, - { - "expression": "rank(ts_delta(log(volume), 3)) * rank(divide(close - open, open))", - "time_consuming": 29.52, - "status": "error", - "message": "The read operation timed out", - "timestamp": "2025-11-25 16:08:15" - }, - { - "expression": "group_zscore(ts_regression(close, ts_mean(close, 10), 20, 0, 0), sector) - rank(ts_std_dev(volume, 10))", - "time_consuming": 7.69, - "status": "error", - "timestamp": "2025-11-25 16:09:50", - "message": "Got invalid value \"0\" for attribute \"lookback\", should be a positive integer" - }, - { - "expression": "rank(divide(close - ts_min(low, 20), ts_max(high, 20) - ts_min(low, 20))) - ts_rank(volume, 10)", - "time_consuming": 6.82, - "status": "error", - "timestamp": "2025-11-25 16:16:40", - "message": "Attempted to use inaccessible or unknown operator \"ts_min\"" - }, - { - "expression": "if_else(close > vwap, rank(ts_corr(high, volume, 5)), reverse(rank(ts_corr(low, volume, 5))))", - "time_consuming": 5.0, - "status": "error", - "message": "The read operation timed out", - "timestamp": "2025-11-25 16:18:41" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764035934.json b/simulator_result/success/success_results_1764035934.json deleted file mode 100644 index afe3762..0000000 --- a/simulator_result/success/success_results_1764035934.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "expression": "ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 10)", - "time_consuming": 90.78, - "status": "success", - "timestamp": "2025-11-25 09:51:51", - "alpha_id": "P0draRVp" - }, - { - "expression": "ts_rank(ts_decay_linear(close - open, 10), 5)", - "time_consuming": 82.31, - "status": "success", - "timestamp": "2025-11-25 09:53:20", - "alpha_id": "3qZYZLMQ" - }, - { - "expression": "ts_rank(ts_covariance(high, volume, 10), 5)", - "time_consuming": 79.62, - "status": "success", - "timestamp": "2025-11-25 09:54:46", - "alpha_id": "d5A8Alzw" - }, - { - "expression": "ts_rank(ts_decay_linear(high - low, 15), 10)", - "time_consuming": 84.54, - "status": "success", - "timestamp": "2025-11-25 09:57:03", - "alpha_id": "d5A8AWmE" - }, - { - "expression": "group_neutralize(ts_rank(close, 10), country)", - "time_consuming": 84.58, - "status": "success", - "timestamp": "2025-11-25 09:58:41", - "alpha_id": "Grp0p530" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764037554.json b/simulator_result/success/success_results_1764037554.json deleted file mode 100644 index 353774d..0000000 --- a/simulator_result/success/success_results_1764037554.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "expression": "group_rank(ts_mean(close, 5) / ts_mean(close, 20), sector)", - "time_consuming": 93.45, - "status": "success", - "timestamp": "2025-11-25 10:07:53", - "alpha_id": "MPolAmaM" - }, - { - "expression": "ts_mean(high - low, 10) / ts_mean(close, 10)", - "time_consuming": 80.68, - "status": "success", - "timestamp": "2025-11-25 10:09:20", - "alpha_id": "pwAJgVx6" - }, - { - "expression": "ts_mean(close / vwap, 5) - ts_mean(close / vwap, 20)", - "time_consuming": 84.65, - "status": "success", - "timestamp": "2025-11-25 10:11:11", - "alpha_id": "A1MJdQxe" - }, - { - "expression": "ts_mean(close, 3) - ts_mean(close, 10)", - "time_consuming": 85.02, - "status": "success", - "timestamp": "2025-11-25 10:13:01", - "alpha_id": "ZYewLv70" - }, - { - "expression": "ts_mean(volume / ts_mean(volume, 20), 5)", - "time_consuming": 108.98, - "status": "success", - "timestamp": "2025-11-25 10:15:03", - "alpha_id": "O0Pm5YvR" - }, - { - "expression": "ts_corr(close, volume, 5) * ts_mean(close, 3)", - "time_consuming": 112.42, - "status": "success", - "timestamp": "2025-11-25 10:16:55", - "alpha_id": "akq2JdN6" - }, - { - "expression": "ts_mean(high - close, 5) / ts_mean(close - low, 5)", - "time_consuming": 113.83, - "status": "success", - "timestamp": "2025-11-25 10:18:56", - "alpha_id": "rKv6kNkJ" - }, - { - "expression": "ts_mean(close / ts_mean(close, 20), 3) - 1", - "time_consuming": 132.39, - "status": "success", - "timestamp": "2025-11-25 10:21:08", - "alpha_id": "78Eqg7JZ" - }, - { - "expression": "group_zscore(ts_mean(volume, 10), sector) * ts_zscore(close, 5)", - "time_consuming": 105.74, - "status": "success", - "timestamp": "2025-11-25 10:22:54", - "alpha_id": "Wj6wKX1o" - }, - { - "expression": "ts_mean(close > ts_mean(close, 5), 3) - ts_mean(close < ts_mean(close, 5), 3)", - "time_consuming": 85.48, - "status": "success", - "timestamp": "2025-11-25 10:24:26", - "alpha_id": "88dkgp2q" - }, - { - "expression": "ts_mean(vwap / close, 10) - ts_mean(vwap / close, 30)", - "time_consuming": 88.46, - "status": "success", - "timestamp": "2025-11-25 10:25:54", - "alpha_id": "KPjYx5Jl" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764039167.json b/simulator_result/success/success_results_1764039167.json deleted file mode 100644 index b6ecff4..0000000 --- a/simulator_result/success/success_results_1764039167.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "expression": "ts_rank(ts_mean(close, 10), 20)", - "time_consuming": 78.74, - "status": "success", - "timestamp": "2025-11-25 10:30:02", - "alpha_id": "1YQVVomk" - }, - { - "expression": "-ts_corr(close, volume, 20)", - "time_consuming": 71.61, - "status": "success", - "timestamp": "2025-11-25 10:31:13", - "alpha_id": "mLM22jQx" - }, - { - "expression": "ts_delta(close, 5) / ts_delay(close, 5)", - "time_consuming": 194.4, - "status": "success", - "timestamp": "2025-11-25 10:34:28", - "alpha_id": "MPolqMjz" - }, - { - "expression": "group_zscore(ts_rank(volume, 60), sector)", - "time_consuming": 96.81, - "status": "success", - "timestamp": "2025-11-25 10:36:04", - "alpha_id": "LLAbqqka" - }, - { - "expression": "-ts_corr(vwap, volume, 5) * ts_rank(volume, 20)", - "time_consuming": 94.52, - "status": "success", - "timestamp": "2025-11-25 10:37:48", - "alpha_id": "bl52VdMp" - }, - { - "expression": "group_neutralize(ts_delta(log(close), 1), sector)", - "time_consuming": 85.6, - "status": "success", - "timestamp": "2025-11-25 10:39:13", - "alpha_id": "d5A8g92g" - }, - { - "expression": "ts_rank(ts_std_dev(close / ts_delay(close, 1) - 1, 20), 60)", - "time_consuming": 81.19, - "status": "success", - "timestamp": "2025-11-25 10:40:35", - "alpha_id": "rKv6EMnJ" - }, - { - "expression": "ts_decay_linear(ts_rank(volume, 20), 10) - ts_rank(close, 20)", - "time_consuming": 78.57, - "status": "success", - "timestamp": "2025-11-25 10:42:06", - "alpha_id": "mLM2A3V6" - }, - { - "expression": "ts_rank((vwap - close) / ts_mean(vwap - close, 20), 60)", - "time_consuming": 90.58, - "status": "success", - "timestamp": "2025-11-25 10:44:50", - "alpha_id": "kq2kX3Gk" - }, - { - "expression": "-ts_delta(ts_mean(volume, 60), 10) / ts_mean(volume, 60)", - "time_consuming": 117.0, - "status": "success", - "timestamp": "2025-11-25 10:46:47", - "alpha_id": "MPolXd2r" - }, - { - "expression": "ts_rank(ts_corr(ts_rank(close, 10), ts_rank(volume, 10), 5), 20)", - "time_consuming": 151.35, - "status": "success", - "timestamp": "2025-11-25 10:49:26", - "alpha_id": "vR3nzM5A" - }, - { - "expression": "(close / ts_delay(close, 10) - 1) * ts_rank(volume, 20)", - "time_consuming": 85.66, - "status": "success", - "timestamp": "2025-11-25 10:50:51", - "alpha_id": "6XvPqqjL" - }, - { - "expression": "-ts_covariance(ts_rank(high, 10), ts_rank(volume, 10), 20)", - "time_consuming": 115.29, - "status": "success", - "timestamp": "2025-11-25 10:52:47", - "alpha_id": "LLAbXNP9" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764040209.json b/simulator_result/success/success_results_1764040209.json deleted file mode 100644 index 2ffcb6d..0000000 --- a/simulator_result/success/success_results_1764040209.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "expression": "-ts_covariance(ts_rank(high, 10), ts_rank(volume, 20), 20)", - "time_consuming": 79.09, - "status": "success", - "timestamp": "2025-11-25 10:57:58", - "alpha_id": "VkgwYlbG" - }, - { - "expression": "-ts_covariance(ts_rank(close, 10), ts_rank(volume, 20), 20)", - "time_consuming": 76.69, - "status": "success", - "timestamp": "2025-11-25 10:59:15", - "alpha_id": "O0Ew5G9J" - }, - { - "expression": "-ts_covariance(ts_rank(high, 5), ts_rank(volume, 10), 15)", - "time_consuming": 80.17, - "status": "success", - "timestamp": "2025-11-25 11:00:35", - "alpha_id": "j2bldodQ" - }, - { - "expression": "group_neutralize(-ts_covariance(ts_rank(high, 10), ts_rank(volume, 10), 20), sector)", - "time_consuming": 132.85, - "status": "success", - "timestamp": "2025-11-25 11:02:48", - "alpha_id": "O0EwbQ0g" - }, - { - "expression": "-ts_covariance(ts_rank(vwap, 10), ts_rank(volume, 20), 20)", - "time_consuming": 85.15, - "status": "success", - "timestamp": "2025-11-25 11:04:13", - "alpha_id": "d5A8E8lv" - }, - { - "expression": "-ts_covariance(ts_rank(high, 20), ts_rank(volume, 10), 20)", - "time_consuming": 104.09, - "status": "success", - "timestamp": "2025-11-25 11:05:57", - "alpha_id": "mLM2rV5W" - }, - { - "expression": "-ts_covariance(ts_rank(close, 10), ts_rank(volume, 10), 20) * ts_rank(close, 5)", - "time_consuming": 78.07, - "status": "success", - "timestamp": "2025-11-25 11:07:15", - "alpha_id": "P0drwP0W" - }, - { - "expression": "-ts_covariance(ts_rank(high, 10), ts_rank(volume, 20), 10)", - "time_consuming": 80.16, - "status": "success", - "timestamp": "2025-11-25 11:08:35", - "alpha_id": "bl52ogzN" - }, - { - "expression": "group_zscore(-ts_covariance(ts_rank(high, 10), ts_rank(volume, 10), 20), sector)", - "time_consuming": 93.28, - "status": "success", - "timestamp": "2025-11-25 11:10:09", - "alpha_id": "9qLP9vx1" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764043404.json b/simulator_result/success/success_results_1764043404.json deleted file mode 100644 index 7bedd48..0000000 --- a/simulator_result/success/success_results_1764043404.json +++ /dev/null @@ -1,107 +0,0 @@ -[ - { - "expression": "reverse(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20))", - "time_consuming": 93.04, - "status": "success", - "timestamp": "2025-11-25 11:40:21", - "alpha_id": "pwAJlKZj" - }, - { - "expression": "reverse(ts_covariance(ts_rank(close,10),ts_rank(volume,20),20))", - "time_consuming": 120.38, - "status": "success", - "timestamp": "2025-11-25 11:42:22", - "alpha_id": "LLAb13e2" - }, - { - "expression": "group_neutralize(reverse(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20)),sector)", - "time_consuming": 97.15, - "status": "success", - "timestamp": "2025-11-25 11:43:59", - "alpha_id": "Xg5w8Gj1" - }, - { - "expression": "reverse(ts_covariance(ts_rank(vwap,10),ts_rank(volume,20),20))", - "time_consuming": 87.67, - "status": "success", - "timestamp": "2025-11-25 11:45:26", - "alpha_id": "j2blrWW9" - }, - { - "expression": "reverse(multiply(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),ts_rank(close,5)))", - "time_consuming": 134.79, - "status": "success", - "timestamp": "2025-11-25 11:47:41", - "alpha_id": "e7o8xQmd" - }, - { - "expression": "reverse(ts_covariance(ts_rank(high,5),ts_rank(volume,15),15))", - "time_consuming": 96.79, - "status": "success", - "timestamp": "2025-11-25 11:49:18", - "alpha_id": "3qZYeOx6" - }, - { - "expression": "group_zscore(reverse(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20)),sector)", - "time_consuming": 75.78, - "status": "success", - "timestamp": "2025-11-25 11:50:34", - "alpha_id": "RRnZmjQb" - }, - { - "expression": "reverse(ts_covariance(ts_rank(close,20),ts_rank(volume,10),20))", - "time_consuming": 106.53, - "status": "success", - "timestamp": "2025-11-25 11:52:20", - "alpha_id": "KPjYG6QE" - }, - { - "expression": "reverse(multiply(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),ts_zscore(volume,10)))", - "time_consuming": 89.55, - "status": "success", - "timestamp": "2025-11-25 11:53:50", - "alpha_id": "RRnZmmRz" - }, - { - "expression": "group_neutralize(reverse(ts_covariance(ts_rank(close,10),ts_rank(volume,15),20)),sector)", - "time_consuming": 109.25, - "status": "success", - "timestamp": "2025-11-25 11:55:39", - "alpha_id": "RRnZmlwj" - }, - { - "expression": "reverse(ts_covariance(ts_rank(high,15),ts_rank(volume,10),15))", - "time_consuming": 94.42, - "status": "success", - "timestamp": "2025-11-25 11:57:14", - "alpha_id": "E5X0lZ79" - }, - { - "expression": "reverse(divide(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),ts_std_dev(volume,20)))", - "time_consuming": 80.02, - "status": "success", - "timestamp": "2025-11-25 11:58:34", - "alpha_id": "j2bljmx9" - }, - { - "expression": "group_rank(reverse(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20)),sector)", - "time_consuming": 116.06, - "status": "success", - "timestamp": "2025-11-25 12:00:30", - "alpha_id": "ZYew7o7Y" - }, - { - "expression": "reverse(ts_covariance(ts_rank(close,8),ts_rank(volume,25),20))", - "time_consuming": 86.46, - "status": "success", - "timestamp": "2025-11-25 12:01:56", - "alpha_id": "bl52jO8Z" - }, - { - "expression": "multiply(reverse(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20)),reverse(ts_corr(high,volume,20)))", - "time_consuming": 88.18, - "status": "success", - "timestamp": "2025-11-25 12:03:24", - "alpha_id": "akq27g3x" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764050897.json b/simulator_result/success/success_results_1764050897.json deleted file mode 100644 index f48d08a..0000000 --- a/simulator_result/success/success_results_1764050897.json +++ /dev/null @@ -1,128 +0,0 @@ -[ - { - "expression": "ts_zscore(ts_delta(close, 5), 20)", - "time_consuming": 73.51, - "status": "success", - "timestamp": "2025-11-25 13:39:42", - "alpha_id": "Xg5wO37z" - }, - { - "expression": "ts_rank(ts_corr(volume, close, 10), 20)", - "time_consuming": 75.78, - "status": "success", - "timestamp": "2025-11-25 13:40:58", - "alpha_id": "N1vWGv87" - }, - { - "expression": "group_neutralize(ts_av_diff(close, 10), sector)", - "time_consuming": 158.19, - "status": "success", - "timestamp": "2025-11-25 13:43:36", - "alpha_id": "E5X0Ml3P" - }, - { - "expression": "ts_scale(ts_std_dev(close, 15), 30)", - "time_consuming": 89.16, - "status": "success", - "timestamp": "2025-11-25 13:45:05", - "alpha_id": "YPGwOJ6l" - }, - { - "expression": "ts_rank(ts_decay_linear(volume, 5), 20)", - "time_consuming": 82.35, - "status": "success", - "timestamp": "2025-11-25 13:46:27", - "alpha_id": "N1vWlX2q" - }, - { - "expression": "ts_rank(ts_delta(vwap, 3), 10)", - "time_consuming": 117.88, - "status": "success", - "timestamp": "2025-11-25 13:48:25", - "alpha_id": "88dkx6xq" - }, - { - "expression": "group_zscore(ts_delta(high, 5), sector)", - "time_consuming": 124.91, - "status": "success", - "timestamp": "2025-11-25 13:50:30", - "alpha_id": "gJEqVewK" - }, - { - "expression": "ts_rank(ts_mean(volume, 10) / ts_mean(volume, 30), 20)", - "time_consuming": 116.42, - "status": "success", - "timestamp": "2025-11-25 13:52:27", - "alpha_id": "Xg5wA09X" - }, - { - "expression": "ts_rank(ts_delta(close, 1) / ts_delay(close, 1), 10)", - "time_consuming": 81.99, - "status": "success", - "timestamp": "2025-11-25 13:53:49", - "alpha_id": "A1MJXKYW" - }, - { - "expression": "ts_rank(ts_mean(ts_delta(close, 1), 5), 20)", - "time_consuming": 87.52, - "status": "success", - "timestamp": "2025-11-25 13:55:16", - "alpha_id": "N1vWEnxq" - }, - { - "expression": "group_neutralize(ts_zscore(ts_delta(high - low, 5), 15), country)", - "time_consuming": 76.08, - "status": "success", - "timestamp": "2025-11-25 13:56:32", - "alpha_id": "QPLrR35g" - }, - { - "expression": "ts_rank(ts_corr(close, volume, 5), 10)", - "time_consuming": 81.12, - "status": "success", - "timestamp": "2025-11-25 13:57:53", - "alpha_id": "xA0w7G7g" - }, - { - "expression": "ts_rank(ts_mean(ts_delta(close, 1), 20) / ts_std_dev(close, 20), 30)", - "time_consuming": 77.73, - "status": "success", - "timestamp": "2025-11-25 14:00:39", - "alpha_id": "RRnZOLEe" - }, - { - "expression": "ts_rank(ts_arg_max(high, 10), 20)", - "time_consuming": 77.26, - "status": "success", - "timestamp": "2025-11-25 14:01:56", - "alpha_id": "O0EwLnrd" - }, - { - "expression": "ts_rank(ts_av_diff(vwap, 5), 10)", - "time_consuming": 77.54, - "status": "success", - "timestamp": "2025-11-25 14:03:14", - "alpha_id": "YPGwVbM6" - }, - { - "expression": "group_scale(ts_delta(close, 5), sector)", - "time_consuming": 137.56, - "status": "success", - "timestamp": "2025-11-25 14:05:32", - "alpha_id": "KPjYoo68" - }, - { - "expression": "ts_rank(ts_delta(ts_mean(close, 3), 5), 10)", - "time_consuming": 80.65, - "status": "success", - "timestamp": "2025-11-25 14:06:52", - "alpha_id": "1YQVMQzW" - }, - { - "expression": "ts_rank(ts_quantile(ts_delta(close, 1), 10), 20)", - "time_consuming": 73.94, - "status": "success", - "timestamp": "2025-11-25 14:08:06", - "alpha_id": "npMkEzgw" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764054880.json b/simulator_result/success/success_results_1764054880.json deleted file mode 100644 index 89619b1..0000000 --- a/simulator_result/success/success_results_1764054880.json +++ /dev/null @@ -1,135 +0,0 @@ -[ - { - "expression": "ts_delta(close, 5) / ts_mean(close, 20)", - "time_consuming": 74.95, - "status": "success", - "timestamp": "2025-11-25 14:45:09", - "alpha_id": "P0dqN33K" - }, - { - "expression": "ts_rank(volume, 10) * ts_zscore(close, 20)", - "time_consuming": 244.84, - "status": "success", - "timestamp": "2025-11-25 14:49:14", - "alpha_id": "O0EqYY7v" - }, - { - "expression": "ts_av_diff(close, 10) / ts_std_dev(close, 20)", - "time_consuming": 75.72, - "status": "success", - "timestamp": "2025-11-25 14:50:30", - "alpha_id": "58o3b3dJ" - }, - { - "expression": "group_neutralize(ts_delta(close, 3), sector)", - "time_consuming": 77.43, - "status": "success", - "timestamp": "2025-11-25 14:51:47", - "alpha_id": "1YQ19zE6" - }, - { - "expression": "ts_corr(close, volume, 15) * ts_delta(close, 5)", - "time_consuming": 90.76, - "status": "success", - "timestamp": "2025-11-25 14:53:18", - "alpha_id": "vR3xqYQb" - }, - { - "expression": "ts_scale(close, 30) * sign(ts_delta(close, 5))", - "time_consuming": 144.64, - "status": "success", - "timestamp": "2025-11-25 14:55:43", - "alpha_id": "lebkOq1A" - }, - { - "expression": "ts_rank(ts_delta(vwap, 5), 10) - 0.5", - "time_consuming": 78.59, - "status": "success", - "timestamp": "2025-11-25 14:57:01", - "alpha_id": "Xg5PQPea" - }, - { - "expression": "ts_std_dev(close, 10) / ts_mean(close, 20)", - "time_consuming": 125.99, - "status": "success", - "timestamp": "2025-11-25 14:59:07", - "alpha_id": "78E0boq1" - }, - { - "expression": "ts_zscore(ts_delta(close, 3), 10) * ts_rank(volume, 5)", - "time_consuming": 79.76, - "status": "success", - "timestamp": "2025-11-25 15:00:27", - "alpha_id": "omMA5kAv" - }, - { - "expression": "ts_decay_linear(ts_delta(close, 1), 10, dense=false)", - "time_consuming": 69.41, - "status": "success", - "timestamp": "2025-11-25 15:01:37", - "alpha_id": "9qLbLzpx" - }, - { - "expression": "ts_arg_max(high, 20) - ts_arg_min(low, 20)", - "time_consuming": 115.71, - "status": "success", - "timestamp": "2025-11-25 15:03:32", - "alpha_id": "d5AgAmGY" - }, - { - "expression": "ts_mean(close, 5) / ts_mean(close, 60) - 1", - "time_consuming": 83.86, - "status": "success", - "timestamp": "2025-11-25 15:04:56", - "alpha_id": "E5XYXG1m" - }, - { - "expression": "ts_rank(ts_product(close, 3), 10) * sign(ts_delta(close, 1))", - "time_consuming": 86.07, - "status": "success", - "timestamp": "2025-11-25 15:06:29", - "alpha_id": "vR3x3ZXv" - }, - { - "expression": "ts_covariance(close, volume, 15) / (ts_std_dev(close, 15) * ts_std_dev(volume, 15))", - "time_consuming": 104.88, - "status": "success", - "timestamp": "2025-11-25 15:08:14", - "alpha_id": "A1MYMooW" - }, - { - "expression": "ts_mean(ts_delta(close, 2), 10) * ts_rank(volume, 20)", - "time_consuming": 75.19, - "status": "success", - "timestamp": "2025-11-25 15:09:29", - "alpha_id": "d5AgLwGE" - }, - { - "expression": "ts_quantile(close, 20, driver=\"uniform\") - 0.5", - "time_consuming": 73.63, - "status": "success", - "timestamp": "2025-11-25 15:10:43", - "alpha_id": "LLAqJnPv" - }, - { - "expression": "ts_delta(close, 1) / ts_delta(vwap, 1) - 1", - "time_consuming": 82.26, - "status": "success", - "timestamp": "2025-11-25 15:12:05", - "alpha_id": "3qZ3L9jN" - }, - { - "expression": "group_scale(ts_delta(close, 5), sector)", - "time_consuming": 80.72, - "status": "success", - "timestamp": "2025-11-25 15:13:26", - "alpha_id": "KPjYoo68" - }, - { - "expression": "ts_rank(ts_delta(ts_mean(close, 3), 1), 10) * sign(ts_delta(volume, 3))", - "time_consuming": 74.11, - "status": "success", - "timestamp": "2025-11-25 15:14:40", - "alpha_id": "P0dq9kOE" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764057125.json b/simulator_result/success/success_results_1764057125.json deleted file mode 100644 index 606d3f8..0000000 --- a/simulator_result/success/success_results_1764057125.json +++ /dev/null @@ -1,135 +0,0 @@ -[ - { - "expression": "group_neutralize(reverse(ts_covariance(ts_rank(close,12),ts_rank(volume,25),20)),sector)", - "time_consuming": 99.66, - "status": "success", - "timestamp": "2025-11-25 15:19:50", - "alpha_id": "omMAeGpl" - }, - { - "expression": "reverse(multiply(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),ts_rank(ts_delta(close,1),10)))", - "time_consuming": 89.97, - "status": "success", - "timestamp": "2025-11-25 15:21:20", - "alpha_id": "QPLqdwxg" - }, - { - "expression": "group_zscore(reverse(ts_covariance(ts_rank(vwap,15),ts_rank(volume,12),18)),sector)", - "time_consuming": 152.47, - "status": "success", - "timestamp": "2025-11-25 15:23:53", - "alpha_id": "O0EqenLJ" - }, - { - "expression": "multiply(reverse(ts_covariance(ts_rank(high,8),ts_rank(volume,30),20)),ts_zscore(close,10))", - "time_consuming": 199.02, - "status": "success", - "timestamp": "2025-11-25 15:27:19", - "alpha_id": "bl5Vpmlp" - }, - { - "expression": "group_neutralize(reverse(ts_corr(ts_rank(high,10),ts_rank(volume,20),20)),sector)", - "time_consuming": 95.55, - "status": "success", - "timestamp": "2025-11-25 15:28:54", - "alpha_id": "bl5V73OM" - }, - { - "expression": "reverse(ts_covariance(ts_rank(close,10),ts_rank(ts_zscore(volume,20),15),20))", - "time_consuming": 153.67, - "status": "success", - "timestamp": "2025-11-25 15:31:28", - "alpha_id": "N1vqkagE" - }, - { - "expression": "multiply(reverse(ts_covariance(ts_rank(vwap,10),ts_rank(volume,20),20)),reverse(ts_corr(close,volume,10)))", - "time_consuming": 88.94, - "status": "success", - "timestamp": "2025-11-25 15:32:57", - "alpha_id": "E5XYox3J" - }, - { - "expression": "group_rank(reverse(ts_covariance(ts_rank(close,15),ts_rank(volume,10),20)),sector)", - "time_consuming": 149.71, - "status": "success", - "timestamp": "2025-11-25 15:35:27", - "alpha_id": "j2bWlNvW" - }, - { - "expression": "reverse(multiply(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),ts_arg_max(close,10)))", - "time_consuming": 89.08, - "status": "success", - "timestamp": "2025-11-25 15:36:56", - "alpha_id": "mLMJ2XW2" - }, - { - "expression": "group_neutralize(reverse(ts_covariance(ts_rank(ts_delta(close,3),10),ts_rank(volume,20),20)),sector)", - "time_consuming": 103.83, - "status": "success", - "timestamp": "2025-11-25 15:38:39", - "alpha_id": "npMYk6zd" - }, - { - "expression": "reverse(divide(ts_covariance(ts_rank(close,10),ts_rank(volume,25),20),ts_rank(volume,10)))", - "time_consuming": 77.97, - "status": "success", - "timestamp": "2025-11-25 15:39:57", - "alpha_id": "QPLqrRYX" - }, - { - "expression": "multiply(group_zscore(reverse(ts_covariance(ts_rank(high,12),ts_rank(volume,20),20)),sector),reverse(ts_corr(high,volume,15)))", - "time_consuming": 98.77, - "status": "success", - "timestamp": "2025-11-25 15:41:36", - "alpha_id": "GrpYYJ95" - }, - { - "expression": "reverse(ts_covariance(ts_rank(close,10),ts_rank(ts_decay_linear(volume,20),15),20))", - "time_consuming": 88.48, - "status": "success", - "timestamp": "2025-11-25 15:43:05", - "alpha_id": "omMAAnLE" - }, - { - "expression": "group_neutralize(multiply(reverse(ts_covariance(ts_rank(vwap,10),ts_rank(volume,20),20)),ts_zscore(close,5)),sector)", - "time_consuming": 79.84, - "status": "success", - "timestamp": "2025-11-25 15:44:24", - "alpha_id": "omMAALYv" - }, - { - "expression": "reverse(multiply(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),power(ts_rank(close,5),2)))", - "time_consuming": 92.59, - "status": "success", - "timestamp": "2025-11-25 15:45:57", - "alpha_id": "VkgqqRJY" - }, - { - "expression": "group_zscore(reverse(ts_covariance(ts_rank(close,20),ts_rank(ts_av_diff(volume,10),15),20)),sector)", - "time_consuming": 99.92, - "status": "success", - "timestamp": "2025-11-25 15:47:37", - "alpha_id": "P0dq6W1L" - }, - { - "expression": "reverse(add(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),multiply(0.3,ts_covariance(ts_rank(close,5),ts_rank(volume,10),10))))", - "time_consuming": 79.13, - "status": "success", - "timestamp": "2025-11-25 15:48:56", - "alpha_id": "O0Eqkkm7" - }, - { - "expression": "multiply(reverse(ts_covariance(ts_rank(close,10),ts_rank(volume,20),20)),ts_rank(ts_delta(close,1),20))", - "time_consuming": 100.41, - "status": "success", - "timestamp": "2025-11-25 15:50:37", - "alpha_id": "e7ogK9pp" - }, - { - "expression": "group_neutralize(reverse(multiply(ts_covariance(ts_rank(high,10),ts_rank(volume,20),20),add(ts_zscore(close,10),ts_rank(close,5)))),sector)", - "time_consuming": 88.38, - "status": "success", - "timestamp": "2025-11-25 15:52:05", - "alpha_id": "ZYeqxMzx" - } -] \ No newline at end of file diff --git a/simulator_result/success/success_results_1764058900.json b/simulator_result/success/success_results_1764058900.json deleted file mode 100644 index 2195993..0000000 --- a/simulator_result/success/success_results_1764058900.json +++ /dev/null @@ -1,107 +0,0 @@ -[ - { - "expression": "rank(ts_delta(close, 1) * ts_sum(volume, 5)) - rank(ts_corr(close, volume, 20))", - "time_consuming": 87.33, - "status": "success", - "timestamp": "2025-11-25 15:57:18", - "alpha_id": "O0EqmJ0b" - }, - { - "expression": "group_neutralize(ts_delta(close * volume, 3) / ts_mean(close * volume, 10), sector)", - "time_consuming": 76.15, - "status": "success", - "timestamp": "2025-11-25 15:58:34", - "alpha_id": "N1vqj8Ne" - }, - { - "expression": "rank(ts_corr(high - low, volume, 10)) * sign(ts_delta(close, 5))", - "time_consuming": 80.84, - "status": "success", - "timestamp": "2025-11-25 15:59:55", - "alpha_id": "1YQ1nkm6" - }, - { - "expression": "group_rank(ts_mean(close, 5) / ts_mean(close, 20), sector) - ts_rank(volume / ts_mean(volume, 20), 10)", - "time_consuming": 118.6, - "status": "success", - "timestamp": "2025-11-25 16:03:32", - "alpha_id": "GrpY3O00" - }, - { - "expression": "if_else(close > ts_mean(close, 20), rank(ts_std_dev(close, 10)), reverse(rank(ts_std_dev(close, 10))))", - "time_consuming": 91.83, - "status": "success", - "timestamp": "2025-11-25 16:05:04", - "alpha_id": "wpMOJvdQ" - }, - { - "expression": "ts_corr(rank(high - close), rank(volume), 15) - ts_corr(rank(close - low), rank(volume), 15)", - "time_consuming": 80.27, - "status": "success", - "timestamp": "2025-11-25 16:06:24", - "alpha_id": "58o3axrN" - }, - { - "expression": "group_neutralize(divide(ts_sum(if_else(close > ts_delay(close, 1), volume, 0), 10), ts_sum(volume, 10)), sector)", - "time_consuming": 80.86, - "status": "success", - "timestamp": "2025-11-25 16:07:45", - "alpha_id": "bl5VoVeN" - }, - { - "expression": "ts_rank(divide(vwap - close, ts_std_dev(close, 20)), 10) * ts_rank(ts_corr(close, volume, 10), 20)", - "time_consuming": 87.14, - "status": "success", - "timestamp": "2025-11-25 16:09:42", - "alpha_id": "Xg5P2bRX" - }, - { - "expression": "rank(ts_sum(if_else(high == ts_delay(ts_arg_max(high, 20), 1), volume, 0), 5)) - rank(ts_mean(volume, 20))", - "time_consuming": 75.01, - "status": "success", - "timestamp": "2025-11-25 16:11:05", - "alpha_id": "A1MYgEgW" - }, - { - "expression": "divide(ts_covariance(rank(close), rank(volume), 10), ts_std_dev(close, 10) * ts_std_dev(volume, 10))", - "time_consuming": 99.76, - "status": "success", - "timestamp": "2025-11-25 16:12:44", - "alpha_id": "E5XYq16R" - }, - { - "expression": "group_neutralize(rank(close / ts_delay(close, 1)) - rank(volume / ts_delay(volume, 1)), sector)", - "time_consuming": 142.49, - "status": "success", - "timestamp": "2025-11-25 16:15:07", - "alpha_id": "xA09enzb" - }, - { - "expression": "ts_corr(close - ts_mean(close, 10), volume - ts_mean(volume, 10), 15) * sign(ts_delta(close, 3))", - "time_consuming": 85.93, - "status": "success", - "timestamp": "2025-11-25 16:16:33", - "alpha_id": "O0EqnJLY" - }, - { - "expression": "group_rank(ts_delta(close, 1) * ts_decay_linear(volume, 10), sector)", - "time_consuming": 116.38, - "status": "success", - "timestamp": "2025-11-25 16:18:36", - "alpha_id": "mLMJqvaK" - }, - { - "expression": "ts_zscore(divide(ts_sum(if_else(close > open, volume, 0), 10), ts_sum(if_else(close < open, volume, 0), 10)), 20)", - "time_consuming": 92.52, - "status": "success", - "timestamp": "2025-11-25 16:20:14", - "alpha_id": "78E0JgX8" - }, - { - "expression": "group_neutralize(rank(ts_std_dev(close, 20)) * rank(ts_delta(volume, 3)) * sign(ts_corr(close, volume, 10)), sector)", - "time_consuming": 86.69, - "status": "success", - "timestamp": "2025-11-25 16:21:40", - "alpha_id": "KPjqkbaN" - } -] \ No newline at end of file