مرجع Deepwick Script
Deepwick Script هي لغة الرسوم البيانية والاختبارات بأثر رجعي في Deepwick. وتشغّل مجموعة فرعية من Pine Script: معظم دوال ta.* وmath.* وstr.* وinput.* وplot* وstrategy.* تعمل كما هي، وتُعلَّم الأسطر غير المدعومة برقم السطر والعمود. وتجمع هذه الصفحة كل ما يدعمه المحرك اليوم وما لا يدعمه.
أول مرة على Deepwick؟ ابدأ بالدليل خطوة بخطوة: كيف تختبر استراتيجية Pine Script مجاناً.
تبني ذكاءً اصطناعياً يكتب Deepwick Script؟ هذا المرجع في مستند Markdown واحد.
آخر تحديث:
اللغة
يشغّل Deepwick Script مجموعة فرعية من Pine Script، منها الأنواع التي تعداد (enums) والأنواع التي يعرّفها المستخدم والأساليب وmap؛ ولا يُتحقَّق من سطر //@version. ويُنفَّذ السكربت مرة واحدة لكل شمعة، من الأقدم إلى الأحدث، ويحتفظ كل متغيّر بسجلّه.
| الصياغة | ما يفعله |
|---|---|
x = expr / x := expr | يُعلن متغيّراً ثم يُسند إليه من جديد بـ :=. ويمكن أن يسبق الاسم نوع اختياري (int، float، bool، string، color، series، simple، const، line، label). |
var / varip | يُهيَّأ مرة واحدة على الشمعة الأولى ويبقى أثره في الشموع التالية. وسلوك varip هو سلوك var، لأن السكربتات تعمل على شموع مغلقة. |
x[n] | معامل التاريخ: قيمة x قبل n شمعة (na قبل الشمعة الأولى). |
if / else | كتل شرطية، بمسافة بادئة أربعة أحرف مسافات. ويمكن استخدام if تعبيراً أيضاً. |
cond ? a : b | عامل الشرط الثلاثي. |
switch | تفرّع متعدّد الفروع، مع قيمة للمقارنة أو بدونها. |
for i = a to b [by step] | حلقة بعدّاد. كل من break وcontinue مدعوم. |
while cond | حلقة ما دام الشرط قائم. |
f(x, y) => expr | دالة يعرّفها المستخدم، في سطر واحد أو ككتلة بمسافة بادئة يُرجَع فيها آخر تعبير. ولكل موضع استدعاء حالته الخاصة من ta.*، كما في Pine. |
[a, b] = f() | الأزواج (tuples): يمكن للدوال أن تُرجع عدّة قيم، وكذلك الدوال المدمجة مثل ta.macd() وta.bb(). |
and / or / not | العوامل المنطقية. الحساب: + - * / %؛ المقارنة: == != < <= > >=. |
الإعلانات
| الصياغة | ما يفعله |
|---|---|
indicator(title, shorttitle, overlay, precision) | يُعلن مؤشراً: يرسم على الشارت ولا شيء فيه يُختبَر. وقُبل study() اسماً بديلاً. |
strategy(title, overlay, initial_capital, default_qty_type, default_qty_value, commission_type, commission_value, slippage, pyramiding) | يُعلن استراتيجية. القيم الافتراضية: initial_capital 100000، عقد واحد لكل أمر، عمولة 0، انزلاق 0 تكة، pyramiding 1. وتُتجاهل الوسائط الأخرى مثل process_orders_on_close. |
المدخلات
تظهر المدخلات بجوار المحرّر وفي إعدادات المؤشّر، فتغيّرها دون المساس بالكود.
| الصياغة | ما يفعله |
|---|---|
input.int(defval, title, minval, maxval, step) | عدد صحيح. |
input.float(defval, title, minval, maxval, step) | عدد عشري. |
input.bool(defval, title) | مربّع اختيار. |
input.string(defval, title, options) | نص، أو قائمة خيارات. |
input.session(defval, title) | جلسة تداول مثل "0930-1600"، أو أيام مثل "23456". تُمرَّر إلى session.ismarket() وإلى بقية أحكام session.*. |
input.source(defval, title) | مصدر سعر: open أو high أو low أو close أو hl2 أو hlc3 أو ohlc4 أو hlcc4. |
input.color(defval, title) | منتقي اللون. |
input(defval, title) | مدخل عام؛نوعه يتبع القيمة الافتراضية. |
بيانات الشمعة والوقت
الأوقات بمللي ثانية بتوقيت UTC. وتقبل hour() ودوال الوقت الأخرى وقتاً اختيارياً؛ كما تقبل hour() منطقة زمنية من قائمة ثابتة من الإزاحات، من دون التوقيت الصيفي.
| الصياغة | ما يفعله |
|---|---|
open, high, low, close, volume | أسعار الشمعة الحالية وحجمها. |
hl2, hlc3, ohlc4, hlcc4 | متوسطات الأسعار الشائعة. |
bar_index, last_bar_index | رقم الشمعة الحالية (0 هي الأقدم) ورقم آخر شمعة. |
time, time_close | وقت افتتاح الشمعة وإغلاقها. وكدوال — time("D")، time(timeframe.period, "0000-0900:23456", "UTC") — تعطي بداية (أو نهاية) الشمعة ذات الإطار الزمني الأكبر التي تحتوي هذه، أو na إذا كانت الشمعة خارج الجلسة. الجلسات: "HHMM-HHMM"، ومنها ما يمتد عبر الليل، ونوافذ مفصولة بفواصل، وأيام اختيارية بعد النقطتين (1 = الأحد … 7 = السبت)، و"24x7". |
timeframe.change(timeframe) | صحيح على أول شمعة من كل فترة جديدة، مثل timeframe.change("D") على أول شمعة من كل يوم (يبدأ الأسبوع يوم الاثنين). |
timestamp(timezone?, year, month, day, hour, minute, second) | وقت بمللي ثانية من أجزائه، أو من نص تاريخ: timestamp("2026-01-05T09:30:00Z"). |
dayofweek.sunday … dayofweek.saturday | ثوابت أيام تُقارن بـ dayofweek (1 … 7). |
session.ismarket, isfirstbar, islastbar, ispremarket, ispostmarket | حالة الجلسة. الأسواق هنا تعمل على مدار الساعة، فكل شمعة تنتمي إلى جلسة التداول؛ وisfirstbar وislastbar يحدّدان أول وآخر شمعة في كل يوم بتوقيت UTC. |
year, month, weekofyear, dayofmonth, dayofweek, hour, minute, second | أجزاء التقويم من وقت الشمعة؛ ويمكن استدعاؤها بوقت أيضاً، مثل hour(time, "America/New_York"). وdayofweek: 1 = الأحد … 7 = السبت. |
barstate.isfirst, islast, isnew, isconfirmed, ishistory, isrealtime | أين يقع السكربت في سجل الشموع. |
timeframe.period, multiplier, isintraday, isdaily, isweekly, ismonthly | الإطار الزمني للشارت. |
syminfo.ticker, tickerid, mintick, pointvalue | رمز الشارت، وخطوة السعر فيه، وقيمة النقطة. |
التحليل الفني (ta.*)
يحتفظ كل موضع استدعاء بحالته الخاصة، كما في Pine: استدعاءان لـ ta.ema() على سطرين مختلفين هما متوسطان مستقلان. وتكون النتيجة na حتى تتوفّر شموع كافية.
| الصياغة | ما يفعله |
|---|---|
ta.sma(source, length) | المتوسط المتحرك البسيط. |
ta.ema(source, length) | المتوسط المتحرك الأسي. |
ta.rma(source, length) | متوسط ويلدر المتحرك، ويستخدمه RSI وATR. |
ta.wma(source, length) | المتوسط المتحرك المرجّح. |
ta.vwma(source, length) | المتوسط المتحرك المرجّح بالحجم. |
ta.hma(source, length) | متوسط هول المتحرك. |
ta.linreg(source, length, offset) | قيمة خط الانحدار الخطي. |
ta.vwap(source) | متوسط السعر المرجّح بالحجم، ويعاد ضبطه عند 00:00 UTC كل يوم. |
ta.rsi(source, length) | مؤشر القوة النسبية، من 0 إلى 100. |
ta.macd(source, fastlen, slowlen, siglen) | يُرجع [macd، signal، histogram]. |
ta.stoch(source, high, low, length) | ستوكاستك %K، من 0 إلى 100. |
ta.cci(source, length) | مؤشر قناة السلع. |
ta.mfi(series, length) | مؤشر تدفّق الأموال. |
ta.wpr(length) | ويليامز %R، من -100 إلى 0. |
ta.dmi(diLength, adxSmoothing) | يُرجع [+DI، -DI، ADX]. |
ta.supertrend(factor, atrPeriod) | يُرجع [supertrend، direction]؛ ويكون الاتجاه -1 في الاتجاه الصاعد و1 في الاتجاه الهابط. |
ta.sar(start, inc, max) | SAR المكافئ. |
ta.mom(source, length) | الزخم: المصدر ناقص المصدر قبل length شمعة. |
ta.roc(source, length) | معدل التغيّر، مئويةً. |
ta.change(source, length) | الفرق عن القيمة قبل length شمعة (1 افتراضياً). |
ta.tr / ta.tr(handle_na) | المدى الحقيقي. |
ta.atr(length) | متوسط المدى الحقيقي (ويلدر). |
ta.bb(series, length, mult) | نطاقات بولنجر: يُرجع [middle، upper، lower]. |
ta.bbw(series, length, mult) | عرض نطاق بولنجر: (upper - lower) / middle. |
ta.kc(series, length, mult) | قنوات كيلتنر: يُرجع [middle، upper، lower]، مع متوسط متحرك أسي للمدى الحقيقي. |
ta.stdev(source, length, biased) | الانحراف المعياري. |
ta.variance(source, length, biased) | التباين. |
ta.dev(source, length) | متوسط الانحراف المطلق. |
ta.median(source, length) | الوسيط. |
ta.highest(source, length) / ta.highest(length) | أعلى قيمة على آخر length شمعة (الـ high افتراضياً). |
ta.lowest(source, length) / ta.lowest(length) | أدنى قيمة على آخر length شمعة (الـ low افتراضياً). |
ta.highestbars(source, length) | الإزاحة عن أعلى قيمة: 0 أو سالبة. |
ta.lowestbars(source, length) | الإزاحة عن أدنى قيمة: 0 أو سالبة. |
ta.rising(source, length) | صحيح إذا كان المصدر فوق كل واحدة من قيمه السابقة وعددها length. |
ta.falling(source, length) | صحيح إذا كان المصدر تحت كل واحدة من قيمه السابقة وعددها length. |
ta.crossover(source1, source2) | صحيح على الشمعة التي يعبر فيها source1 فوق source2. |
ta.crossunder(source1, source2) | صحيح على الشمعة التي يعبر فيها source1 تحت source2. |
ta.cross(source1, source2) | صحيح عند أي تقاطع، في أي من الاتجاهين. |
ta.pivothigh(source, leftbars, rightbars) | سعر قمة المحور (pivot high)، يُعرف بعد rightbars شمعة من المحور؛ وقبل ذلك na. والمصدر اختياري (الـ high افتراضياً). |
ta.pivotlow(source, leftbars, rightbars) | سعر قاع المحور (pivot low)، يُعرف بعد rightbars شمعة من المحور؛ وقبل ذلك na. والمصدر اختياري (الـ low افتراضياً). |
ta.valuewhen(condition, source, occurrence) | قيمة المصدر في أقرب شمعة كانت فيها الحالة صحيحة، وهي المرّة رقم occurrence من الأحدث. |
ta.barssince(condition) | عدد الشموع منذ أن كانت الحالة صحيحة آخر مرة. |
ta.cum(source) | المجموع التراكمي منذ الشمعة الأولى. |
أطر زمنية أخرى (request.*)
يُبنى الإطار الزمني الأكبر من شموع الشارت نفسه، فلا يحتاج إلى بيانات لا يملكها المحرك. ولا تظهر قيمة شمعة الإطار الأكبر إلا على شمعة الشارت التي تلي إغلاقها: فشمعة الأربع ساعات لا تُقرأ من داخلها أبداً، وهذا ما يبقي الاختبار بأثر رجعي أميناً.
| الصياغة | ما يفعله |
|---|---|
request.security(symbol, timeframe, expression) | يُنفّذ expression على إطار زمني أكبر من الرمز نفسه ويُرجع آخر قيمة مُغلَقة. يعمل على رمز الشارت نفسه (أو syminfo.tickerid، أو رمز فارغ)؛ وأي رمز آخر يُرجع na، لأن المحرك لا يملك إلا شموع الشارت. وتقبل الأطر الزمنية صيغة Pine ("60"، "240"، "D"، "W"، "M") وصيغة Deepwick ("1h"، "4h"، "1d"). وقد يكون expression استدعاءً لـ ta.*، يُحسب على سلسلة الإطار الأكبر. ويُرجع na حتى تُغلق إحدى هذه الشموع. |
request.security(..., lookahead) | مقبول ومُتجاهَل. يتيح lookahead_on للاختبار بأثر رجعي قراءة شمعة الإطار الأكبر وهي قيد التكوّن، وهذا هو النظر إلى المستقبل؛ والمحرك لا يختلس أبداً. وgaps يؤثر على الرسم داخل الشمعة فقط، وهو غير منطبق هنا. |
الاستراتيجيات (strategy.*)
أوامر السوق تُنفَّذ عند افتتاح الشمعة التالية. وأوامر الوقف والحدّ تُنفَّذ على امتداد الشمعة: الافتتاح، ثم الطرف الأقرب إلى الافتتاح، ثم الطرف الآخر، ثم الإغلاق. وإذا تجاوز السعر الأمر بفجوة، نُفِّذ عند الافتتاح. وتُحتسب العمولة على كل تنفيذ؛ وينطبق الانزلاق على أوامر السوق والوقف.
| الصياغة | ما يفعله |
|---|---|
strategy.entry(id, direction, qty, limit, stop, comment) | يفتح مركزاً أو يزيده؛ وهو أمر سوق ما لم يُحدَّد limit أو stop. |
strategy.order(id, direction, qty, limit, stop, comment) | نفس وسائط strategy.entry(). |
strategy.exit(id, from_entry, qty_percent, profit, limit, loss, stop, trail_points, trail_offset, comment) | جني الربح ووقف الخسارة ووقف التتبّع لدخول معيّن: الربح والخسارة بالتكات، وlimit وstop بالأسعار. وtrail_points هو المسافة بالتكات من أفضل سعر وصل إليه السعر؛ وtrail_offset هو الربح بالتكات الذي يجب أن يُمسح قبل أن يعمل الوقف التتبّعي. ولا يتحرّك الوقف إلا في صالحك، ولا يتحرّك إلا على شموع مُغلَقة، فلا تستطيع شمعة أبداً أن تنفّذ الوقف الذي وضعه قمّها هي. |
strategy.close(id, comment, qty_percent) | يغلق دخولاً بالسوق في الشمعة التالية. |
strategy.close_all(comment) | يغلق كل المراكز المفتوحة. |
strategy.cancel(id) / strategy.cancel_all() | يلغي الأوامر المعلّقة. |
strategy.position_size, position_avg_price | المركز الحالي (موجب للشراء، سالب للبيع) ومتوسط سعره. |
strategy.opentrades.entry_bar_index(n), entry_price, entry_time, entry_id, size, profit, commission, max_runup, max_drawdown | تفاصيل الصفقة المفتوحة رقم n (0 هي الأقدم)؛ وna إن لم توجد. وsize سالب في صفقات البيع. مثلاً للخروج بعد 10 شموع: bar_index - strategy.opentrades.entry_bar_index(0) >= 10. |
strategy.closedtrades.entry_bar_index(n), exit_bar_index, entry_price, exit_price, entry_time, exit_time, entry_id, size, profit, commission, max_runup, max_drawdown | تفاصيل الصفقة المغلقة رقم n (0 هي الأقدم؛ والأخيرة هي strategy.closedtrades - 1). |
strategy.equity, netprofit, openprofit, grossprofit, grossloss, initial_capital | أرقام الحساب. |
strategy.closedtrades, opentrades, wintrades, losstrades | عدد الصفقات. |
strategy.long, strategy.short | الاتجاهات. |
strategy.fixed, strategy.cash, strategy.percent_of_equity | قيم default_qty_type. |
strategy.commission.percent, cash_per_order, cash_per_contract | قيم commission_type. |
الرسوم والتنبيهات
| الصياغة | ما يفعله |
|---|---|
plot(series, title, color, linewidth, style) | يرسم سلسلة على الشارت أو في لوحة منفصلة. |
plotshape(series, title, style, location, color, text) | يرسم شكلاً على الشموع التي تكون فيها series صحيحة. |
plotchar(series, title, char, location, color) | يرسم حرفاً على الشموع التي تكون فيها series صحيحة. |
hline(price, title, color, linestyle) | خط أفقي عند مستوى ثابت. |
fill(plot1, plot2, color) | يملأ بين رسومين أو بين خطي hline. |
bgcolor(color) | يلوّن خلفية الشمعة. |
barcolor(color) | يلوّن الشمعة نفسها. |
alertcondition(condition, title, message) | يعلن شرطاً يمكنك تحويله إلى تنبيه بالبريد أو Telegram أو Discord أو webhook. |
plot.style_* | line، linebr، stepline، histogram، columns، circles، cross، area. |
hline.style_* | solid، dashed، dotted. |
shape.* | triangleup, triangledown, arrowup, arrowdown, circle, xcross, cross, diamond, square, flag, labelup, labeldown. |
location.* | abovebar، belowbar، top، bottom، absolute. |
size.* | auto، tiny، small، normal، large، huge. مقبولة، لكن الأشكال تُرسم بحجم واحد. |
الخطوط والمربعات
| الصياغة | ما يفعله |
|---|---|
line.new(x1, y1, x2, y2, extend, color, style, width) | يرسم خطاً بين رقمَي شمعة وسعرين؛ ويُرجع مُعرّفه. |
line.set_x1, set_y1, set_x2, set_y2, set_xy1, set_xy2, set_color, set_style, set_width | يغيّر خطاً. |
line.delete(id) | يحذف خطاً. |
box.new(left, top, right, bottom, border_color, bgcolor, extend) | يرسم مستطيلاً؛ ويُرجع مُعرّفه. |
box.set_left, set_top, set_right, set_bottom, set_bgcolor, set_border_color, set_extend | يغيّر مربعاً. |
box.delete(id) | يحذف مربعاً. |
line.style_*, box.style_* | solid، dashed، dotted. |
extend.* | none، left، right، both. |
الرياضيات والنصوص والألوان
| الصياغة | ما يفعله |
|---|---|
math.abs, ceil, floor, round(number, precision), sign, sqrt, exp, log, log10, pow(base, exponent) | الحساب. |
math.max(...), math.min(...), math.avg(...) | لأي عدد من القيم. |
math.sum(source, length) | المجموع على آخر length شمعة. |
math.pi, math.e | الثوابت. |
na, na(x), nz(x, replacement), fixnan(x) | القيمة المفقودة، واختبارها، وبديلها، وآخر قيمة ليست na. |
int(x), float(x), bool(x) | التحويلات. |
str.tostring(value, format), str.format(text, ...), str.length(s), str.contains(s, part) | النصوص. يستبدل str.format {0} و{1}… بالوسائط. |
color.new(color, transp), color.rgb(red, green, blue, transp) | يبني لوناً؛ والشفافية من 0 إلى 100. |
color.* | red, green, blue, orange, yellow, purple, aqua, lime, fuchsia, teal, maroon, navy, olive, gray, silver, white, black. |
المصفوفات (array.*)
| الصياغة | ما يفعله |
|---|---|
array.new_float, new_int, new_bool, new_string, new_color, new_line, new_box, new_label, new_table(size) | ينشئ مصفوفة. |
array.get, set, insert, push, pop, shift, unshift | يقرأ العناصر ويغيّرها. |
array.size, first, last, sum, avg, min, max, stdev | الحجم والإحصاءات. |
الـ maps والأنواع التي يعرّفها المستخدم
الأنواع التي يعرّفها المستخدم ومجموعة `map.<fn>` مدعومان. وكلاهما إعلان على المستوى الأعلى؛ وطرق النسخة على قيمة تُكتب بصيغة `obj.method(args...)`.
| الصياغة | ما يفعله |
|---|---|
enum Name
Member
Member = N
... | إعلان enum على المستوى الأعلى. والأعضاء الذين بلا قيمة يزدادون آلياً من 0؛ والقيم الصريحة قد تكون أرقاماً أو نصوصاً. ويُشار إليهم بـ `Name.Member` في أي موضع تعبير. وقيم enum أرقام (أو نصوص) عادية، فتصلح مع عوامل المقارنة ومع `int()` دون تحويل. |
type Name
field1
field2: int
field3 = default | نوع يعرّفه المستخدم على المستوى الأعلى. تُكتب الحقول واحداً في كل سطر؛ وقُبلت أجزاء `: type` و`= default` للتوافق مع المستقبل لكنها لا تُتحقَّق بعد. ويُبنى بـ `Type.new(arg1, arg2, ...)` وتُقرأ حقوله بـ `instance.field`. |
m = map.new<int, float>() | ينشئ map فارغاً. وتُقبل وسائط النوع `<K, V>` لكن تُتجاهل أثناء التشغيل. |
m = map.put(m, key, value) | يضع مفتاحاً. ويُرجع الـ map بحيث يمكن ربط الاستدعاءات أو إعادة إسنادها. |
v = map.get(m, key) | يقرأ قيمة. ويُرجع na إن كان المفتاح مفقوداً. |
n = map.size(m) | عدد المدخلات. |
keys = map.keys(m), values = map.values(m) | يُرجع المفاتيح أو القيم كمصفوفة Pine (بترتيب الإدراج). |
map.contains(m, key), map.remove(m, key) | اختبار الانتماء والحذف. كلاهما يُرجع الـ map. |
غير مدعوم بعد
دالة لا يعرفها المحرك توقف السكربت بـ «Unknown function» مع رقم السطر والعمود.
| الصياغة | ما يفعله |
|---|---|
label.new(), table.new() | غير متاح بعد. أما الخطوط والمربعات فمتاحة. |
import, matrix.*, array.new<type>() | المكتبات والمصفوفات (matrices) والمصفوفات المُنمَّطة بمُنشئاتها لم تُنفَّذ بعد. |
strategy.risk.* | قواعد المخاطر (max_position_size، max_intraday_loss، max_drawdown، allow_entry_in) غير مدعومة. أما أوقف التتبّع في strategy.exit() فمدعومة: استعمل trail_points وtrail_offset. |
أسئلة
هل Deepwick Script هو نفسه Pine Script؟
لا. هو محرك Deepwick الخاص، ويشغّل مجموعة فرعية من Pine Script: الدوال في هذه الصفحة. ومعظم استدعاءات ta.* وmath.* وstr.* وinput.* وplot* وstrategy.* تعمل كما هي؛ وتُعلَّم الأسطر غير المدعومة برقم السطر والعمود. وDeepwick ليست تابعة لـ TradingView؛ وPine Script علامة تجارية لشركة TradingView, Inc.
أي مزايا Pine Script يدعمها Deepwick Script؟
يشغّل Deepwick Script مجموعة فرعية من Pine Script، منها الأنواع التي تعداد (enums) والأنواع التي يعرّفها المستخدم (`type`) وإعلانات الدوال ومجموعة `map.*`. ولم تُنفَّذ بعد: المكتبات (`import`) و`matrix.*` ومُنشئات المصفوفات المُنمَّطة `array.new<type>()`؛ ويبلّغ المحرّر عنها برقم السطر والعمود بدقة. ولا يُتحقَّق من سطر //@version. الصق سكربتاً في المحرّر لترى أي الأسطر تعمل.
هل يدعم Deepwick request.security()؟
نعم، لإطار زمني أكبر من رمز الشارت نفسه.request.security(syminfo.tickerid, "240", close) يُرجع آخر إغلاق مُغلق على أربع ساعات، وقد يكون التعبير استدعاءً لـ ta.*. وأي رمز آخر يبقى يُرجع na: فالمحرك لا يملك إلا شموع الشارت، ورقم معقول لكنه خاطئ أسوأ من لا رقم.
لماذا يُرجع request.security() na على الشموع الأولى؟
لأن لا شمعة بإطار زمني أكبر قد أُغلقت بعد. فشمعة الأربع ساعات لا تُقرأ إلا على شمعة الشارت التي تلي إغلاقها، وهذا بالضبط ما يمنع الاختبار بأثر رجعي من قراءة شمعة قيد التكوّن. وبعد إغلاق واحدة تتكرّر القيمة حتى تُغلق التالية.
كيف تُنفَّذ أوامر الاستراتيجية في اختبار بأثر رجعي؟
أوامر السوق تُنفَّذ عند افتتاح الشمعة التالية. وأوامر الوقف والحدّ تُنفَّذ على امتداد الشمعة (الافتتاح، الطرف الأقرب، الطرف الأبعد، الإغلاق)، والأمر الذي يتجاوزه السعر بفجوة يُنفَّذ عند الافتتاح. وتُحتسب العمولة على كل تنفيذ، والانزلاق على أوامر السوق والوقف، كماضبط في strategy()؛ وكلاهما بصفر افتراضياً.
أين تعمل السكربتات؟
على الشارت، في متصفحك، على الشموع المحمَّلة في الشارت. أما الاختبارات المحفوظة بأثر رجعي فتعمل على خوادم Deepwick على ما يصل إلى 5,000 شمعة.