Add project setup: dependencies, config, and package scaffolding

- requirements.txt with all core dependencies (streamlit, binance, ta, anthropic, praw, etc.)
- .env.example template for all required API keys
- .gitignore covering secrets, caches, db files, and logs
- config.py loading env vars with trading defaults and signal weights
- tests/conftest.py with sys.path fix for imports
- Empty __init__.py files for tests, data, agents, engine, dashboard, scheduler packages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-20 17:44:45 +09:00
parent 9557a95409
commit 1a241e8b7b
11 changed files with 65 additions and 0 deletions

36
config.py Normal file
View File

@@ -0,0 +1,36 @@
import os
from dotenv import load_dotenv
load_dotenv()
# API Keys
BINANCE_API_KEY = os.getenv("BINANCE_API_KEY", "")
BINANCE_SECRET = os.getenv("BINANCE_SECRET", "")
CRYPTOPANIC_API_KEY = os.getenv("CRYPTOPANIC_API_KEY", "")
NEWS_API_KEY = os.getenv("NEWS_API_KEY", "")
TWITTER_BEARER_TOKEN = os.getenv("TWITTER_BEARER_TOKEN", "")
REDDIT_CLIENT_ID = os.getenv("REDDIT_CLIENT_ID", "")
REDDIT_SECRET = os.getenv("REDDIT_SECRET", "")
REDDIT_USER_AGENT = os.getenv("REDDIT_USER_AGENT", "crypto_signal_bot/1.0")
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY", "")
# Defaults
DB_PATH = os.path.join(os.path.dirname(__file__), "crypto_signals.db")
LOG_DIR = os.path.join(os.path.dirname(__file__), "logs")
TOP_N_COINS = 50
SURGE_VOLUME_MULTIPLIER = 3.0
MAX_POSITIONS = 5
INITIAL_CAPITAL = 200.0
STOP_LOSS_PCT = -0.08
TAKE_PROFIT_1_PCT = 0.15
TAKE_PROFIT_2_PCT = 0.25
MIN_POSITION_USD = 15.0
ANALYSIS_INTERVAL_MINUTES = 15
# Default weights
DEFAULT_WEIGHTS = {
"technical": 0.6,
"news": 0.2,
"social": 0.1,
"ai": 0.1,
}