ChartXpert AIChartXpert AI

chartxpert.ai — engineering core v1.0

محرك رسوم مالية هجين، مليون نقطة بيانات عند ١٢٠ إطاراً في الثانية، وذكاء اصطناعي يعمل على جهاز المستخدم.

ChartXpert AI نواة عرض وتحليل تعمل بالكامل داخل المتصفح: تخزين عمودي في ذاكرة مشتركة، هرم تفاصيل تكيفي لا يفقد القمم والقيعان، استنتاج عصبي بلا أي رحلة إلى الخادم، ودعم أصلي متكافئ للعربية والإنجليزية دون إعادة بناء أي مخزن.

ميزانية الإطار
8.33 ms
إدراج شمعة
O(1)
زمن الوصول للبكسل
< إطار واحد
اتجاهان أصليان
RTL / LTR

patentable innovations

أربع ركائز ابتكارية مترابطة

القرار المعماري الحاكم: البيانات لا تُنسخ، بل تُسجَّل مرة واحدة في ذاكرة خطية مشتركة، ثم تُشير إليها كل الطبقات بمُعامِلات.

01

محرك العرض الهجين الفائق

WebGL Frame Core · WebGPU-ready / WASM

كل شمعة وذيل وشريط حجم يصبح مستطيلاً واحداً في دفعة instanced واحدة، فيستقبل كرت الرسوميات نداء رسم واحداً فقط لكل إطار مهما بلغ عدد الشموع الظاهرة. المسار الحالي WebGL2 بمسار احتياطي على Canvas، والواجهة نفسها تنتقل إلى WebGPU وحسابات Rust/WASM دون تغيير في الطبقات الأعلى.

1,000,000+

نقاط بيانات

120 FPS

معدل الإطارات

< 60 MB

ذاكرة السلسلة

02

نظام التفاصيل التكيفي

Adaptive LOD System

هرم مستويات تفصيل تحفظ كل عقدة فيه فهرس الشمعة صاحبة القمة وصاحبة القاع، فلا تُفقد القيم القصوى والدنيا عند التصغير، ويبقى ترتيبها الزمني صحيحاً داخل البكسل الواحد.

O(log N)

تحديث تزايدي

صفر

فقدان القمم

compute shader

إعادة البناء

03

طبقة عصبية داخل المحرك

In-Engine Neural Layer

استنتاج على شريحة المستخدم عبر WebNN / ONNX Runtime، يقرأ الذاكرة المشتركة نفسها التي يرسم منها المحرك، ويكتب نتائجه في مخزن تعليقات مزدوج ذري — فصل تام بين زمن التحليل وزمن العرض.

0

رحلات للخادم

≤ 40 ms

زمن الاستنتاج

لا يوجد

أثر على FPS

04

بث صفري النسخ

Zero-Copy Streaming

ترميز ثنائي ثابت الطول عبر WebTransport، يُفكّ داخل عامل منفصل مباشرةً إلى أعمدة في ذاكرة مشتركة، ثم يُرفع إلى ذاكرة الرسوميات كنطاقات متغيرة فقط، مع دمج التِكات داخل الشمعة.

< 5 µs

فك الترميز

< 150 µs

رفع إلى GPU

ثابت

استهلاك الذاكرة

high-level architecture

مخطط الطبقات وتفاعلها

ست طبقات: النقل، نواة البيانات، الطبقة العصبية، محرك العرض، نواة التنسيق، ثم الواجهة البرمجية المفتوحة.

┌──────────────────────────────────────────────────────────────────────────┐
│  L6 — ChartXpert SDK / Public API            (TypeScript, main thread)    │
│  Chart · Series · Indicator DSL · Tools · LocaleDirector                 │
└───────────────▲───────────────────────────────────┬──────────────────────┘
                │ commands                           │ typed event bus
┌───────────────┴───────────────────────────────────▼──────────────────────┐
│  L5 — Orchestration Kernel                        (< 1 ms per frame)     │
│  Viewport State · Input Router · RTL/LTR Director · Frame Scheduler      │
└───────┬───────────────────┬───────────────────────────┬──────────────────┘
        │ atomics           │ atomics                   │ GPU queue
┌───────▼─────────┐ ┌───────▼───────────────┐ ┌─────────▼────────────────┐
│ L1  Transport   │ │ L3  Neural Layer      │ │ L4  Render Engine        │
│ WebTransport /  │ │ WebNN / ONNX Runtime  │ │ WebGPU pipelines         │
│ gRPC · binary   │ │ Pattern · Liquidity   │ │ Candles · Overlays       │
│ decode (SIMD)   │ │ Regime heads          │ │ BiDi SDF text atlas      │
└───────┬─────────┘ └───────▲───────────────┘ └─────────▲────────────────┘
        │ write             │ read-only                 │ read
┌───────▼───────────────────┴───────────────────────────┴──────────────────┐
│  L2 — ChartXpert Data Core        (Rust → WASM over SharedArrayBuffer)    │
│  TimeRing (columnar OHLCV) · LOD Pyramid · Index Map · Arena Allocator   │
└──────────────────────────────────────────────────────────────────────────┘

zero-copy data path

WebTransport (QUIC)
      │ ArrayBuffer
      ▼
Transport Worker ── decode (Rust/WASM SIMD) ──┐
                                              ▼
                       SharedArrayBuffer  (TimeRing columns)
                                              │ Atomics.store(head) + notify
      ┌───────────────────────────────────────┴─────────────────┐
      ▼                                                         ▼
Neural Worker (read-only slice)                 writeBuffer(dirty sub-range) → GPU

frame budget @ 120 fps

الإدخال وتحديث النافذة0.4 msالخيط الرئيسي
اختيار مستوى التفصيل (WASM)0.6 msبحث ثنائي على الهرم
تجهيز الرؤوس والنسخ1.2 msحلقة مخزنات مثلثة
ترميز ورسم على GPU3.5 msinstanced + indirect
النصوص والطبقات1.0 msأطلس محارف مسبق
احتياطي1.6 msلمنع التقطيع

proprietary data structure

TimeRing — حلقة أعمدة زمنية

تخزين Struct-of-Arrays في كتلة ذاكرة مشتركة واحدة: الإدراج والتحديث O(1) حسابي بحت، والبحث عن نطاق O(1) لتحديد الطرفين ثم قراءة متجاورة.

chartxpert-core/src/ring.rs
#[repr(C)]
pub struct TimeRing {
    time: *mut i64, open: *mut f32, high: *mut f32,
    low:  *mut f32, close: *mut f32, volume: *mut f32,
    capacity: usize,        // power of two => mask = capacity - 1
    head: AtomicUsize,      // single writer, many readers
    base_ts: i64, step_ms: i64,
}

impl TimeRing {
    #[inline(always)]
    pub fn slot(&self, ts: i64) -> usize {
        // O(1): pure arithmetic addressing, no search, no hashing
        (((ts - self.base_ts) / self.step_ms) as usize) & (self.capacity - 1)
    }
}

هرم LOD المحافظ على الحدود

L0: كل شمعة              (N)
L1: كل 2 شموع            (N/2)   open  = first.open
L2: كل 4 شموع            (N/4)   close = last.close
...                              high  = max(high) + hi_idx
Lk: حتى N/2^k ≈ عرض الشاشة       low   = min(low)  + lo_idx
  • كل عقدة تحفظ فهرس الشمعة الأصلية صاحبة القمة والقاع، فلا تُفقد الارتفاعات القصوى أبداً عند التصغير.
  • ترتيب الرسم داخل البكسل يُستنتج من مقارنة الفهرسين، فيبقى اتجاه البكسل صحيحاً بصرياً.
  • الإدراج يحدّث مساراً واحداً فقط في الهرم — O(log N) بعمليات قابلة للدمج.
  • Arena واحدة لكل مخطط بلا تحرير فردي: صفر تفتيت للذاكرة، وميزانية ثابتة.

embedded ai logic

الاستنتاج داخل المحرك، بلا خادم

ثلاثة رؤوس تعمل على تمثيل قانوني مُطبَّع بمقياس التقلب: رأس النماذج، رأس السيولة، ورأس النظام السوقي الذي يعدّل حساسية الرأسين الآخرين.

neural-worker.ts
const win   = new SlidingWindow({ size: 256, stride: 1 });
const guard = new InferenceGuard({ maxHz: 8, minBarDelta: 0.25 }); // ATR units

onSharedBufferSignal(async (head) => {
  win.pushFromRing(ring, head);            // zero-copy read, no allocation
  if (!guard.shouldRun(win)) return;       // skip when nothing meaningful moved

  const x = canonicalize(win);             // (close - EMA) / ATR  => scale-free
  const [pat, liq] = await engine.runBatch([x, x]);

  annotations.writeAtomic({                // double buffer: rendering never waits
    patterns: decodePatterns(pat, { minConfidence: 0.72, nms: true, hysteresis: 3 }),
    liquidityHeatmap: quantize(liq, 8),
    generatedAtBar: head,
  });
});

scale-invariant canonicalization

z[i]     = (close[i] - EMA_w) / (ATR_w + eps)
r[i]     = log(close[i] / close[i-1]) / sigma_w
shape[i] = (high[i] - low[i]) / ATR_w
body[i]  = (close[i] - open[i]) / ATR_w

لأن المسافات تُقاس بوحدات التقلب، يعمل نموذج واحد على الذهب والعملات والأسهم وعلى أطر زمنية مختلفة دون إعادة تدريب. ويُكبَح الاستنتاج ما لم تتجاوز الحركة عتبة معتبرة، فلا يُستهلك المعالج بلا داعٍ.

CNN 1D

رأس النماذج

Segmentation

رأس السيولة

GRU

رأس النظام

sdk & localization

واجهة برمجة هادئة ونظام اتجاه أصلي

الاتجاه معامل رياضي يُمرَّر في بيانات الرؤوس، لا إعادة تخطيط: تكلفة التبديل بين العربية والإنجليزية كتابة 32 بايت، دون إسقاط إطار واحد.

app/chart.ts
import { createChart } from "@chartxpert/core";

const chart = await createChart("#host", {
  renderer: "auto",                       // webgpu | webgl2 | auto
  locale: { lang: "ar", dir: "rtl" },     // direction is a uniform, not a relayout
  memory: { maxBarsPerSeries: 1_000_000 },
  ai: { onDevice: true, heads: ["pattern", "liquidity"] },
});

const price = chart.addSeries("candles", { id: "xauusd-1m", stepMs: 60_000 });
price.attachStream({ url: "https://stream.chartxpert.ai/v1", transport: "webtransport" });

chart.on("pattern", (e) => console.log(e.kind, e.confidence, e.range));
indicators/squeeze.ts
export const Squeeze = defineIndicator({
  name: "cxp.squeeze",
  inputs: { len: 20, mult: 2 },
  outputs: [{ id: "on", kind: "band" }],
  step(ctx, bar) {                        // incremental & pure => O(1) per bar
    const basis = ctx.state(ema, "b", ctx.p.len).next(bar.close);
    const range = ctx.state(atr, "a", ctx.p.len).next(bar);
    ctx.emit("on", { upper: basis + ctx.p.mult * range,
                     lower: basis - ctx.p.mult * range });
  },
  gpu: true,                              // fusable ops are compiled to WGSL
});

bi-directional rules

العنصرLTRRTLآلية التنفيذ
محور الزمنالأقدم يساراًالأقدم يميناًdir uniform
محور السعريمين اللوحةيسار اللوحةaxisSide = dir
تسمية الأرقام1,234.50١٢٣٤٫٥٠Intl.NumberFormat
التلميح والصليبيفتح يميناًيفتح يساراًflipInline()
النص المختلطتشكيل + BiDiHarfBuzz WASM + UAX #9

patent claims strategy

ستّ مطالبات مستقلة قابلة للإيداع

تُثبَّت الأولوية بطلب مؤقت أولاً، ثم PCT خلال اثني عشر شهراً، مع بقاء الأوزان ومعايرة الكبح كسرّ تجاري غير منشور.

المطالبة 1

نظام LOD مالي محافظ على الحدود مع فهارس أصلية

هرم مستويات تفصيل تحفظ فيه كل عقدة فهرسي العنصر صاحب القيمة العظمى والصغرى، ويُستخدم ترتيبهما لتحديد الترتيب الزمني للرسم داخل بكسل واحد.

المطالبة 2

عنونة زمنية حسابية O(1) في مخزن حلقي عمودي

حساب موضع التخزين بتحويل حسابي مباشر من الطابع الزمني على أعمدة منفصلة في ذاكرة مشتركة تقرأ منها طبقات النقل والرسم والاستنتاج بلا نسخ.

المطالبة 3

مسار بيانات صفري النسخ حتى ذاكرة الرسم

فك ترميز الحزم المالية في عامل منفصل إلى ذاكرة خطية مشتركة، ثم رفع النطاقات المتغيرة فقط، مع دمج حسابي للتِكات يحقق استهلاك ذاكرة ثابتاً.

المطالبة 4

استنتاج عصبي مفصول عن حلقة الإطار

تعرّف على النماذج السعرية على جهاز المستخدم يكتب في مخزن تعليقات مزدوج، بحيث لا يعتمد معدل الإطارات على زمن الاستنتاج.

المطالبة 5

تطبيع قانوني ثابت المقياس

تحويل السلسلة السعرية إلى تمثيل مُطبَّع بمقياس التقلب قبل الاستنتاج، فيعمل نموذج واحد على أدوات وأطر زمنية مختلفة دون إعادة تدريب.

المطالبة 6

عرض ثنائي الاتجاه بمعامل اتجاه في مرحلة الرؤوس

دعم RTL/LTR عبر تمرير معامل اتجاه ضمن بيانات الرؤوس وقلب مبدأ الإحداثيات، دون إعادة بناء المخزنات أو هرم التفصيل، مع قياس نص مُشكَّل مسبقاً.

جرّب النواة على بيانات حيّة

لوحة الشارت تعمل ببثّ مباشر، وتطبّق نظام التفاصيل التكيفي وكشف النماذج ومناطق السيولة، مع تبديل لحظي بين العربية والإنجليزية.

فتح اللوحة

ChartXpert AI · chartxpert.ai · architecture v1.0