From 52a6dc9880a3ecd04f99e474efc8256f6703a278 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Tue, 6 May 2025 00:15:51 +0800 Subject: [PATCH] update --- .../__pycache__/crypto_agent.cpython-313.pyc | Bin 20546 -> 19594 bytes cryptoai/agents/crypto_agent.py | 48 +++++++++--------- cryptoai/config/config.yaml | 3 +- cryptoai/monitor_endpoint.py | 22 ++++---- cryptoai/monitors/volume_growup.py | 2 +- docker-compose.yml | 2 +- 6 files changed, 37 insertions(+), 40 deletions(-) diff --git a/cryptoai/agents/__pycache__/crypto_agent.cpython-313.pyc b/cryptoai/agents/__pycache__/crypto_agent.cpython-313.pyc index 1676bab6ba907a9b5885bfabfd56167c20bb5a9b..d74572d37090a1cf4b1886b27ad0a1bf6a67eec4 100644 GIT binary patch delta 1052 zcmZvbe@s(X6vyv*w}LBeq5P6rkrs*NSz9cHMAKG+0xB97`tqU+>_>)>X)@I3uRn|v z#|)t2j~taC5XD3xMpEiC18E7_;`p1yKbGyEWn15Cmn}mj(PWzFy#=F7c9ZwH=bZ03 z=iQu}`@>B*+Ygonv)M@43jJR2wn7FAkqUhD?a}Q-7D|YNG?ijR zwE1#Udai7;5TD^)P7#sv+D+A_hU&$=4cbVM7Lhg(Kg8FfEQpzCb>-v7>pm?}wzH%B zlCHG298mTi7O7IreRIoEMQLq6^4URUUrVcc(iH$Urm6LAoL~PvT)>EXx9~5Z(Q{-= zF|moy2wC^F@RShSDd7cU4dr$XeL_er-A)&nvx9P>F(ou|Aw-)}LNiq#m+b`mBZt4v zOnxl1FwUBdb>(z+g|*I2XWh$~-2!O!=VHkFmwAXCP&6n3wkdsTeR)P&##L_fxH62N zZ!Cr5*t4-Ct&a!JshOKz0ra8CufZXF=6{5L2V7ZRkJqkaZ+v=CzxGhObQzsNm*n-7 zF9qY#iTHG{(f;1@dVF?$?3UhpgE2AC{l6&{OZCa{w~48d`B*o06_;7(V?F%!P4|2#1^FK0dA;feH0Qo!yWY+n7+1#{C7XEt&sH%K>*D{!hpN*}S) z1b1vQz(z(7R^upJbs)ki80mi1eq0)A>dyF-5tL+0m9h z&EDel&IH`C!30D3nlm35(JN-AU*bs4fa+6NF(f$NeQt`H8C zTR{;VFE0Yc@D{>S_;Wc;m-&F6;A~aoy^~o8pTb61iM?x~)lOHHq;!ifTTfI`|9DCW z&Kk=0WN-7N=T6W`G>|1kCtw*Ew)+&qGw^%6zmL_(q!10rRFA*CL)Kz!iw3$v{-B(* zKO77OLS4Mj)*FfN!oP`N_%I^K9={uBZdi}el|uJ=ne@j5Rw+~A2p^KE?m$H#Q#L##usiiLwH9e&BqfFXEdZL2~@!rNUWxU7 z)g-ao<9%h%&D$Rz+c#IgRdQ@gI5^3{&Fy+#aNxA>zD)%qym5e0rXY1#bW z)(|xN4a-U9T?z9Z$-HOog_q*yeF<}?WbT~nip0$a#j}-OP;`T>^O}g8j2_{vN#m_0 zXG`+DZgSSG^wx^Np#Zv%&`YzFP>+9u5i!@PRcYVDG3JGFSYBNLPQmTfM^q!27!<#) z{u89)b_MLKH^E;v&H@TfZ2Ds3($K}^@S6*h?-B-FE30F+)u~5 zxSUm%v-Jd0eYTSkk@K~LFeX1j)czp}Q7={lq+&~ajBUrhw@FZqu#2@NT zQbi()Wm5;wN1{A`pe+_Yz=zs;qy8?wP54wi+ISS0rm_7BhN~DH7_LFOX%t)+KX0;7 zs+*X(4u5KX8Z3&AmfN5t{alzKtTa`*L(VJ D|GXp( diff --git a/cryptoai/agents/crypto_agent.py b/cryptoai/agents/crypto_agent.py index b08a237..c5eb45b 100644 --- a/cryptoai/agents/crypto_agent.py +++ b/cryptoai/agents/crypto_agent.py @@ -212,7 +212,7 @@ class CryptoAgent: - support_levels: 基于斐波那契回调的支撑位列表(标明各个支撑位对应的斐波那契水平,例如0.382、0.5、0.618等) - resistance_levels: 基于斐波那契回调的阻力位列表(同样标明对应水平) - volume_analysis: 交易量分析,重点关注量价关系 -- recommendation: 操作建议 (买入、卖出或等待) +- recommendation: 操作建议 (做多、做空或观望) - entry_points: 推荐入场点位 - exit_points: 推荐出场点位 - stop_loss: 建议止损位 @@ -243,21 +243,21 @@ class CryptoAgent: "current_price": float(processed_data['close'].iloc[-1]), # "price_change_24h": float(processed_data['close'].iloc[-1] - processed_data['close'].iloc[-24]), # "price_change_percentage_24h": float((processed_data['close'].iloc[-1] - processed_data['close'].iloc[-24]) / processed_data['close'].iloc[-24] * 100), - "historical_prices": processed_data['close'].tail(100).tolist(), - "volumes": processed_data['volume'].tail(100).tolist(), - "technical_indicators": { - "rsi": float(processed_data['RSI'].iloc[-1]), - "macd": float(processed_data['MACD'].iloc[-1]), - "macd_signal": float(processed_data['MACD_Signal'].iloc[-1]), - "bollinger_upper": float(processed_data['Bollinger_Upper'].iloc[-1]), - "bollinger_lower": float(processed_data['Bollinger_Lower'].iloc[-1]), - "ma5": float(processed_data['MA5'].iloc[-1]), - "ma10": float(processed_data['MA10'].iloc[-1]), - "ma20": float(processed_data['MA20'].iloc[-1]), - "ma50": float(processed_data['MA50'].iloc[-1]), - "atr": float(processed_data['ATR'].iloc[-1]) - }, - "klines": processed_data[['open', 'high', 'low', 'close', 'volume']].tail(100).to_dict('records') + # "historical_prices": processed_data['close'].tail(100).tolist(), + # "volumes": processed_data['volume'].tail(100).tolist(), + # "technical_indicators": { + # "rsi": float(processed_data['RSI'].iloc[-1]), + # "macd": float(processed_data['MACD'].iloc[-1]), + # "macd_signal": float(processed_data['MACD_Signal'].iloc[-1]), + # "bollinger_upper": float(processed_data['Bollinger_Upper'].iloc[-1]), + # "bollinger_lower": float(processed_data['Bollinger_Lower'].iloc[-1]), + # "ma5": float(processed_data['MA5'].iloc[-1]), + # "ma10": float(processed_data['MA10'].iloc[-1]), + # "ma20": float(processed_data['MA20'].iloc[-1]), + # "ma50": float(processed_data['MA50'].iloc[-1]), + # "atr": float(processed_data['ATR'].iloc[-1]) + # }, + "klines": processed_data[['open', 'high', 'low', 'close', 'volume', 'RSI', 'MACD', 'MACD_Signal', 'Bollinger_Upper', 'Bollinger_Lower', 'MA5', 'MA10', 'MA20', 'MA50', 'ATR']].tail(100).to_dict('records') } # 将市场数据格式化为适合大模型的格式 @@ -374,17 +374,17 @@ class CryptoAgent: 需要输出的内容包括: 标题:AI Agent 加密货币分析报告 - 1. 对目标交易对行情进行总结 - 2. 对所有交易对给出操作建议: - 2.1 操作建议(做多、做空、观望) - 2.2 操作点位 - 2.3 止损止盈点位 - 2.4 操作评级 - 2.5 建议原因 + 1. 对交易对给出操作建议: + 1.1 操作方向(做多、做空、观望) + 1.2 操作价位 + 1.3 止损止盈价位 + 1.4 操作评级(1-5,1为最低紧迫性,5为最高紧迫性) + 1.5 建议原因 + 2. 对市场行情进行一句话总结(基本面,技术面,市场情绪等),不超过50字 以下是每个交易对的分析结果: {results} - 请以优美的Markdown格式输出,通过 emoji 标签来增加可读性。 + 请以优美的Markdown格式输出,不要使用表格,通过 emoji 标签来增加可读性。 """ system_prompt = """ diff --git a/cryptoai/config/config.yaml b/cryptoai/config/config.yaml index 810b16e..d198f37 100644 --- a/cryptoai/config/config.yaml +++ b/cryptoai/config/config.yaml @@ -34,7 +34,8 @@ crypto: - "ETH" - "SOL" - "SUI" - - "XRP" + - "DOGE" + - "LTC" quote_currency: "USDT" time_interval: "4h" # 可选: 1m, 5m, 15m, 30m, 1h, 4h, 1d historical_days: 90 diff --git a/cryptoai/monitor_endpoint.py b/cryptoai/monitor_endpoint.py index 6884d8a..7515315 100644 --- a/cryptoai/monitor_endpoint.py +++ b/cryptoai/monitor_endpoint.py @@ -16,22 +16,18 @@ def run_monitor(): try: print("☕️ 加密货币监控程序已启动") - # 5分钟监控,交易量增长 - for time in [":00", ":05", ":10", ":15", ":20", ":25", ":30", ":35", ":40", ":45", ":50", ":55"]: - schedule.every().hour.at(time).do(volume_growup_monitor.run, time_interval="5m") + # # 5分钟监控,交易量增长 + # for time in [":00", ":05", ":10", ":15", ":20", ":25", ":30", ":35", ":40", ":45", ":50", ":55"]: + # schedule.every().hour.at(time).do(volume_growup_monitor.run, time_interval="5m") - # # 15分钟监控,技术指标 - # for time in [":00", ":15", ":30", ":45"]: - # schedule.every().hour.at(time).do(technical_indicators_monitor.run, time_interval="15m") + # # 每小时整点监控,技术指标 + # for time in ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"]: + # schedule.every().hour.at(time).do(technical_indicators_monitor.run, time_interval="1h") - # 每小时整点监控,技术指标 - for time in ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"]: - schedule.every().day.at(time).do(technical_indicators_monitor.run, time_interval="1h") - - # 4小时监控,技术指标 - for time in ["00:00", "04:00", "08:00", "12:00", "16:00", "20:00"]: - schedule.every().day.at(time).do(technical_indicators_monitor.run, time_interval="4h") + # # 4小时监控,技术指标 + # for time in ["00:00", "04:00", "08:00", "12:00", "16:00", "20:00"]: + # schedule.every().day.at(time).do(technical_indicators_monitor.run, time_interval="4h") while True: diff --git a/cryptoai/monitors/volume_growup.py b/cryptoai/monitors/volume_growup.py index 4d1a322..0a1eed7 100644 --- a/cryptoai/monitors/volume_growup.py +++ b/cryptoai/monitors/volume_growup.py @@ -55,7 +55,7 @@ class VolumeGrowupMonitor: # 计算交易金额 current_amount = processed_data['close'].iloc[-2] * processed_data['volume'].iloc[-2] - print(f"{symbol} 过去 30 根 K 线的平均交易量为 {average_volume:.2f},当前交易量为 {processed_data['volume'].iloc[-1]:.2f},增长率为 {volume_growth:.2%}") + # print(f"{symbol} 过去 30 根 K 线的平均交易量为 {average_volume:.2f},当前交易量为 {processed_data['volume'].iloc[-1]:.2f},增长率为 {volume_growth:.2%}") # 如果增加 10倍以上,则发送消息 if volume_growth >= 10 and current_amount > 1000000: diff --git a/docker-compose.yml b/docker-compose.yml index f923fa1..c5909d5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: cryptoai: build: . container_name: cryptoai-task - image: cryptoai:0.0.13 + image: cryptoai:0.0.14 restart: always volumes: - ./cryptoai/data:/app/cryptoai/data