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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user