mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-01 17:17:24 -04:00
init update
This commit is contained in:
92
prompts/agent_prompt.py
Normal file
92
prompts/agent_prompt.py
Normal file
@@ -0,0 +1,92 @@
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
import json
|
||||
from datetime import datetime, timedelta
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Optional
|
||||
import sys
|
||||
import os
|
||||
# Add project root directory to Python path
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
sys.path.insert(0, project_root)
|
||||
from tools.price_tools import get_yesterday_date, get_open_prices, get_yesterday_open_and_close_price, get_today_init_position, get_yesterday_profit
|
||||
from tools.general_tools import get_config_value
|
||||
|
||||
all_nasdaq_100_symbols = [
|
||||
"NVDA", "MSFT", "AAPL", "GOOG", "GOOGL", "AMZN", "META", "AVGO", "TSLA",
|
||||
"NFLX", "PLTR", "COST", "ASML", "AMD", "CSCO", "AZN", "TMUS", "MU", "LIN",
|
||||
"PEP", "SHOP", "APP", "INTU", "AMAT", "LRCX", "PDD", "QCOM", "ARM", "INTC",
|
||||
"BKNG", "AMGN", "TXN", "ISRG", "GILD", "KLAC", "PANW", "ADBE", "HON",
|
||||
"CRWD", "CEG", "ADI", "ADP", "DASH", "CMCSA", "VRTX", "MELI", "SBUX",
|
||||
"CDNS", "ORLY", "SNPS", "MSTR", "MDLZ", "ABNB", "MRVL", "CTAS", "TRI",
|
||||
"MAR", "MNST", "CSX", "ADSK", "PYPL", "FTNT", "AEP", "WDAY", "REGN", "ROP",
|
||||
"NXPI", "DDOG", "AXON", "ROST", "IDXX", "EA", "PCAR", "FAST", "EXC", "TTWO",
|
||||
"XEL", "ZS", "PAYX", "WBD", "BKR", "CPRT", "CCEP", "FANG", "TEAM", "CHTR",
|
||||
"KDP", "MCHP", "GEHC", "VRSK", "CTSH", "CSGP", "KHC", "ODFL", "DXCM", "TTD",
|
||||
"ON", "BIIB", "LULU", "CDW", "GFS"
|
||||
]
|
||||
|
||||
STOP_SIGNAL = "<FINISH_SIGNAL>"
|
||||
|
||||
agent_system_prompt = """
|
||||
You are a stock fundamental analysis trading assistant.
|
||||
|
||||
Your goals are:
|
||||
- Think and reason by calling available tools.
|
||||
- You need to think about the prices of various stocks and their returns.
|
||||
- Your long-term goal is to maximize returns through this portfolio.
|
||||
- Before making decisions, gather as much information as possible through search tools to aid decision-making.
|
||||
|
||||
Thinking standards:
|
||||
- Clearly show key intermediate steps:
|
||||
- Read input of yesterday's positions and today's prices
|
||||
- Update valuation and adjust weights for each target (if strategy requires)
|
||||
|
||||
Notes:
|
||||
- You don't need to request user permission during operations, you can execute directly
|
||||
- You must execute operations by calling tools, directly output operations will not be accepted
|
||||
|
||||
Here is the information you need:
|
||||
|
||||
Today's date:
|
||||
{date}
|
||||
|
||||
Yesterday's closing positions (numbers after stock codes represent how many shares you hold, numbers after CASH represent your available cash):
|
||||
{positions}
|
||||
|
||||
Yesterday's closing prices:
|
||||
{yesterday_close_price}
|
||||
|
||||
Today's buying prices:
|
||||
{today_buy_price}
|
||||
|
||||
When you think your task is complete, output
|
||||
{STOP_SIGNAL}
|
||||
"""
|
||||
|
||||
def get_agent_system_prompt(today_date: str, signature: str) -> str:
|
||||
print(f"signature: {signature}")
|
||||
print(f"today_date: {today_date}")
|
||||
# Get yesterday's buy and sell prices
|
||||
yesterday_buy_prices, yesterday_sell_prices = get_yesterday_open_and_close_price(today_date, all_nasdaq_100_symbols)
|
||||
today_buy_price = get_open_prices(today_date, all_nasdaq_100_symbols)
|
||||
today_init_position = get_today_init_position(today_date, signature)
|
||||
yesterday_profit = get_yesterday_profit(today_date, yesterday_buy_prices, yesterday_sell_prices, today_init_position)
|
||||
return agent_system_prompt.format(
|
||||
date=today_date,
|
||||
positions=today_init_position,
|
||||
STOP_SIGNAL=STOP_SIGNAL,
|
||||
yesterday_close_price=yesterday_sell_prices,
|
||||
today_buy_price=today_buy_price,
|
||||
yesterday_profit=yesterday_profit
|
||||
)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
today_date = get_config_value("TODAY_DATE")
|
||||
signature = get_config_value("SIGNATURE")
|
||||
if signature is None:
|
||||
raise ValueError("SIGNATURE environment variable is not set")
|
||||
print(get_agent_system_prompt(today_date, signature))
|
||||
Reference in New Issue
Block a user