واژهنامه
واژههایی که هنگام نوشتن اسکریپت به آنها برمیخورید، هر کدام در یکی دو جمله، با پیوند به صفحهای که آن را یاد میدهد.
واژههای این راهنما در یک جا. هر مدخل میگوید آن واژه اینجا چه معنایی دارد و به صفحهای پیوند میدهد که آن را یاد میدهد.
نمودار و دادههایش#
- کندل — یک کندل نمودار: قیمت بازشدن، بالاترین، پایینترین، بستهشدن و حجم در یک گام تایمفریم. اسکریپت برای هر کندل یک بار اجرا میشود، از قدیمیترین. نگاه کنید به درس 1: اولین اسکریپت شما.
- کندل بستهشده — کندلی که زمانش تمام شده است؛ مقدارهایش دیگر تغییر نمیکنند.
- کندل در حال شکلگیری — جدیدترین کندل که هنوز باز است:
closeآن آخرین قیمت است و تا بسته شدن کندل تغییر میکند. نگاه کنید به نتیجههایی که زیادی خوب به نظر میرسند. - سری — مقداری که برای هر کندل یک مقدار دارد، مثل
closeیا نتیجهٔtech.sma(close, 20). نگاه کنید به مقدارها و نوعها. - تایمفریم — طول یک کندل:
"15"(15 دقیقه)،"60"،"1D". ورودی از نوعtfبه عضو اجازه میدهد یکی را انتخاب کند. نگاه کنید به تایمفریمها و نمادهای دیگر. - نماد — ابزاری که نمودار نشان میدهد. اسکریپت فقط نماد خود نمودار را میخواند؛ دادهٔ نماد دیگر در این نسخه در دسترس نیست.
- تیک — کوچکترین گام قیمت یک نماد،
symbol.tick. اسپرد و لغزش یک استراتژی بر حسب تیک نوشته میشوند. نگاه کنید به واحدها و لیترالها. - سشن — ساعتهای نامدار روز در یک منطقهٔ زمانی که با
session name = 08:00 .. 16:30 @ "Europe/London"اعلام میشود؛ عضوهایش (.active،.highو بقیه) آن را دنبال میکنند. نگاه کنید به روز معاملاتی و سشنها. - روز معاملاتی — روزِ بازار خود نماد، که لازم نیست از نیمهشب شروع شود.
prior(day)وstate dayاز آن پیروی میکنند. - تایمفریم بالاتر — تایمفریمی بلندتر از تایمفریم نمودار که با
data.seriesخوانده میشود. به طور پیشفرض آخرین کندل بستهشدهٔ آن تایمفریم را میدهد.
نوشتن اسکریپت#
- اسکریپت — برنامهای کوچک که روی نمودار شما اجرا میشود، در اسکریپتهای من نگه داشته میشود و فقط مال حساب شماست. نگاه کنید به اسکریپت خودتان را بنویسید.
- سرآیند — خط اول،
indicator "Name"،strategy "Name"یاmodule Name، با تنظیماتش که زیرش تورفته نوشته میشوند. نگاه کنید به نحو و چیدمان. - نسخهٔ زبان (edition) — نسخهای از زبان که اسکریپت برایش نوشته شده است، یعنی
edition = 1در سرآیند. اسکریپت وقتی نسخهٔ بعدی بیاید معنای خودش را حفظ میکند. - اندیکاتور — اسکریپتی که رسم میکند: خط، سطح، علامت، پسزمینه، جدول، برچسب.
- استراتژی — اسکریپتی که سفارش شبیهسازیشده هم میگذارد؛ نمودار معاملههایش را علامت میزند و جدول نتیجهها را نشان میدهد. نگاه کنید به اولین استراتژی شما.
- ماژول — اسکریپتی که کارش وارد شدن در اسکریپتهای دیگر است: تابعها و نوعها را صادر میکند و خودش چیزی رسم نمیکند. نگاه کنید به ماژولها و کتابخانهها.
- ورودی — تنظیمی که عضو میتواند در پنل تنظیمات تغییر دهد و با
inputاعلام میشود. نگاه کنید به ورودیها. - شناسه — نامی که نمودار ذخیرهشده با آن یک ورودی یا یک خط رسمشده را دوباره پیدا میکند؛ برای ورودی، همان نامِ بعد از
inputاست. نگاه کنید به شناسهها. - خط رسمشده (plot) — سریای که روی هر کندل رسم میشود و با
plot(...)ساخته میشود. نگاه کنید به خطها و ترسیمها. - سطح — خطی افقی در یک مقدار ثابت که با
level(...)ساخته میشود. - سایه (shade) — فضای پرشده میان دو خط رسمشده یا دو سطح که با
shade(a, b, ...)ساخته میشود. - علامت — شکل، حرف یا فلشی روی کندلهایی که شرطی در آنها درست است:
mark.shape،mark.char،mark.arrow. - ترسیم — یک شیء تکی که با شمارهٔ کندل و قیمت جای داده میشود:
label.new،line.new،box.new،polyline.new، یا یک جدول باtable.new. - پنل — جایی که اسکریپت در آن رسم میکند.
display = priceروی نمودار قیمت رسم میکند؛ بدون آن، اسکریپت پنل جدایی زیر نمودار میگیرد. - قالببند — بخشی از ویرایشگر که اسکریپت را در یک چیدمان استاندارد بازنویسی میکند؛ دکمهٔ Format آن را اجرا میکند. نگاه کنید به ویرایشگر.
مقدارها و حافظه#
- let — نامی برای مقداری که در هر اجرا یک بار تعیین میشود و در طول آن اجرا هرگز تغییر نمیکند. نگاه کنید به let، mut و state.
- mut — مقداری که در هر اجرا از نو شروع میشود و در طول اجرا میتواند تغییر کند.
- state — مقداری که در اولین اجرا تعیین میشود و از یک کندل به کندل بعد نگه داشته میشود.
state dayدر هر روز معاملاتی از نو شروع میشود. - تاریخچه —
x[n]مقدارxدر n کندل قبل است:close[1]قیمت بستهشدن کندل قبلی است. - na — «بیمقدار»: آنچه یک سری پیش از داشتن کندل کافی نگه میدارد، یا جایی که نتیجهای وجود ندارد. با
is_na(x)آزمایشش کنید؛x ?? 0جایش را میگیرد. نگاه کنید به na، خطاها و محاسبات عددی. - گرم شدن (warm-up) — نخستین کندلهایی که محاسبه هنوز روی آنها مقداری ندارد، مثل 19 کندل اول یک میانگین 20 کندلی.
- تاپل — چند مقدار با هم که یکجا برگردانده میشوند و با
let (a, b) = ...از هم جدا میشوند. نگاه کنید به تابعها، نوعها و enumها. - رکورد (type) — مقداری از خودتان با فیلدهای نامدار که با
typeاعلام میشود. نگاه کنید به نوعها در حالت سایه. - enum — فهرست بستهای از نامها که با
enumاعلام میشود؛ ورودیِ از نوع enum یک فهرست کشویی است. - آرایه — فهرستی مرتب که با
.at(i)از 0 خوانده میشود. نگاشت (map) — مقدارهایی که با کلید نگه داشته میشوند. نگاه کنید به مقدارها و نوعها. - متن قالبدار (f-text) — متنی با مقدارهایی در آکولاد،
f"{close:price}"؛ پس از دونقطه قالب میآید. نگاه کنید به قالببندی متن و عدد. - فراخوانی حالتدار — فراخوانیای که کندلهای قبلی را به یاد دارد، مثل
tech.emaیاdata.series. برای هر جایی که نوشته شده (محل فراخوانی) یک حافظهٔ جدا نگه میدارد. نگاه کنید به فراخوانیهایی که حالت نگه میدارند. - عملگر تنبل —
and،or،??و شاخههایif ... then ... elseسمت راستشان را فقط وقتی لازم باشد اجرا میکنند، پس فراخوانی حالتدار نمیتواند آنجا بنشیند (E3302). نگاه کنید به عملگرهای تنبل.
پیامها و سقفها#
- کد تشخیص — کدِ ثابتِ یک پیام، مثل
E3171. نگاه کنید به تشخیصها. - خطا — کدی که با
Eشروع میشود: اسکریپت تا وقتی درست نشود اجرا نمیشود. اخطار — کدی باW-: اسکریپت اجرا میشود، اما چیزی ارزش یک نگاه دیگر را دارد. پیشنهاد — کدی باH-که همراه یک خطا میآید و میگوید چه بنویسید. - بودجهٔ اجرا — مقدار کاری که اسکریپت اجازه دارد انجام دهد: 500,000 گام برای یک کندل و 600,000,000 برای کل یک اجرا. نگاه کنید به سقفها و بودجهٔ اجرا.
- روی نمودار متوقف شد — آنچه ویرایشگر نشان میدهد وقتی اسکریپتی که کامپایل شده در حین اجرا میایستد؛ پیام موتور کندل را نام میبرد. نگاه کنید به پیامهای موتور.
- ریپینت — سیگنالی که وقتی کندل در حال شکلگیری است میآید و میرود، یا بعداً تغییر میکند.
- نگاه به آینده (نشت) — نتیجهای که از کندلی استفاده کرده که هنوز اتفاق نیفتاده بود، مثلاً مقدار تایمفریم بالاتر که پیش از بسته شدن کندلش خوانده شده. نگاه کنید به نتیجههایی که زیادی خوب به نظر میرسند.
- قطعیت (determinism) — یک اسکریپت روی همان کندلها هر بار همان عددها را میدهد. نگاه کنید به قطعیت و سقفها.
استراتژیها#
- سفارش — درخواستی برای باز یا بسته کردن یک معاملهٔ شبیهسازیشده:
orders.enter،orders.close،orders.exit. نگاه کنید به استراتژیها و سرآیند. - کلید سفارش — متنی که یک سفارش را نام میبرد، مثل
"Long"درorders.enter("Long", side.long)؛ بستن یا خروج همان کلید را نام میبرد. - پر شدن (fill) — لحظه و قیمتی که سفارش شبیهسازیشده در آن انجام میشود. به طور پیشفرض سفارش بازاری که هنگام بسته شدن یک کندل گذاشته شود، با قیمت بازشدن کندل بعدی پر میشود.
- پوزیشن — معاملهای که الان باز است:
position.size(برای خرید مثبت) وposition.avg_price. - اسپرد — فاصلهٔ قیمت خرید و فروش که در بلوک
execution:بر حسب تیک تعیین میشود. - لغزش — حرکت قیمت میان سفارش و پر شدنش، که آن هم بر حسب تیک تعیین میشود.
- کمیسیون (fees) — هزینهٔ هر بار پر شدن که در بلوک
setup:تعیین میشود، مثلاًfees = fee.per_lot(3.5). - افت سرمایه (drawdown) — پایین آمدن حساب شبیهسازیشده از یک قله؛ جدول نتیجهها بزرگترینش را نشان میدهد.
- Strategy Lab — پنلی که یک استراتژی را روی تاریخچه آزمایش میکند و معاملهها و نتیجههایش را گزارش میدهد. نگاه کنید به درس 15: آزمایش در Strategy Lab.
ببینید هم: پرسشهای پرتکرار، برگهٔ خلاصه.