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