TauricResearch/TradingAgents
TradingAgents: Multi-Agents LLM Financial Trading Framework
Python★ 106,305+745 that day#9 on trending
1.34%duplicated code · 156 of 11,674 lines
10clones in code
86code files of 157 scanned
1.19%duplicated over all files · 20 clones
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 38 lines in 2 placespython141 tokenstradingagents/agents/analysts/market_analyst.py:54–91tradingagents/agents/analysts/news_analyst.py:29–65
54 + """ Make sure to append a Markdown table at the end of the report to organize key points in the report, organized and easy to read.""" 55 + get_language_instruction() 56) 57 58prompt = ChatPromptTemplate.from_messages( 59 [ 60 ( 61 "system", 62 "You are a helpful AI assistant, collaborating with other assistants." 63 " Use the provided tools to progress towards answering the question."First 10 of 38 lines.
- 36 lines in 2 placespython133 tokenstradingagents/agents/analysts/fundamentals_analyst.py:30–65tradingagents/agents/analysts/market_analyst.py:56–91
30) 31 32prompt = ChatPromptTemplate.from_messages( 33 [ 34 ( 35 "system", 36 "You are a helpful AI assistant, collaborating with other assistants." 37 " Use the provided tools to progress towards answering the question." 38 " If you are unable to fully answer, that's OK; another assistant with different tools" 39 " will help where you left off. Execute what you can to make progress."First 10 of 36 lines.
- 15 lines in 2 placespython67 tokenstradingagents/agents/researchers/bear_researcher.py:16–30tradingagents/agents/researchers/bull_researcher.py:16–30
16) 17market_research_report = state["market_report"] 18sentiment_report = state["sentiment_report"] 19news_report = state["news_report"] 20fundamentals_report = state["fundamentals_report"] 21instrument_context = get_instrument_context_from_state(state) 22asset_type = state.get("asset_type", "stock") 23target_label = "stock" if asset_type == "stock" else "asset" 24fundamentals_label = ( 25 "Company fundamentals report"First 10 of 15 lines.
7 more
- 8 lines in 2 placespython66 tokens
- 8 lines in 2 placespython66 tokens
- 8 lines in 2 placespython65 tokens
- 14 lines in 2 placespython59 tokens
- 14 lines in 2 placespython56 tokens
- 6 lines in 2 placespython56 tokens
- 9 lines in 2 placespython51 tokens
Largest clones over all files, tests and data included
- 38 lines in 2 placespython141 tokenstradingagents/agents/analysts/market_analyst.py:54–91tradingagents/agents/analysts/news_analyst.py:29–65
54 + """ Make sure to append a Markdown table at the end of the report to organize key points in the report, organized and easy to read.""" 55 + get_language_instruction() 56) 57 58prompt = ChatPromptTemplate.from_messages( 59 [ 60 ( 61 "system", 62 "You are a helpful AI assistant, collaborating with other assistants." 63 " Use the provided tools to progress towards answering the question."First 10 of 38 lines.
- 11 lines in 2 placespythontests138 tokens
52}) 53 54with mock.patch.dict(os.environ, env, clear=False), \ 55 mock.patch.object(m, "DEFAULT_CONFIG", fake_cfg), \ 56 mock.patch.object(m, "fetch_announcements", return_value=None), \ 57 mock.patch.object(m, "display_announcements"), \ 58 mock.patch.object(m, "get_ticker", return_value="AAPL"), \ 59 mock.patch.object(m, "get_analysis_date", return_value="2026-05-29"), \ 60 mock.patch.object(m, "select_analysts", return_value=[]), \ 61 mock.patch.object(m, "select_research_depth", return_value=1), \First 10 of 11 lines.
- 36 lines in 2 placespython133 tokenstradingagents/agents/analysts/fundamentals_analyst.py:30–65tradingagents/agents/analysts/market_analyst.py:56–91
30) 31 32prompt = ChatPromptTemplate.from_messages( 33 [ 34 ( 35 "system", 36 "You are a helpful AI assistant, collaborating with other assistants." 37 " Use the provided tools to progress towards answering the question." 38 " If you are unable to fully answer, that's OK; another assistant with different tools" 39 " will help where you left off. Execute what you can to make progress."First 10 of 36 lines.
- 10 lines in 2 placespythontests121 tokens
- 7 lines in 2 placespythontests91 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 76 | 10,856 | 10 | 156 | 1.44% |
| bash | 9 | 644 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 139 | 18,501 | 20 | 243 | 1.31% |
| markdown | 2 | 803 | 0 | 0 | 0% |
| bash | 10 | 670 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
| yaml | 2 | 97 | 0 | 0 | 0% |
| toml | 1 | 88 | 0 | 0 | 0% |
| text | 1 | 9 | 0 | 0 | 0% |
| txt | 1 | 7 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 15, 2026 | #9 | 106,305 (+745) | 157 | 20,349 | 20 | 1.19% | 1.34% | — | be952b8 |
| Sep 10, 2026 | #6 | 104,143 (+367) | 157 | 20,349 | 20 | 1.19% | 1.34% | — | be952b8 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.