1
Data Source
2
Strategy
3
Configure
4
Review
5
Execute
6
Results
בחר מקור נתונים
הנתונים שעל גביהם תורץ האסטרטגיה
📊 ✓ Ready
MNQ Panama
Micro E-mini NASDAQ-100
קובץ
154 MB
Bars
~3.1M
טווח
2020–2026
פרק זמן
1 דקה
📈 Coming Soon
ES S&P 500
E-mini S&P 500 Futures
טרם זמין
בחר אסטרטגיה
בחר מהאסטרטגיות הקיימות או העלה קובץ Python חדש
אסטרטגיות מובנות
Loading...
העלה אסטרטגיה חדשה
⬆️
לחץ להעלאה או גרור קובץ .py לכאן
קובץ Python עם מחלקה שמכילה on_bar(self, bar)
הגדרות הריצה
הגדר פרמטרים לבדיקה האחורית
📅 טווח תאריכים
💰 עמלות וסליפג'
5.0 = עמלה סטנדרטית ל-MNQ
🛡️ ניהול סיכונים
ה-backtest יפסיק אם ההפסד היומי יחצה סכום זה
🎯 אסטרטגיה שנבחרה
טרם נבחרה
סקירה לפני ריצה
בדוק את כל ההגדרות לפני הרצת הבדיקה האחורית
📋 פרטי הריצה
⚠️ הערות

• הבדיקה האחורית תורץ בתהליך נפרד (subprocess)

• הנתונים נטענים מה-CSV ב-RAM — ~3.1M bars

• ממוצע זמן: 2–5 דקות לשנה אחת של דקות

• תוצאות נשמרות ב-DB לצמיתות

• ניתן לבדוק את ההיסטוריה בכל עת

מריץ בדיקה אחורית…
הבדיקה האחורית נמצאת בתהליך
⚙️
RUNNING
טוען נתונים...
ניתן לעזוב את הדף — הריצה תמשיך ברקע ותישמר ב-History

היסטוריית ריצות

כל הבדיקות האחוריות שבוצעו

Loading...

יומי — התראות לפי יום מסחר

כל ההתראות והפעילות לפי יום • לחץ על יום לפרטים

ימי מסחר
טוען...
📅
בחר יום מסחר מהרשימה משמאל
קבצי Audit להורדה
טוען...

איך לכתוב אסטרטגיה

שפת Python — ממשק פשוט ומהיר

✓ המותר (No Look-Ahead)
  • bar.close, bar.open, bar.high, bar.low
  • ממוצעים ממחירים קודמים
  • self.position, self.equity
  • פרמטרים מה-config
✗ האסור (Look-Ahead)
  • גישה ל-bar הבא
  • מחירי עתיד
  • שימוש בתאריך הסיום
  • כל מקור חיצוני עתידי
NQ Morning Gap Fill — אסטרטגיה בייצור
# imre/strategies/nq_morning_gap_fill_v1/strategy.py from typing import Optional from runner.types import Bar, Signal, Trade, Direction class NQ_Morning_Gap_Fill: """Production strategy (5m NQ, RTH). Captures 9:30 open, enters 10:00–11:30 on gap-fill reversal.""" PARAM_GRID = { "distance_threshold": [40, 80], "entry_window_end": [1030, 1130], } def __init__(self, **config): self.name = "NQ_Morning_Gap_Fill" self.config_dict = { "distance_threshold": 60, "entry_window_start": 1000, "entry_window_end": 1100, "stop_points": 40, } self.config_dict.update(config) self.reset() def reset(self): self.open_price: Optional[float] = None self.traded_today: bool = False self.prev_bar: Optional[Bar] = None def on_bar(self, bar: Bar, idx: int) -> Optional[Signal]: # קפוץ 9:30 — פתח של תחילת יום if bar.hhmm == 930 and self.open_price is None: self.open_price = bar.open # ולא בשעות סגירה if bar.hhmm < 945 or bar.hhmm > 1530: return None # סחרנו כבר היום if self.traded_today: return None distance_from_open = bar.close - self.open_price if abs(distance_from_open) < self.config_dict["distance_threshold"]: return None # התחובר סיגנל אם המחיר עלה + בר קודם יורד if distance_from_open > 0: if self.prev_bar.close < self.prev_bar.open: signal = Signal( direction=Direction.SHORT, entry_price=bar.close, stop_price=bar.close + self.config_dict["stop_points"], target_price=self.open_price, bar_index=idx, bar_dt=bar.dt, ) self.traded_today = True return signal self.prev_bar = bar return None def on_trade_closed(self, trade: Trade): pass Strategy = NQ_Morning_Gap_Fill
📁 מיקום הקובץ

שמור את הקובץ ב:

imre/strategies/שם_האסטרטגיה/strategy.py

או העלה ישירות דרך ה-UI (שלב 2 — "העלה אסטרטגיה חדשה")

code_module:

imre.strategies.שם_האסטרטגיה.strategy.ClassName

👁 Shadow Mode

הפעל אסטרטגיה במצב צפייה בלבד — אפס קשר עם הברוקר עד שה-Triple Lock עובר

שלבי הפעלה
1
🔌 Bridge
לא מחובר
2
📋 אסטרטגיה
לא נבחרה
3
👁 Shadow Runner
עצור
אסטרטגיה:
סטטוס Shadow
בחר אסטרטגיה
Triple Lock
בחר אסטרטגיה
Instrument:
Bars לטעינה:
כשתפעיל Shadow — NT יטען את הכמות הזו של נרות היסטוריים
Comparison Report — Shadow vs Backtest
מ-תאריך
עד-תאריך
Tolerance (שניות)
Daily Shadow Summary
חלון:
בחר אסטרטגיה
Recent SHADOW Signals — מה הרצה שולחת כרגע (לא נשלח לברוקר)
--
בחר אסטרטגיה
📊 Report Analyzer Feature 7 — Backtest Analytics
Run ID

Audit Log

כל אירוע מוקלט — JSONL + SQLite · בלתי ניתן לשינוי

Event Coverage Map — כל האירועים המוגדרים ומצבם
מחווט — נכתב בפועל חלקי — עובר דרך callback, לא ישירות ל-AuditWriter לא מחווט — מוגדר ב-enum, אין קורא עדיין חוסם — JSONL failure → פעולה מבוטלת (RULE 2)
סיגנל / ריסק
signal_generated
signal_executor.py · כל סיגנל
risk_passed
signal_executor.py · 9 gates עברו
risk_rejected
signal_executor.py · gate נכשל / bridge נכשל
regime_mismatch
gate_evaluator.py · gate 9
shadow_would_send
signal_router.py → get_audit_writer() ✓ תוקן
פקודות / ביצועים
order_sent 🔒
signal_executor.py · write_blocking — חוסם
order_ack
signal_executor.py · on_order_ack
order_rejected
on_order_rejected() · NT state=Rejected/Cancelled ✓ תוקן
fill
signal_executor.py · on_fill
position_update
signal_executor.py · after open/close
Flatten / Kill Switch
flatten_initiated 🔒
flatten_manager.py · write_blocking ✓ תוקן
flatten_confirmed
flatten_manager.py · after NT ack
kill_switch_activated 🔒
auto_flatten.py · חוסם
Bridge
bridge_connected
app.py listener על BridgeStateManager ✓ תוקן
bridge_disconnected
auto_flatten.py · on disconnect
bridge_degraded
app.py listener על BridgeStateManager ✓ תוקן
Reconciliation
reconcile_start
position_tracker.reconcile() · לפני כל diff ✓ תוקן
reconcile_diff
position_tracker.py · כשיש פער מ-NT
Regime (Feature 5)
regime_changed
app.py on_audit_event → get_audit_writer() ✓ תוקן
Control / Lifecycle
strategy_enabled
מוגדר — Feature 9
strategy_disabled
מוגדר — Feature 9
daily_loss_locked
מוגדר — אין קורא
Backtest (Feature 1)
backtest_started
מוגדר — runner.py לא מחווט
backtest_completed
מוגדר — runner.py לא מחווט
backtest_failed
מוגדר — runner.py לא מחווט
21 אירועים מחווטים 🔴 7 מוגדרים — טרם מחווטים (backtest, strategy lifecycle, daily_loss) 🔒 3 חוסמים (RULE 2) — write_blocking ✓
From (UTC)
To (UTC)
Event type
Signal ID
Strategy
Dates available: טוען...
Results
Time (UTC) Event Signal ID Strategy Instrument Payload
לחץ Search לטעינה
Signal Timeline
הזן signal_id ולחץ Load

📡 Market Regime Filter

Feature 5 — אסטרטגיות יורצו רק כשמצב השוק תואם ל-edge שלהן (Trending / Choppy / High-Vol). Override ידני מנצח את האוטו-דטקטור. Gate 9 ב-Live חוסם סיגנלים שלא מתאימים ל-regime.

איך הדטקטור קובע את סוג השוק? לחץ להרחבה
🟢 Trending Up
ADX ≥ 25 + slope עולה + R² ≥ 0.55 על 30 ברים.
מגמה עולה ברורה — מתאים לאסטרטגיות breakout-long ו-trend-following.
🔴 Trending Down
ADX ≥ 25 + slope יורד + R² ≥ 0.55 על 30 ברים.
מגמה יורדת ברורה — מתאים לאסטרטגיות breakout-short.
⚪ Choppy
ברירת מחדל — ADX נמוך, אין כיוון ברור.
מתאים ל-mean-reversion, scalping, או פשוט — אל תיכנס.
גם מצב fail-closed כשאין מספיק דאטה.
🟡 High Volatile
ATR-Z ≥ 2σ מעל הממוצע (100 ברים) או ATR% ≥ 0.15%.
גם: 5 דקות אחרי פתיחת RTH, ימי FOMC (2h לפני ההכרזה).
רוב האסטרטגיות צריכות להיחסם פה.
סדר עדיפויות
  1. High Volatile — גובר על הכל (ATR-Z / session)
  2. Trending Up / Down — ADX + slope + R²
  3. Choppy — ברירת מחדל
Hysteresis & Confidence
הדטקטור דורש 3 ברים רצופים לפני שמחליף regime (מונע flicker).
Confidence עולה בהדרגה: 33% → 67% → 100%.
Session rules (RTH open, FOMC) מיידיים — ללא המתנה.
מודול: imre.detectors.standard_ohlcv  ·  נרות מ-NinjaTrader (לא TradingView — אין API בפרויקט). כפתור 📥 טען נרות מושך עד 200 נרות @ 1m מ-NinjaTrader; כל בר חדש מעדכן את ה-buffer (תמיד עד 200 אחרונות).
Instrument: buffer: -- bars
Effective Regime
--
--
Auto-detected
--
Override
--
Confidence
--
Last update
--
🛠 Manual Override (Ops)

Override נשמר ב-system_state ושורד restart. ניקוי מחזיר את ה-effective לאוטו-דטקטור. Auto detection ימשיך לרוץ ברקע אך לא יחליף את ה-override.

🎯 Strategy filter status
בחר אסטרטגיה כדי לראות אם היא מסוננת כרגע
⚙ Valid Regimes — לאסטרטגיה הנבחרת
בחר אסטרטגיה
All instruments — live overview
loading...
Recent regime events
(אין אירועים. כל regime.update שיגיע מה-WS יופיע כאן.)

Live Execution

ניהול פוזיציות לייב, bridge status, kill switch ושליחת flatten

ראנרים פעילים טוען...
היסטוריה אחרונה (20 runs)
טוען...
שלבי הפעלה
1
🔌 Bridge
לא מחובר
2
🔑 Kill Switch
בדוק
3
▶ Live Runner
עצור
NinjaBridge — --
--
WS --
Bar Stream Preview — read-only · מנוי NT שולח עד 200 נרות + לייב
Instrument
Timeframe
לחץ ▶ Start Stream כדי לראות בארים זורמים בזמן אמת מ-NinjaTrader.
Live Runner — Stopped
Strategy
Instrument
Timeframe
Bars לטעינה
Account
Account Type
Qty (contracts)
Strategy Config JSON (optional)
Kill Switch — OFF
עוצר את כל ביצועי הלייב מיידית — ייעול לאחר FLATTEN
NT Positions (Live) (טוען...) ⚡ Ground truth מ-NinjaTrader — לא תלוי ב-IMRE Runner
טוען מ-NT...
IMRE Positions (DB) (0)
טוען...
Flatten
Account ID
Instrument (ריק = הכל)
Recent Live Signals
טוען...
NT Position Sync — גיבוי ובדיקת עקביות כל 30 שניות
לא סונכרן עדיין
NT Positions
--
IMRE Open
--
Total Syncs
--
Total Diffs
--
פוזיציות פתוחות ב-NinjaTrader
Account Instrument Direction Qty Avg Price Unrealized PnL
לא בוצע סינכרון עדיין

⚙️ Strategies

טוען...

🎛 Control Plane — Feature 9

NinjaBridge — —
P&L ופוזיציות מתעדכנים רק כשה-bridge מחובר
● —
Kill Switch — OFF
מצב: בטוח
⚡ Circuit Breaker — Auto Kill Switch
מפעיל Kill Switch אוטומטית אם גבולות החשבון נחצים
טוען...
Strategy Control חשבון + מצב לכל אסטרטגיה
טוען...
Accounts — NinjaTrader
טוען...
🔔 Alerts (0)
WS: —
אין התראות

🖥 Infrastructure — NinjaBridge Instances

כל מחשב שמריץ NinjaBridge נרשם כאן ומדווח heartbeat לענן. ירוק = מחובר.
Total Instances
0
Online · NT Connected
0 · 0
Total Accounts
0
➕ צור Instance חדש
Instances
Label סטטוס NT VPS IP Accounts Heartbeat אחרון
טוען…

💼 Accounts — חשבונות מסחר

החשבונות שלך — מטא-דאטה (label, type, instance, status) + נתונים חיים מ-NinjaTrader (balance, P&L, פוזיציות).
Total Accounts
0
Active
0
Blown
0
➕ הוסף חשבון ידנית
החשבונות שלי
Account Label Type Status Balance Daily P&L פוזיציות NT
טוען…

🔬 Optimization

▶ New Optimization Run
Strategy
From
To
Slippage
Parameter Ranges
הגדר טווח לכל פרמטר — האופטימייזר מריץ backtest על כל שילוב
אין פרמטרים — לחץ "+ Add Parameter"
Method
Objective
History
אין ריצות

📡 Telegram Notifications — F11

📊 Current Status
Loading...
⚙️ How to Set Up
  1. Open Telegram → search @BotFather → /newbot → copy the token
  2. Add the bot to a group or open a DM → send any message
  3. Get your Chat ID: https://api.telegram.org/bot<token>/getUpdates
  4. Paste token + Chat ID below → Save → Test
🔑 Settings
Bot Token
Token is stored securely — never shown again
Chat ID
Event Triggers
📋 What triggers a message?
kill_switch
Kill Switch activated / deactivated
bridge
NinjaBridge connects / disconnects
trade_fill
Every order fill from NT
flatten
Flatten All executed
regime
Market regime changes
daily_summary
End-of-day P&L summary
לחץ על הטאב כדי לטעון את רשימת הדאטאסטים