پرسشهای پرتکرار
پاسخهای کوتاه و صادقانه به پرسشهایی که اعضا بیشتر از همه دربارهٔ نوشتن اسکریپت، ویرایشگر، سقفها، هشدارها و Strategy Lab میپرسند.
پاسخهای کوتاه، هر کدام با پیوند به صفحهای که بیشتر توضیح میدهد. اگر پرسش شما اینجا نیست، در صفحهٔ پشتیبانی بپرسید.
ویرایشگر و اسکریپتهای شما#
ویرایشگر اسکریپت کجاست؟#
پنل اندیکاتورها را باز کنید، به زبانهٔ روی نمودار بروید و زیر اسکریپتهای من را ببینید. اسکریپت جدید ویرایشگر را با یک نمونهٔ کوچکِ آماده به کار باز میکند. نگاه کنید به ویرایشگر.
چه کسی میتواند اسکریپت بنویسد؟#
هر عضوی که وارد حسابش شده باشد ویرایشگر را دارد. بازدیدکنندهای که وارد نشده ندارد؛ اول ثبتنام کنید.
چند اسکریپت میتوانم نگه دارم؟#
پلن رایگان نمودار 2 اسکریپت نگه میدارد؛ MillionChart Pro تا 100 اسکریپت. هر اسکریپت میتواند تا 400,000 نویسه باشد.
میتوانم اسکریپتی را با کسی به اشتراک بگذارم؟#
نه. هر اسکریپت فقط مال حساب شماست و هیچکس دیگری نمیتواند آن را باز کند؛ در این نسخه راهی برای به اشتراک گذاشتن اسکریپت وجود ندارد.
میتوانم اسکریپتی را که به شکل فایل نگه داشتهام باز کنم؟#
بله: باز کردن فایل در ویرایشگر یک فایل متنی (.txt) را از کامپیوتر شما باز میکند، یا فایل را روی کد بیندازید.
وقتی نمودار بسته است، اسکریپت من اجرا میشود؟#
نه. اسکریپت در مرورگر شما و روی نموداری که باز است اجرا میشود. در این نسخه هیچ بخشی از اسکریپت شما روی سرور اجرا نمیشود.
میتوانم برنامهای را که برای یک برنامهٔ نمودار دیگر نوشته شده بچسبانم؟#
نه به همان شکل: آن زبان دیگری است. اگر حساب شما در منوی اسکریپتهای ویرایشگر گزینهٔ وارد کردن را دارد، این گزینه تبدیلی آزمایشی برای زیرمجموعهای محدود پیشنهاد میدهد؛ بیشتر برنامهها پذیرفته نمیشوند و آنچه تبدیل میشود باید خط به خط بررسی شود. معمولاً بازنویسی همان ایده به این زبان، با آموزش در کنار دست، سریعتر است.
وقتی نتیجه آن چیزی نیست که انتظار دارید#
چرا خط من کمی بعد از کندل اول شروع میشود؟#
هر محاسبه اول به تعداد کافی کندل نیاز دارد. میانگین 20 کندلی روی 19 کندل اول مقداری ندارد، پس خط از کندل بیستم شروع میشود. تا آن موقع مقدار na است، یعنی «بیمقدار»، و خط رسمشده جایی که مقدارش na باشد چیزی نمیکشد.
چرا مقدار من na است؟#
یا هنوز کندل کافی نیست، یا محاسبه جوابی ندارد (0 / 0 برابر na است)، یا مقداری که به آن وابسته است na است: na + 1 برابر na است. با is_na(x) آزمایشش کنید و با x ?? 0 جایگزینی بدهید. نگاه کنید به na، خطاها و محاسبات عددی.
چرا x == na هیچوقت درست نیست؟#
na با هیچ چیز برابر نیست، حتی با خودش. بررسیکننده دربارهٔ آن اخطار میدهد (W-NA-COMPARE)؛ بنویسید is_na(x).
چرا سیگنال من روی جدیدترین کندل میآید و میرود؟#
جدیدترین کندل هنوز در حال شکلگیری است: close آن آخرین قیمت است و تا بسته شدن کندل تغییر میکند، پس یک شرط میتواند یک لحظه درست و لحظهٔ بعد نادرست باشد. وقتی این مهم است، روی کندلهای بستهشده آزمایش کنید. نگاه کنید به نتیجههایی که زیادی خوب به نظر میرسند.
E3302 یعنی چه؟#
فراخوانیای که کندلهای قبلی را به یاد دارد، مثل tech.sma، سمت راست and، or یا ??، یا در یکی از شاخههای if ... then ... else نشسته است. آن بخش فقط روی بعضی کندلها اجرا میشود، پس حافظهٔ فراخوانی کندلهایی را جا میاندازد. اول مقدار را در خطی جدا حساب کنید (let average = tech.sma(close, 20)) و از نامش استفاده کنید. نگاه کنید به عملگرهای تنبل.
معنای یک کد را کجا پیدا کنم؟#
هر پیام یک کد ثابت دارد، مثل E3171. تشخیصها هر کد را با علت و راهحلش فهرست میکند؛ پیامهای اسکریپتی که در حین اجرا میایستد در پیامهای موتور آمدهاند. درس 18: خواندن پیامهای ویرایشگر پیامهای رایج را یکییکی مرور میکند.
اسکریپت من روی نمودار متوقف شد. چرا؟#
کامپایل شد، اما اجرا به یک سقف خورد: حلقهای که کار زیادی میکند، پنجرهای بلندتر از تاریخچه، یا درخواستی که موتور نمیپذیرد. ویرایشگر روی نمودار متوقف شد را با پیام و کندل نشان میدهد. نگاه کنید به سقفها و بودجهٔ اجرا.
زبان چه کاری میتواند بکند و چه کاری نه#
میتوانم از اسکریپتم نماد دیگری را بخوانم؟#
نه. اسکریپت فقط نماد خود نمودار را میخواند؛ درخواست برای نماد دیگر، اسکریپت را با خطایی متوقف میکند که آن نماد را نام میبرد (E4001). تایمفریمهای دیگرِ همان نماد را میتوانید با data.series بخوانید. نگاه کنید به تایمفریمها و نمادهای دیگر.
میتوانم تایمفریم بالاتر را بدون نگاه به آینده بخوانم؟#
بله، پیشفرض همین است: data.series آخرین کندلِ بستهشدهٔ تایمفریم دیگر را میدهد. خواندن کندل در حال شکلگیری یا مقدار آینده live = true یا future = true میخواهد، و ویرایشگر وقتی این کار را بکنید اخطار نشان میدهد (W-LIVE-READ، W-FUTURE-READ).
عملگر توان وجود دارد؟#
نه. بنویسید math.pow(x, 2). عملگرهای حسابی +، -، *، / و % هستند.
تابع میتواند خودش را صدا بزند؟#
نه: تابعی که خودش را صدا بزند پذیرفته نمیشود (E3310). به جایش یک حلقه بنویسید. نگاه کنید به تابعها، نوعها و enumها.
میتوانم کد یک اسکریپت را در اسکریپت دیگر به کار ببرم؟#
بله، با یک ماژول: اسکریپتی با سرآیند module Name ذخیره کنید و آن را در اسکریپت دیگری از خودتان با import Me/Name@1 as alias وارد کنید. فقط ماژولهای خودتان را میتوان وارد کرد. نگاه کنید به ماژولها و کتابخانهها.
چه چیزهایی هنوز در دسترس نیست؟#
فهرست چیزهایی که مردم انتظارش را دارند و این نسخه ندارد در سقفها و بودجهٔ اجرا آمده است.
هشدارها، استراتژیها و معامله#
چرا هشدار اسکریپتم هیچوقت به من نمیرسد؟#
هشدار روی اسکریپتهای خودتان در این نسخه خاموش است. ساختن آن با پیام «Alerts on your own scripts are not available.» رد میشود. فراخوانیهای alert.when و alert.send همچنان کامپایل و اجرا میشوند. نگاه کنید به هشدارهایی که چیزی میگویند.
اسکریپت میتواند برایم معامله کند؟#
نه. MillionChart بروکر نیست و هیچ سفارش واقعیای اجرا نمیکند. استراتژی روی کندلهای نمودار سفارش شبیهسازیشده میگذارد و نمودار معاملههایی را که انجام میشد، با هزینههایی که اعلام کردهاید، نشان میدهد. نگاه کنید به اولین استراتژی شما.
Strategy Lab چیست و پلن رایگان چه چیزی از آن دارد؟#
Strategy Lab یک استراتژی را روی تاریخچه آزمایش میکند و معاملهها و نتیجههایش را گزارش میدهد. آن را با Strategy Lab — بکتست استراتژی در نوار بالا، از بیشتر › Strategy Lab، یا با تست در ویرایشگرِ یک استراتژی باز کنید. امروز پلن رایگان نمودار در هر ماه 10 اجرای Lab روی حداکثر 92 روز تاریخچه دارد؛ بهینهسازی و ابزارهای دیگرِ فراتر از یک اجرای ساده همراه MillionChart Pro میآیند. نگاه کنید به درس 15: آزمایش در Strategy Lab.
نتیجهٔ خوب در آزمایش یعنی استراتژی پول درمیآورد؟#
نه. آزمایش گذشته را با پر شدنهای شبیهسازیشده دوباره پخش میکند؛ آینده میتواند فرق داشته باشد، و نتیجه ممکن است از روی شانس، یا چون اسکریپت از چیزی استفاده کرده که کندل نمیتوانست بداند، خوب به نظر برسد. هیچچیز اینجا توصیهٔ سرمایهگذاری نیست. پیش از اعتماد به یک نتیجه، نتیجههایی که زیادی خوب به نظر میرسند را بخوانید.
گرفتن کمک#
فکر میکنم باگی پیدا کردهام. چه کنم؟#
از صفحهٔ پشتیبانی به پشتیبانی بنویسید. بگویید چه انتظاری داشتید و چه اتفاقی افتاد، و کوچکترین اسکریپتی را که مشکل را نشان میدهد، همراه نماد و تایمفریم، بچسبانید.
ببینید هم: واژهنامه، برگهٔ خلاصه.