الصفحاتإعدادات التشغيل المسبقة (.qcs) · 17 / 29
إعدادات التشغيل المسبقة (.qcs)
احفظ إعدادات نوافذ التشغيل وأعد تحميلها كملفات JSON بامتداد .qcs في مجلد مساحة العمل الخاص بـ QuantCraft. استخدمها لإعادة استخدام الرموز والأطر الزمنية ومعاملات الإدخال وغيرها من الخيارات بين الجلسات دون إعادة كتابتها.
مكانها في الواجهة
تعرض كل نافذة Load وSave في أعلى متن النافذة (أسفل العنوان والوصف مباشرةً):
| النافذة | كيفية الفتح |
|---|---|
| Run backtest | بيئة تطوير QuantCraft ← Test ← Run backtest |
| Bulk forward new run | AutoTrading أو QuantCloud ← ابدأ مهمة bulk forward جديدة |
| Chart forward test | Trade ← اربط خوارزمية .qcraft.json ← افتح معاملات الخوارزمية |
المتطلبات المسبقة
- تطبيق سطح المكتب — يستخدم الحفظ/التحميل مربعات حوار ملفات أصلية (غير متاحة في المعاينة عبر المتصفح فقط).
- مجلد مساحة العمل — يُحدَّد عبر Files sidebar ← Workspace Folder في QuantCraft. وتبدأ مربعات الحوار في هذا الدليل افتراضيًا.
إذا لم تكن مساحة عمل معيّنة، يطلب منك التطبيق اختيار واحدة أولًا.
صيغة الملف
الملفات بصيغة JSON وترميز UTF-8. البنية على المستوى الأعلى:
{
"format": "quantcraft-run-config-v1",
"savedFrom": "backtest",
"savedAt": "2026-06-09T12:00:00.000Z",
"settings": { }
}| الحقل | المعنى |
|---|---|
format | يجب أن يكون quantcraft-run-config-v1. |
savedFrom | بيانات وصفية: backtest أو bulk_forward أو chart_forward (أي نافذة حفظت الملف). |
savedAt | الطابع الزمني بصيغة ISO لحظة كتابة الملف. |
settings | كائن مسطّح لخيارات التشغيل (انظر الجدول أدناه). جميع المفاتيح اختيارية. |
يكتب Save الحقول التي تنطبق على النافذة الحالية فقط. أما Load فيستخدم دائمًا قواعد النافذة الهدف ويتجاهل المفاتيح التي لا تنطبق.
أسماء الملفات المقترحة افتراضيًا
| النافذة | الاسم الافتراضي |
|---|---|
| Run backtest | backtest-config.qcs |
| Bulk forward | bulk-forward-config.qcs |
| Chart forward test | chart-forward-config.qcs |
يمكنك اختيار أي اسم ينتهي بـ .qcs عند الحفظ.
حقول الإعدادات بحسب النافذة
| المفتاح | Backtest | Bulk forward | Chart forward |
|---|---|---|---|
symbols وassetType وsymbolPaste | نعم | — | — |
symbolSource ("manual" / "screener") | نعم | — | — |
screenerSource وscreenerPresetId وscreenerScriptId وscreenerSortColumn وscreenerSortDirection وscreenerRankDirection وscreenerLimit وscreenerIntervalDays وscreenerIncludeOpenPositions | نعم | نعم | — |
screenerRefreshTime | — | نعم | — |
symbolPaste (bulk: رموز ملصقة) | — | نعم | — |
startingBalance وstartDate وendDate وwarmupBars | نعم | — | — |
ohlcvSource | نعم | — | — |
timeframeAlpaca وtimeframeB2 وminBars | نعم | — | — |
secondaryTimeframes | نعم | نعم | نعم |
includeFundamentals وfundamentalsPickerValues وfundamentalsExtraPaths | نعم | نعم* | نعم |
includeFactors | نعم | نعم | نعم |
includeCalendar وapplySplits وapplyDividends وdividendDatePolicy | نعم | — | — |
inputParams | نعم | نعم | نعم |
optimize وoptimizeMode وgeneticPopulationSize وgeneticGenerations وgeneticElitism وgeneticCrossoverRate وgeneticMutationRate وgeneticFitnessMetric وgeneticSeed | نعم | — | — |
slPct وslDollars وtpPct وtpDollars وriskPctPerTrade وriskFixedPerTrade | نعم† | — | — |
commissionModel وcommissionCost وcommissionMinTradeCost | نعم | — | — |
slippageModel وslippageVolumeLimit وslippagePriceImpact وslippageSpread | نعم | — | — |
algoId | — | نعم | — |
targetScope وselectedStocks وselectedCrypto | — | نعم | — |
periodMinutes وtimeframeUi | — | نعم | — |
tickMode | — | نعم | — |
timerIntervalMs | — | نعم | نعم |
* يحفظ bulk/يطبّق قيم أداة اختيار البيانات الأساسية عند وجودها؛ وfundamentalsExtraPaths حقل للاختبار الرجعي في الأساس.
† يُحفظ/يُطبَّق عند وجوده في مساعدات النموذج/الحمولة؛ وقد لا تعرض نافذة Run backtest مدخلات SL/TP/المخاطر في الواجهة.
ohlcvSource: "alpaca" أو "b2" (مصدر أسعار QuantCraft) للاختبار الرجعي.
tickMode: لـ bulk فقط — "timer" (دورة المؤقّت) أو "tick" (تدفق التيكات الحي). وتسمّيه النافذة Execution trigger.
includeFactors: عندما يكون true، ترفق عمليات التشغيل بيانات عوامل فاما-فرينش العالمية. ويؤدي تحميله في نافذة الاختبار الرجعي أو bulk forward إلى مسحه (ومسح includeFundamentals) إذا لم يكن لديك وصول Premium / إلى البيانات المجانية؛ أما نافذة chart forward فتطبّقه كما حُفظ. تقرأ الاستراتيجيات fama_french.qc؛ و**rows** الشهرية هي قاموس YYYYMM — راجع عوامل فاما-فرينش.
includeCalendar (الاختبار الرجعي): القيد نفسه لـ Premium عند التحميل. وdividendDatePolicy هي "best_available" (الافتراضي — تُقيَّد تواريخ الاستحقاق التقديرية) أو "exact_only" أو "off". لا يوجد عنصر تحكم لها في النافذة، لذا فملف .qcs هو الطريقة الوحيدة لتغييرها. راجع بيانات التقويم.
timeframeB2 (الاختبار الرجعي): تُقيَّد القيم المحمَّلة إلى يومي / أسبوعي / شهري عندما لا تكون على Premium.
secondaryTimeframes: قائمة بأحجام أعمدة إضافية لـ rt.get_bar(Timeframe.X, shift) (مثل ["1Hour", "1D"]). تُحذف من الملفات المحفوظة عندما تكون فارغة. وعند التحميل في bulk forward يُسقَط الإدخال المطابق للإطار الزمني الأساسي المستعاد؛ أما نافذتا الاختبار الرجعي وchart-forward فتحتفظان بالقائمة كما حُفظت. راجع بيانات OHLCV والأعمدة.
مفاتيح العمولة / الانزلاق (commissionModel وcommissionCost وcommissionMinTradeCost وslippageModel وslippageVolumeLimit وslippagePriceImpact وslippageSpread): تُحفظ من الاختبار الرجعي فقط. راجع نموذج الحساب لمعاني النماذج.
بنية inputParams
كائن مفهرس باسم معامل النص البرمجي. كل إدخال:
"LOOKBACK": {
"type": "int",
"value": "20",
"optStep": "5",
"optMax": "40"
}- يُحفظ
optStepوoptMaxمن الاختبار الرجعي فقط (شبكة التحسين). وتزيلهما نوافذ forward عند التحميل. - تُطبَّق فقط الأسماء الموجودة في النص المحمَّل حاليًا؛ أما الأسماء الأخرى في الملف فتُتجاهل.
راجع معاملات الإدخال لمعرفة كيفية اكتشاف params.NAME في شيفرة الاستراتيجية.
التحميل بين النوافذ
يمكنك تحميل ملف .qcs محفوظ من نافذة في نافذة أخرى. يطبّق التطبيق الحقول المتوافقة فقط ويتخطى الباقي بصمت.
| من ← إلى | ما الذي يُنقل |
|---|---|
| Backtest ← bulk forward | symbols + assetType ← النطاق الهدف وتحديدات الأسهم/العملات المشفرة؛ timeframeAlpaca أو B2 d/w ← timeframeUi؛ secondaryTimeframes؛ tickMode إن وُجد؛ حقول البيانات الأساسية/العوامل؛ inputParams؛ timerIntervalMs إن وُجد |
| Backtest ← chart forward | inputParams وحقول البيانات الأساسية و**includeFactors** وsecondaryTimeframes وtimerIntervalMs؛ وتُتجاهل التواريخ والرصيد وحقول التحسين |
| Bulk forward ← backtest | selectedStocks / selectedCrypto ← symbols؛ timeframeUi ← timeframeAlpaca، أو B2 timeframeB2 عندما يكون ohlcvSource المحفوظ (أو مصدر الأسعار الحالي للنافذة إن لم يوجد) هو B2؛ حقول البيانات الأساسية / العوامل؛ secondaryTimeframes؛ حقول الماسح؛ inputParams |
| أي ← أي | تُتجاهل المفاتيح المجهولة أو غير المنطبقة دون خطأ |
مطابقة الأطر الزمنية
| المصدر | يُطابَق مع |
|---|---|
timeframeUi 1D / 1Week | Backtest timeframeAlpaca، أو B2 timeframeB2 d / w عندما يكون مصدر البيانات B2 |
Backtest timeframeB2 d / w | Bulk timeframeUi 1D / 1Week |
أي timeframeB2 آخر في backtest (m شهري وm5 وh1 و4h …) | لا نظير في bulk — يُتخطى عند التحميل المتقاطع |
الرموز وأهداف bulk
- Backtest ← bulk: تُصنَّف
symbolsفيselectedStocksأوselectedCryptoمتى أمكن؛ ويصبح النطاق الهدف Selected. - Bulk ← backtest: تُدمج الأسهم والعملات المشفرة المحددة في المصفوفة
symbols؛ ويُستنتجassetTypeمن التحديد.
وضع تحرير bulk forward
عند تحرير تشغيل bulk موجود، يظل Load يطبّق الأهداف والفترة والإطار الزمني والمؤقّت ووضع التيك ومعاملات النص. ولا يتغير algoId (فالخوارزمية ثابتة لذلك التشغيل).
عناصر مساحة العمل ذات الصلة
| الامتداد | الغرض |
|---|---|
.py | ملفات مصدر الاستراتيجيات (نسخة مرآة من مساحة العمل) |
.qcraft.json | حزمة قابلة للتشغيل مترجَمة لـ Trade / عمليات التشغيل الأمامي |
.qcs | إعدادات مسبقة محفوظة لـنوافذ التشغيل (هذه الصفحة) |

