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:
9
.env.example
Normal file
9
.env.example
Normal file
@@ -0,0 +1,9 @@
|
||||
BINANCE_API_KEY=
|
||||
BINANCE_SECRET=
|
||||
CRYPTOPANIC_API_KEY=
|
||||
NEWS_API_KEY=
|
||||
TWITTER_BEARER_TOKEN=
|
||||
REDDIT_CLIENT_ID=
|
||||
REDDIT_SECRET=
|
||||
REDDIT_USER_AGENT=crypto_signal_bot/1.0
|
||||
ANTHROPIC_API_KEY=
|
||||
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
.env
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.db
|
||||
logs/
|
||||
.superpowers/
|
||||
0
agents/__init__.py
Normal file
0
agents/__init__.py
Normal file
36
config.py
Normal file
36
config.py
Normal 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,
|
||||
}
|
||||
0
dashboard/__init__.py
Normal file
0
dashboard/__init__.py
Normal file
0
data/__init__.py
Normal file
0
data/__init__.py
Normal file
0
engine/__init__.py
Normal file
0
engine/__init__.py
Normal file
11
requirements.txt
Normal file
11
requirements.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
streamlit>=1.30.0
|
||||
python-binance>=1.0.19
|
||||
pandas>=2.1.0
|
||||
ta>=0.11.0
|
||||
plotly>=5.18.0
|
||||
anthropic>=0.40.0
|
||||
praw>=7.7.0
|
||||
httpx>=0.27.0
|
||||
apscheduler>=3.10.0
|
||||
python-dotenv>=1.0.0
|
||||
pytest>=8.0.0
|
||||
0
scheduler/__init__.py
Normal file
0
scheduler/__init__.py
Normal file
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
3
tests/conftest.py
Normal file
3
tests/conftest.py
Normal file
@@ -0,0 +1,3 @@
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
|
||||
Reference in New Issue
Block a user