- Python 98.4%
- Dockerfile 1.6%
Integrate optional AI analysis using OpenAI-compatible endpoints. Adds configuration wizard, CLI/gRPC overrides, and dual-mode inference: single-model for direct decisions, multi-model for consensus analysis with QUICK model critiques aggregated by DEEP model. New files: ai_config.py (config management), ai_client.py (API client), ai_analyzer.py (inference engine), AGENT.md (LLM protocol spec). Updated CLI, gRPC server, and report rendering to surface AI verdicts alongside numeric decision engine output. |
||
|---|---|---|
| asentry | ||
| protos | ||
| .dockerignore | ||
| .gitignore | ||
| AGENT.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| GRPCUSAGE.md | ||
| README.md | ||
| requirements.txt | ||
Asentry-cli
Spek
- bisa menjalankan dengan python cli
- bisa juga berjalan sebagai server pthon gRPC
Fitur
- mengambil data saham menggunakan yfinance2
- memilih strategi analisi (Scalping/Short Swing, Trend Filtering, Volatility & Risk Management)
- scalping menggunakan kombinasi analisis Bollinger Bands + RSI + Candlestick + Volume
- Trend filtering menggunakan kombinasi analisis EMA (Exponential Moving Average) 20 & 50 + MACD
- Volatility & Risk Management menggunakan kombinasi analisis ATR (Average True Range) + Fibonacci Extension
- atau kombinasi dari ke 3 nya langsung
- otomatis mengambil tick range, dan range tanggal nya berdasarkan date yang diminta user, misal user meminta tanggal 16-05-2026, maka akan otomatis mengambil data kebelakang mulai dari 16.05-2026,
- advance sistem pengambilan keputusan
- kalau mode cli maka return nya adalah .txt, kalau mode server ya kembalikan hasilnya lewat gRPC
- buat menu utama yang bisa memilih menjalankan proyek ini dengan cara apa, cli mode atau gRPC
- buat agar semua weight variabel yang digunakan bisa di konfigurasi manual namun sediakan default nya (yang terbaik secara general)
Instalasi
python -m venv .venv
# Windows PowerShell
.venv\Scripts\Activate.ps1
# Linux / macOS
source .venv/bin/activate
pip install -r requirements.txt
Cara menjalankan
Menu utama (interaktif)
python -m asentry
Akan menampilkan menu untuk memilih CLI mode atau gRPC server mode.
Mode CLI langsung
python -m asentry cli --symbol AAPL --date 2026-05-16 --strategy combined
Output akan disimpan ke reports/AAPL_2026-05-16_combined.txt.
Tambahkan --print untuk juga mencetak isi laporan ke layar.
Pilihan strategi: scalping, trend, volatility, combined (default).
Override bobot/parameter, contoh:
python -m asentry cli -s BBCA.JK -d 2026-05-16 -S scalping \
--set scalping.rsi_period=10 \
--set scalping.rsi_oversold=25 \
--set scalping.bb_weight=0.4
Section yang bisa di-override: scalping.*, trend.*, volatility.*,
combined.*, decision.*. Lihat asentry/config.py untuk daftar field
lengkap beserta nilai default.
Override interval/lookback secara manual juga bisa:
python -m asentry cli -s AAPL -d 2026-05-16 --interval 1h --lookback-days 90
Mode gRPC server
python -m asentry serve --host 0.0.0.0 --port 50051
Stub Python (asentry_pb2.py, asentry_pb2_grpc.py) akan otomatis
digenerate dari protos/asentry.proto ke asentry/_grpc_gen/ saat
pertama dijalankan.
Service: asentry.v1.AsentryService / RPC Analyze. Lihat
protos/asentry.proto untuk skema request/response lengkap. Field
include_report_text=true akan mengembalikan teks laporan yang sama
dengan output mode CLI.
Auto tick & range
User cukup memberi target_date. Sistem otomatis memilih tick (interval)
dan jumlah hari ke belakang sesuai strategi:
| Strategi | Interval | Lookback |
|---|---|---|
| scalping | 15m | 30 hari |
| trend | 1d | 365 hari |
| volatility | 1d | 180 hari |
| combined | 1h | 365 hari |
Bisa di-override via --interval dan --lookback-days pada CLI atau
field setara pada request gRPC.
Catatan
- README awal menyebut
yfinance2; paket di PyPI bernamayfinance, itulah yang dipakai di sini. - Output strategi: skor
[-1.0, 1.0](negatif bearish, positif bullish)- confidence
[0.0, 1.0]. Decision engine memetakan keduanya keSTRONG_BUY / BUY / HOLD / SELL / STRONG_SELLberdasar threshold diDecisionThresholds(juga overridable via--set decision.*).
- confidence
- Laporan bukan saran finansial.
Analisis akhir dengan AI (opsional)
Selain decision engine numerik, Asentry punya lapisan analisis akhir berbasis LLM via endpoint OpenAI-compatible (OpenAI, OpenRouter, Together, Groq, vLLM, Ollama OpenAI mode, LM Studio, dll.).
Tiga strategi pemanggilan model:
off: tidak panggil AI (default).single: satu model menerima ringkasan analisis dan memutuskan langsung.multi: daftar QUICK models mengkritik tiap sudut analisis, hasilnya digabung lalu diberikan ke DEEP model sebagai pengambil keputusan akhir.
Semua model wajib mengikuti protokol respons di AGENT.md (output
satu objek JSON sesuai skema). File itu otomatis dimuat sebagai system
prompt dan tidak perlu disertakan secara manual.
Konfigurasi model
Masuk wizard:
python -m asentry config
# atau pilih "3) Model Config (AI)" di menu utama
python -m asentry # lalu ketik 3
Wizard akan meminta:
- Base URL endpoint (mis.
https://api.openai.com/v1,https://openrouter.ai/api/v1,http://localhost:11434/v1). - API key.
- Mengambil daftar model dari endpoint (
GET /models); pilih dengan nomor atau ketik nama langsung. - Pilih mode (
off/single/multi). - Pilih
SINGLE model(mode single) atauDEEP model+ daftarQUICK models(mode multi).
Konfigurasi disimpan ke ~/.asentry/ai_config.json (lokasinya bisa
diubah via env ASENTRY_AI_CONFIG). Lihat status saat ini:
python -m asentry config show
Override via environment
Field di config bisa di-override per proses:
| Env | Keterangan |
|---|---|
ASENTRY_AI_BASE_URL |
Base URL endpoint |
ASENTRY_AI_API_KEY |
API key |
ASENTRY_AI_MODE |
off / single / multi |
ASENTRY_AI_SINGLE_MODEL |
Nama model SINGLE |
ASENTRY_AI_DEEP_MODEL |
Nama model DEEP |
ASENTRY_AI_QUICK_MODELS |
Daftar QUICK, dipisah koma |
ASENTRY_AI_CONFIG |
Path file config (default ~/.asentry/ai_config.json) |
Override via CLI
# Mode single, override sekali jalan
python -m asentry cli -s AAPL -d 2026-05-16 -S combined \
--ai-mode single --ai-single-model gpt-4o-mini
# Mode multi
python -m asentry cli -s AAPL -d 2026-05-16 -S combined \
--ai-mode multi \
--ai-deep-model gpt-4o \
--ai-quick-model gpt-4o-mini --ai-quick-model llama-3.1-8b-instruct
Flag tambahan: --ai-base-url, --ai-api-key, --ai-temperature,
--ai-max-tokens. Hasil AI muncul sebagai blok AI FINAL ANALYSIS di
file laporan .txt.
Mode gRPC
AnalyzeRequest punya field AI yang setara: ai_mode,
ai_base_url, ai_api_key, ai_single_model, ai_deep_model,
ai_quick_models, ai_temperature, ai_max_tokens. Kalau dikirim
kosong, server pakai konfigurasi ~/.asentry/ai_config.json /
environment-nya sendiri.
AnalyzeResponse.ai (message AIBlock) berisi mode, enabled,
error, final (AIVerdict), dan quick (list AIVerdict untuk
mode multi). Detail field di protos/asentry.proto dan
GRPCUSAGE.md.