4Xedge Bias Terminal
4XEDGE BIAS DESKTOP ONLY The terminal reads ten studies against six timeframes in one grid. That needs at least 1024 pixels of width, and squeezing it would make the readings harder to trust rather than merely harder to see. Open it on a desktop or a wider window.
{{ pairSym }} {{ feedLabel }} {{ feedAge }} {{ clsTag }}
{{ price }} {{ tickGlyph }}
{{ chg }}
{{ marketLabel }}
MARKET
{{ ovBuyN }} BULL
{{ ovSellN }} BEAR
{{ ovCountNote }}
FULL STACK
{{ ovAligned }}
every timeframe agrees
STRONG
{{ ovStrong }}
{{ ovThreshNote }}
NET BIAS
{{ netScore }} {{ netBias }}
{{ netNote }}
DAILY RANGE
H{{ dayH }}
L{{ dayL }}
WEEKLY RANGE
H{{ wkH }}
L{{ wkL }}
ATR 14 · D1
{{ atrD }}
{{ atrNote }}
SESSION
{{ session }}
{{ sessionNote }}
NEXT EVENT
{{ newsImpact }} {{ newsCcy }} {{ news }}
{{ newsIn }} {{ newsAlso }} {{ newsScope }}
SPONSORED
468 × 60 BANNER SLOT
{{ sponsorNote }}
VIEW
SCOPE
TIMEFRAMES
ORDER BY
DENSITY
TIMEFRAME
{{ hint }}
{{ feedLabel }} {{ feedStamp }} {{ feedZone }} {{ originLabel }} {{ dataMark }} NOT SAVED
{{ vid.sec }} {{ vid.title }} {{ vid.pos }}
{{ vid.placeholder }}
{{ vid.time }}
{{ info.title }}
{{ info.body }} {{ info.tag }}
{{ feedLabel }} · {{ feedAge }} Readings below are frozen at {{ feedStamp }} {{ feedZone }} and are shown without direction colour. {{ feedFailNote }}
FEED RESTORED Ticks resumed at {{ restoredAt }} {{ feedZone }} after {{ restoredGap }}. Every reading on screen has been recomputed — nothing below is frozen.
CONFIG SYNCED {{ syncNote }}
Counted twice
{{ dupAskText }} {{ dupAskNote }}
Feed disconnected
No price data has arrived for {{ feedAge }}. Every reading on screen is frozen at the last good tick and is no longer a measure of the market.
LAST GOOD TICK · {{ feedZone }} {{ feedStamp }}
SYMBOL {{ pairSym }}
{{ feedFailNote }} Trying again is safe — nothing is sent from this screen.
NO FAVOURITES
Watch shows one card per favourite symbol, so there is nothing to show until you star one. Favourites are also the header row and the ⇧1–8 shortcuts.
{{ scanDrawnNote }} {{ scanTieNote }}
NO NET AT THIS WIDTH {{ scanNoNetWhy }}
{{ h.label }}
ORDER, NOT RANKING  A symbol above another has a higher figure in the column the list is ordered by. It is not a better trade, and nothing on this surface says which of them to take. The scan reports what your studies printed across the universe; reading it is yours.
{{ ov.sym }} {{ ov.cls }} {{ ov.name }} {{ ov.bias }} {{ ov.score }}
{{ ov.summary }} {{ ov.price }} {{ ov.chg }}
NET BIAS {{ ov.net.label }} {{ ov.net.gapNote }} {{ ov.net.srcNote }} TURNED {{ ov.net.since }}
{{ ov.net.why }}
{{ h.name }} {{ h.param }}
{{ t.label }}
{{ t.bias }} {{ t.score }}
{{ t.counts }}
{{ t.tag }} {{ t.agree }}
{{ s.glyph }}
{{ ov.handoff }}
{{ noticeLabel }} {{ noticeMsg }} {{ noticeNext }}
WEIGHTED BIAS
0–100 · direction by colour
{{ n.name }} NOT COUNTED
{{ n.param }}
{{ t.label }} {{ t.provShort }} {{ t.biasShort }}
{{ t.score }} {{ t.countsShort }}
{{ d.glyph }}
{{ tf.label }} {{ tf.bias }} {{ tf.score }} {{ tf.tag }}
AGREEMENT {{ tf.agree }}
BARS SINCE FLIP {{ tf.flip }}
TF RANGE {{ tf.range }}
ATR {{ tf.atr }}
STUDY READINGS
{{ d.label }}
{{ d.val }}
{{ d.glyph }}
{{ t.label }} {{ t.key }} {{ t.provTag }}
{{ t.bias }} {{ t.score }}
BEARISH {{ t.counts }} BULLISH
{{ t.histLabel }}
+100 0 -100
{{ d.label }} {{ d.glyph }}
{{ tf.label }} {{ tf.key }} {{ tf.provTag }}
{{ tf.bias }} {{ tf.score }}
BEARISH 100 {{ tf.counts }} BULLISH 100
{{ tf.histLabel }} scale −100 bearish → +100 bullish
+100 0 -100
AGREEMENT {{ tf.agree }}
SINCE FLIP {{ tf.flip }}
TF RANGE {{ tf.range }}
ATR {{ tf.atr }}
STUDY READINGS
{{ d.label }}
{{ d.val }} {{ d.glyph }}
TIMEFRAME
WEIGHTED BIAS · BEARISH ← → BULLISH
{{ n.ab }} {{ n.short }}
{{ t.label }}
{{ t.key }} · {{ t.counts }} {{ t.provTag }}
{{ t.score }}
{{ t.biasShort }}
{{ d.glyph }}
AGREEMENT {{ t.agree }}
SINCE FLIP {{ t.flip }}
TF RANGE {{ t.range }}
ATR {{ t.atr }}
STUDY READINGS
{{ d.name }}
{{ d.valShort }} {{ d.glyph }}
{{ t.histLabel }}
+100 0 -100
SANDBOX
90 BARS · FIXED
OHLC
{{ chartProv }} H {{ chart.hiLabel }} L {{ chart.loLabel }} {{ tf.label }}
{{ c.name }} {{ c.param }} {{ c.val }} {{ c.tag }}
{{ chartCount }}
NOT HELD {{ chartRefused }}
{{ chartNote }}
{{ m.glyph }}
{{ chartCross.when }} {{ chartCross.barsBack }}
O {{ chartCross.o }} H {{ chartCross.h }} L {{ chartCross.l }} C {{ chartCross.c }}
{{ k.label }}
{{ chart.lastPrice }}
{{ L.tag }}
{{ o.name }} {{ o.param }} {{ o.tag }} {{ o.val }} {{ o.caret }}
{{ g.label }}
{{ k.text }}
STUDY ALERTS {{ alertPanelCount }}
From your Matrix slots, grouped by the timeframes in your preset. The chart plots the selected group.
{{ g.label }} {{ g.count }}
{{ a.name }} {{ a.age }}
nothing fired
{{ chartPaneNote }}
{{ chartEdit.name }} {{ chartEdit.ab }} {{ chartEdit.tag }}
{{ chartEdit.scope }} {{ chartEdit.out }} Draws as {{ chartEdit.where }} · {{ chartEdit.version }}
LINE COLOUR
Chart only — the other views colour by direction, not by study. A dot marks a colour another study on this chart is already using.
SLOT NAME Renaming changes the label everywhere this slot appears. The parameter line below stays its own field.
PARAMETERS
{{ p.label }}
{{ p.val }} {{ p.hint }}
The plot redraws as you change these — that is what the sandbox is for.
ALERT
{{ chartEdit.alertIntentBlurb }}
FIRES ON {{ chartEdit.alertCondLabel }}
{{ chartEdit.alertLvlLabel }}
{{ chartEdit.alertLvl }} {{ chartEdit.alertLvlHint }}
Level reads in {{ chartEdit.alertLvlUnit }} — the study’s own units.
ALERT An alert belongs to a Matrix slot — it is what puts a badge on a cell and a line in your log. Send this study to your Matrix and its condition appears here.
Load a study onto the chart SANDBOX {{ chartMenuCount }}
IN YOUR MATRIX {{ chartMenuMatrixCount }} loads the slot itself, at its parameters
{{ m.no }} {{ m.name }} {{ m.param }} {{ m.where }}
{{ s.name }} {{ s.ab }}
{{ s.tags }} {{ s.limitLabel }}
{{ s.where }} {{ s.src }}
Loading from your Matrix pulls that slot onto the chart — editing it here edits it there. Adding from the list gives a scratch copy.
YOUR ACCOUNT
ADMIN Desk console Any view or pair button drops you straight back into the data.
Studies & timeframes Ten study slots and six timeframe columns, in the order every view reads them. Studies stay global — the score is a function of the set, so it cannot differ between views. Timeframes may be overridden per view.
{{ cfgName }} {{ cfgBy }} · {{ slotSummary }}
{{ cfgStatus }}
SAVE AS PRESET
{{ cfgWarn }} {{ cfgToast }}
TIMEFRAME COLUMNS
{{ scopeLabel }} · {{ inheritLabel }}
{{ g.title }}
Columns always run shortest to longest — traders read left to right in time, so that order is not a preference. Hover any period for its boundary rule. {{ sourceName }} · {{ sourceConvention }}
STUDY SLOTS click a slot to edit · ↑ ↓ to reorder
NAME · PARAMETER LINE
{{ g.k }}
{{ r.i }}
{{ r.name }} {{ r.out }} {{ r.prov }}
{{ r.param }} {{ r.shortNote }}
{{ libCount }}
SOURCE
OUTPUT
{{ s.name }} {{ s.ab }}
{{ s.tags }} {{ s.limitLabel }}
{{ s.src }} {{ s.out }}
{{ selName }} {{ selAb }}
{{ selOut }} {{ selVersion }}
SLOT NAME Renaming changes the name only. The parameter line below it is a separate field, so a custom name can never swallow it.
PARAMETERS
{{ p.label }}
{{ p.val }} {{ p.hint }}
BIAS FORMULA UNAVAILABLE
{{ biasHouseNote }}
REPORTS
{{ biasOutNote }}
Feeds the score as {{ biasFmtLabel }}
Not counted. This study still prints its reading and can still raise alerts — it just does not vote. Every view marks it so the score stays explicable from what is on screen.
ALERT
{{ alertHouseNote }}
{{ alertIntentBlurb }}
{{ alertLvlLabel }}
{{ alertLvl }} {{ alertLvlHint }}
Level reads in {{ alertLvlUnit }} — the study’s own units, so one setting holds across your symbols.
Fires on {{ alertCondLabel }}
{{ alertRevNote }}
Presets A preset is a snapshot of your studies, timeframes and parameters — never your symbols. Loading one creates a draft; nothing reaches the views until you apply it.
{{ cfgToast }}
{{ p.name }} NEW · OFFERED, NOT PUSHED
{{ p.by }} · {{ p.meta }}
SAVE THIS CONFIGURATION
Desk presets are immutable. When the desk publishes a new default it appears above as an offer — your configuration is never rewritten underneath you.
SHARE THE LIVE CONFIGURATION
This code is what you are working on now — use COPY on any row above to share a preset without loading it. Codes travel by any means you like: no directory, no ratings, no performance claims. A study your registry does not carry is reported and dropped on import rather than failing silently.
Data source Your source decides three things: which symbols you can reach, which timeframes exist, and whether you can bring your own studies.
{{ src.name }} {{ src.statusLabel }}
{{ src.blurb }} {{ src.convention }}
SERVED NATIVELY {{ src.native }}
AGGREGATED BY US {{ src.agg }}
UNAVAILABLE {{ src.gone }}
SYMBOLS {{ src.symbols }}
STUDIES {{ src.studies }}
CUSTOM STUDIES {{ src.pushLabel }}
{{ srcWarn }}
TIMEFRAME COVERAGE What this source serves itself, what we fold for it, and what cannot be had at all. Prices are {{ src.provider }}; every study is computed by our engine.
{{ g.title }}
{{ c.key }} {{ c.badge }}
WHERE EACH NUMBER COMES FROM Every study slot and every timeframe carries its origin, so a disagreement with the chart on your other screen is explainable rather than mysterious.
LOCAL Our engine, computing on your source's bars. The default, and the only mode that feeds the weighted score.
AGG A timeframe your source does not serve, built by folding a shorter one it does. Exact arithmetic — open, high, low, close — never for daily and above, where the boundary is a decision rather than a calculation.
EXTERNAL A value your own platform posts into a slot. We host the number; the formula stays yours.
{{ o.name }} {{ o.status }}
{{ o.blurb }}
{{ o.periods }} {{ o.push }}
Custom studies need a connection by design. We host the numbers your own system produces rather than running your formulas — your maths stays yours, and stays on your machine.
Alerts A study alert is an event, not a reading. It rides as a badge beside the direction glyph that raised it — the glyph still carries direction, the badge carries the fact that something happened — and it never moves the weighted score.
!
Trend confirmation
You armed this slot to say “tell me when this agrees with the move”, and it did. Solid on the bar it fired, fading across the three closed bars behind it — so a mark you come back to still reads as recent rather than as now.
Trend overextended
You armed this slot to say “tell me when this has run far enough to doubt”, so the mark argues with the glyph beside it and therefore points: the amber caret runs against the printed direction. It is a state, not a call — and it never touches the score.
Price alert A diamond, never a caret on a glyph — this one fired on price, so no study said anything and no slot is involved. It carries the same two intents, and it belongs to one symbol.
Toast on arrival The cell always pulses and the badge always appears. The toast is the only part that interrupts, so it is the only part with a switch.
Pause all alert toasts PAUSED
For when the market goes and everything fires at once. Badges, cell pulses, rollups and the log all keep working — only the interrupting card stops. Critical desk messages and the feed cascade are never paused.
Another tab of yours is showing the toasts. One alert should interrupt once, not once per tab — this tab still marks cells, pulses and logs everything.
PRICE ALERTS {{ priceCount }} {{ priceSymNote }}
These fire on price, not on a study — no slot is involved and no score moves. They belong to one symbol, because a level on {{ priceSymName }} is noise anywhere else, so switching symbols switches this list.
{{ priceNote }}
{{ a.ab }} {{ a.label }} {{ a.evLabel }}
{{ p.label }}
{{ p.val }} {{ p.unit }}
No price alerts on {{ priceSymName }}. Add one below, or arm a level by eye with + LEVEL on the Chart view.
ARMED SLOTS {{ armedCount }} click a slot to set its condition
{{ a.i }} {{ a.n }} {{ a.param }} {{ a.srcTag }} REV {{ a.cond }}
RECENT ALERTS {{ alertLogCount }}
{{ r.when }} {{ r.sym }} {{ r.tf }} {{ r.study }} {{ r.param }} {{ r.cond }}
Nothing has fired yet this session. Armed slots raise alerts on bar close. The most recent forty land here.
Session only in this build. In production this is a per-user ledger, stamped in the source’s zone, holding the value each study printed when it fired.
Profile Your name is only used to address desk messages. Your email is your sign-in.
REGISTERED {{ acct.joined }}
LAST SIGN-IN {{ acct.lastSeen }}
DISPLAY NAME
EMAIL
{{ acct.email }} CONFIRMED
AWAITING CONFIRMATION {{ pendingAge }}
{{ pendingEmail }} We sent a confirmation link to that address. Nothing changes until you click it — {{ acct.email }} stays your sign-in, so a typo here costs you nothing.
{{ emailNote }}
User manual What each number means, how to set the terminal up, and what to do when a feed goes quiet. Answers first, walkthroughs below — both are maintained by the desk.
The whole manual, as one file Everything below and more, in a single indexed and searchable PDF. Keep it on your own machine and it works with the platform closed — on a second screen, on a plane, or when the desk is asleep. {{ manualPdfMeta }}
Download PDF
A downloadable PDF of the full manual is not published yet. The questions and walkthroughs below are the current version.
FREQUENT QUESTIONS {{ faqCount }}
{{ f.q }} {{ f.cat }} {{ f.chev }}
{{ f.a }}
No walkthrough videos published yet.
WALKTHROUGH VIDEOS {{ vidCount }}
{{ g.title }} {{ g.note }}
{{ v.len }}
{{ v.title }} {{ v.note }}
Questions and videos are maintained from the admin console — durations and thumbnails come from the uploaded file.
Security Change your password, or sign every device out if you think someone else has it.
CURRENT PASSWORD
NEW PASSWORD
{{ pwStrengthLabel }}
{{ r.mark }} {{ r.label }}
CONFIRM NEW PASSWORD The two passwords do not match.
Message archive {{ inboxMeta }} · click a row to read it
RECEIVED PRIORITY SUBJECT STATUS
{{ m.when }} {{ m.prio }} {{ m.subject }} {{ m.status }}
Research Ask the history a question in the numbers your own configuration already prints, and read the answer as a report. One symbol at a time, and never a verdict — this page says what the studies printed, never whether that turned out well.
NOT SAVED {{ rsWriteFail }}
SYMBOL
{{ rsSymKey }} {{ rsSymName }} {{ rsSymCls }}
One symbol per report, because a report has one price chart and one set of marks. Cross-symbol questions are answered by comparing reports that already exist, which costs no compute and cannot contradict its sources.
STUDY SET {{ rsSetChip }} {{ rsSetCount }}
{{ s.name }} {{ s.param }} HOUSE
{{ rsSetNote }}
CONDITION
{{ r.n }} {{ r.and }} {{ r.line }} {{ r.name }} CANNOT BE MET DETACHED HELD {{ r.held }}
{{ rsRowNote }}
TIMEFRAMES
{{ rsTfNote }}
RANGE
BAR BUDGET {{ rsBudgetLabel }} of {{ rsBudgetCap }}
{{ rsBudgetNote }}
Nothing runs until you press RUN QUERY, and nothing here is kept until SAVE QUERY. {{ rsSaveQWhy }}
NOT FILED {{ rsNote }}
{{ rsCmpName }} AXIS · {{ rsCmpAxis }}
{{ rsCmpProv }}
REPORTS COMPARED {{ rsCmpCompared }}
PRINTED AT ALL {{ rsCmpPrinted }} {{ rsCmpPrintedNote }}
WHAT HOLDS, AND WHAT VARIES
{{ d.label }} {{ d.tag }} {{ d.value }}
MEMBERS
SYMBOL EPISODES BARS PER 1,000 EVALUATED HOLES MOST RECENT
{{ m.sym }} {{ m.eps }} {{ m.bars }} {{ m.per1k }} {{ m.ev }} {{ m.holes }} {{ m.last }}
{{ rsCmpEqualLabel }} {{ rsCmpEqualNote }}
{{ rsCmpOrderNote }}
HOW MANY AT ONCE {{ rsCmpOvBars }} shared {{ rsCmpOvTf }} bars
{{ rsCmpOvNote }}
{{ b.n }}
{{ b.label }}
{{ rsCmpAtOnceNote }}
WHICH TWO, AND HOW OFTEN
{{ p.pair }} {{ p.n }} {{ p.shareA }} {{ p.shareB }}
{{ rsCmpPairNote }}
SAVED QUERIES
{{ q.name }} {{ q.cond }}
{{ q.set }} {{ q.tfs }} {{ q.range }} {{ q.reports }}
No saved queries yet. Build one on BUILD and press SAVE QUERY — it keeps the question without an answer, so it can be run again on any symbol. Reading your saved queries… {{ rsQErrNote }} A query holds a RELATIVE range, so one saved as "last 2 years" still means the last two years next spring. It carries no symbol and no answer — those belong to the report it produces.
REPORTS {{ rsPickedCount }}
SYMBOL QUESTION EPISODES BARS PER 1,000 MOST RECENT
No reports yet. Running a query files one here, and reports are what a comparison is built from. Reading your reports…
NOT READ {{ rsLibErrNote }}
Per 1,000 evaluated bars sits beside the raw count because completeness differs between these reports, and a count over an unequal sample compares nothing.
COMPARISON SUMMARY Tick two or more reports above. A comparison can only be drawn when exactly one thing differs between them, and this panel says which.
{{ d.label }} {{ d.tag }} {{ d.value }}
HOLDS is what you want — a dimension that holds cannot explain any difference. AXIS is the one thing that varies, and therefore the only thing a difference can be attributed to.
{{ rsGateWhy }}
SAVED COMPARISONS
{{ c.name }} {{ c.state }} {{ c.n }}
No saved comparisons yet. Tick two or more reports above and open one. A comparison stores a list of report ids and no figures of its own, which is what makes saving one safe — reports are immutable, so the list cannot go stale. Each row re-checks its own comparability rather than trusting the name it was saved under.
NOT COMPUTED {{ rsQuestion }} {{ rsRefusedWhy }} Nothing was computed and nothing was stored. Change the query on BUILD and run it again.
QUEUED · NOT COMPUTED YET {{ rsQueuedNote }}
COULD NOT BE READ {{ rsQuestion }} {{ rsReadFailWhy }}
READING… {{ rsQuestion }} {{ rsRepLoadNote }}
FROZEN RESULT DEMO · SAMPLE RESULT {{ rsRepSym }} {{ rsRange }} ran {{ rsRanAt }}
EXPORT
{{ rsExpNote }} {{ rsExportWhy }}
READ THE QUESTION FIRST {{ rsQuestion }}
EPISODES {{ rsEpisodes }} runs, counted once each
QUALIFYING BARS {{ rsQualBars }} every bar that qualified
SHARE OF EVALUATED {{ rsShare }} {{ rsShareNote }}
NOT EVALUATED {{ rsHolesNote }} {{ rsCensoredNote }}
WHERE YOUR LEVEL SITS {{ rsDistDir }} bars on {{ rsDistTf }}, by magnitude
{{ b.n }}
{{ b.label }}
{{ rsDistNote }}
TIMEFRAME BY TIMEFRAME
TF IN RANGE HOLES EVALUATED PARTIALEPISODES BARS SHARE LONGEST
{{ t.k }} {{ t.inRange }} {{ t.holes }} {{ t.evaluated }} {{ t.partial }} {{ t.episodes }} {{ t.bars }} {{ t.share }} {{ t.longest }}
In range minus holes is evaluated, on every row, so the table reconciles on screen rather than asking you to take it on trust.
WHICH SLOTS AGREED
STUDY ON MATCHES ON RANGE DIFF
{{ s.n }} {{ s.m }} {{ s.r }} {{ s.diff }}
{{ rsSlotNote }}
PRICE GENERATED PRICE
{{ rsMarkerLabel }}
{{ rsPriceHi }} {{ rsPriceLo }}
{{ m.n }}
{{ rsWindowNote }}
THE OCCURRENCES
WHEN SCORE EVIDENCE
{{ b.at }} {{ b.mag }} {{ b.rep }}
{{ rsBarsNote }}
# WHEN TRADED PEAK MEAN EVIDENCE
{{ e.seq }} {{ e.when }} {{ e.bars }} {{ e.peak }} {{ e.mean }} {{ e.rep }}
{{ rsEpsNote }}
HOW LONG THEY LASTED
{{ b.n }}
{{ b.label }}
Traded bars, not calendar days.
WHEN THEY BEGAN
{{ b.n }}
{{ b.label }}
{{ rsWhenLabel }}
ACROSS THE RANGE
{{ b.n }}
{{ b.label }}
Each bar is its own scale, and the count is printed rather than read off a height.
HOW FAR APART
MEDIAN GAP {{ rsGapMedian }}
LONGEST GAP {{ rsGapLongest }}
SINCE THE LAST {{ rsGapSince }}
{{ rsGapNote }}
THE CONDITION, ROW BY ROW
{{ f.k }} {{ f.note }}
WHAT YOU ARE ASKING ABOUT {{ rsEditKind }}
DIRECTION
OPERATOR
{{ p.label }} {{ p.value }}
IT WILL READ {{ rsEditLine }}
NAME
{{ rsEditUsedNote }}
YOUR CONDITIONS
{{ rsLibNote }}
{{ c.line }} {{ c.name }}
{{ c.kind }} CANNOT BE MET · {{ c.unreachable }}
BUILD A CONDITION WITHOUT A TEMPLATE Say what you are asking about and what you were looking for. The kind is resolved from the pair — you do not pick it, the same way an alert's condition is resolved from its intent rather than chosen.
ASKING ABOUT
LOOKING FOR
RESOLVES TO {{ rsResolved }} You did not pick this. It follows from the two answers above, so a question you can state has a statement the page can make.
{{ rsRefuse }} {{ rsRefuseWhy }}
EXAMPLE TEMPLATES Six kinds is how a statement is STORED, not how a question is asked. Each of these loads as a copy and is never linked, so editing after starting from one changes nothing here.
{{ t.title }} {{ t.note }}
Connect an LLM COMING SOON
Nothing on this page is wired in v1 — no field here stores anything, and no request leaves the terminal. It is here because the readings this platform prints are the input an assistant needs, and you should be able to see where that goes before you invest your attention in it.
NO LIVE TRADING. NOT NOW, NOT LATER.
{{ n.t }}
{{ f.l }} {{ f.s }}
HOW IT WOULD CONNECT two routes, and the difference between them is what leaves your desk — pick one to read it
{{ r.n }} {{ r.sub }} {{ r.tag }}
{{ r.lede }}
{{ p.t }}
{{ f.label }}
{{ f.ph }}
Connect {{ r.note }}
WHAT IT WOULD BE GIVEN
{{ r.mark }} {{ r.t }}
Scoped by you, per conversation. The scope control ships before the key field does.
WHAT IT WILL NEVER DO
{{ n.t }}
The terminal hosts your ideas. Bolting a model on does not change whose call it is.
WHAT IT WOULD LOOK LIKE {{ llmChatNote }}
ASSISTANT {{ llmChatRoute }}
EXAMPLE · NOT YOUR DATA · NO READINGS SHOWN
H1 and H4 have been arguing on this pair all morning. Which of my slots are pulling against each other, and which ones have not moved?
Your set splits into trend slots and oscillators. On H4 both groups agree; on H1 only the oscillators have turned, and every trend slot is unchanged from where it was at the session open. So the disagreement is coming from the faster group, not from a change of trend — and one of those two slots is the one you armed as overextended. I have not told you what to do with that. Ask me to argue it the other way and I will.
Fine. Write that oscillator as an MQL4 indicator so I can watch it on my own charts.
Here it is with your parameters, not the defaults. Read it before you compile it — and it is an indicator, so there is nothing in it that can send an order.
MQL4 YourStudy.mq4 SAVE FILE
TAKE A STUDY OUT
{{ p.t }}
OR MAKE IT ARGUE WITH YOU
{{ p.t }}
Connect a model and this box opens. Send
WHAT IT WOULD BE FOR
{{ r.tag }} {{ r.n }} {{ r.d }}
WHAT HAS TO BE TRUE FIRST
{{ p.i }} {{ p.t }}
In that order, and not before. A half-connected assistant that guesses at definitions would be worse than none — it would print confident sentences about numbers nobody has pinned down yet. If you want to push it up the queue, that is what the Feedback page is for.
Feedback Tell us what you want built. Plain text to the desk — no attachments, no formatting, one destination, and nothing you write here is broadcast to other traders.
BEFORE YOU SEND This platform is free and the desk is small. When tickets are backed up a reply can take several days — suggestions are read in order, questions after. Most questions are already answered in the user manual, so start there if you need something today.
FROM {{ fbFromName }} {{ fbFromEmail }}
ADDING TO THREAD
{{ fbReplyTopic }} {{ fbReplyMeta }}
WHAT IS THIS ABOUT or file it under something else
MESSAGE
{{ fbCount }}
{{ fbNote }}
One message a minute, three open threads at a time, and nobody can be added to a thread — the limits sit on the desk's side too. Replies arrive here signed by the admin who wrote them.
Your threads {{ fbMeta }}
Nothing sent yet. Anything you send appears here with its own trail — sent, whether the desk has opened it, and the reply when it comes.
{{ t.topic }} NEW REPLY {{ t.status }} {{ t.when }} {{ t.caret }}
{{ m.who }} {{ m.role }} {{ m.when }}
{{ m.text }}
{{ t.trace }}
{{ acctToast }}
{{ open.prio }} {{ open.when }}
{{ open.subject }}
MESSAGES {{ inboxMeta }}
{{ m.subject }} NEW {{ m.when }}
{{ m.excerpt }}
Messages come from the desk. Nothing here is a trade instruction.
{{ open.prio }}
{{ open.subject }}
{{ open.when }}
{{ alertCardTag }} {{ alertCardWhen }}
{{ alertCardTitle }} {{ alertCardBody }}
{{ card.prio }} JUST IN {{ card.queueLabel }} {{ card.when }}
{{ card.subject }}
{{ card.prio }} {{ card.when }}
{{ card.subject }}
The desk marked this critical — the terminal stays covered until you acknowledge it.
SYMBOL SEARCH
{{ symNote }}
{{ row.title }}
{{ row.k }} {{ row.sym }} {{ row.name }} {{ row.cls }} {{ row.fedNote }}
↑↓ move · Enter select · ⇧1–8 jump to a favourite {{ symFootCount }}{{ symFootWider }}