Improve key monitor form with bar period, box direction, and labeled fields.

Match order-monitor layout; persist bar_period and enforce upper-direction filter for box breakouts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-29 07:24:36 +08:00
parent 169136dd4a
commit bfb1b95471
6 changed files with 187 additions and 68 deletions
+20 -7
View File
@@ -305,6 +305,7 @@ def init_db():
"ALTER TABLE key_monitors ADD COLUMN alert_break_side TEXT",
"ALTER TABLE key_monitors ADD COLUMN breakout_bar_time TEXT",
"ALTER TABLE key_monitors ADD COLUMN alert_close_price REAL",
"ALTER TABLE key_monitors ADD COLUMN bar_period TEXT DEFAULT '5m'",
"ALTER TABLE review_records ADD COLUMN direction TEXT",
"ALTER TABLE review_records ADD COLUMN entry_price REAL",
"ALTER TABLE review_records ADD COLUMN stop_loss REAL",
@@ -1057,6 +1058,8 @@ def ai_messages_page():
@app.route("/keys")
@login_required
def keys():
from key_monitor_lib import key_monitor_periods
conn = get_db()
key_list = conn.execute(
"SELECT * FROM key_monitors WHERE status='active' OR status IS NULL ORDER BY id DESC"
@@ -1065,7 +1068,12 @@ def keys():
"SELECT * FROM key_monitors WHERE status='archived' ORDER BY archived_at DESC LIMIT 100"
).fetchall()
conn.close()
return render_template("keys.html", keys=key_list, history=history)
return render_template(
"keys.html",
keys=key_list,
history=history,
key_periods=key_monitor_periods(),
)
@@ -1103,21 +1111,26 @@ def add_key():
if trailing_be and risk_reward < 3:
risk_reward = 3.0
from key_monitor_lib import normalize_bar_period
bar_period = normalize_bar_period(d.get("bar_period") or "5m")
direction = (d.get("direction") or "").strip().lower()
if monitor_type in ("箱体突破", "收敛突破"):
direction = direction or "long"
if monitor_type == "箱体突破":
if direction not in ("long", "short"):
flash("箱体突破须选择上方向(做多/做空)")
return redirect(url_for("keys"))
else:
direction = direction or "long"
direction = ""
conn = get_db()
conn.execute(
"""INSERT INTO key_monitors
(symbol, symbol_name, market_code, sina_code, monitor_type, direction,
upper, lower, trade_mode, risk_reward, trailing_be)
VALUES (?,?,?,?,?,?,?,?,?,?,?)""",
upper, lower, trade_mode, risk_reward, trailing_be, bar_period)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?)""",
(
symbol, symbol_name, market_code, sina_code, monitor_type, direction,
upper, lower, trade_mode, risk_reward, trailing_be,
upper, lower, trade_mode, risk_reward, trailing_be, bar_period,
),
)
conn.commit()