{% extends "base.html" %} {% block content %}
Hasil Screening
Tanggal (Asia/Jakarta): {{ today }}
{{ row_count }} baris
{% for r in table_data %} {% endfor %}
Ticker Last Price Score (1–10) RSI(14) Arah (Siklus) AVG Cycle Days Hari sejak Pivot Progress 30D 7D
{{ r.get('ticker') }} {{ "{:,.0f}".format(r.get('last_price', 0) or 0) }} {{ r.get('score_1_10_int', '-') }} {% set rsi = r.get('rsi_14') %} {{ rsi if rsi is not none else '-' }} {% set phase = r.get('cycle_phase') %} {% if phase == 'UP' %} UP {% elif phase == 'DOWN' %} DOWN {% else %} N/A {% endif %} {{r.get('avg_cycle_days')}} {{ r.get('days_since_pivot') if r.get('days_since_pivot') is not none else '-' }} {% set prog = r.get('cycle_progress_0_1') %} {% if prog is none or prog != prog %} {# NaN check: prog != prog #} - {% else %} {% set pct = (prog * 100) | round(0, 'floor') %} {{ pct|int }}% {% endif %} {% set spark = r.get('spark_30d') %} {% if spark %} 30D {{ r.get('ticker') }} {% else %} - {% endif %} {% set spark = r.get('spark_7d') %} {% if spark %} 7D {{ r.get('ticker') }} {% else %} - {% endif %}
Buy Sell Hold • Interpretasi RSI: <30 oversold, >70 overbought • Warna Progress: 0–33%, 34–66%, 67–100%
{% if not table_data %}
Tidak ada hasil yang memenuhi filter saat ini. Coba klik Refresh atau ubah parameter filter di kode.
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}