IFC Markets Forex Broker

FAQ برای NetTradex Advisors

قصد دارم مشاورین نت ترید ایکس (NetTradeX Advisors) را در کامپیوتر دیگری تنظیم کنم، چگونه می توانم تمام اسکریپت ها را منتقل کنم؟

تمامی مشاورین نت ترید ایکس در فولدر Documents\NeTTradeX Advisors\scripts ذخیره شده اند. بعد از اینکه پلت فرم را در کامپیوتر دیگر نصب کردید، تمامی محتوای این فولدر را به فولدر مشابه در کامپیوتر جدید منتقل کرده و پلت فرم را ببندید و دوباره باز کنید.

یک شاخص ایجاد کرده ام اما خط منقطع است. چگونه می توانم خط شاخصی داشته باشم که هیچ شکافی نداشته باشد؟

برای اینکه خطوط بدون شکاف باشند، باید از عملکرد SetIndexStyle با نوع پارامتری که مقدار ltSection دارد استفاده کنید.

یک اکسپرت را شروع کرده ام اما پس از چند ثانیه متوقف می شود؛ پیغام "stopped by timeout" در بخش ژورنال پلت فرم (Journal) نشان داده می شود. دلیل این اتفاق چیست؟

به محض آمدن اولین علامت (tick)، اکسپرت باید تمام منطق یک برنامه را در مدت محدوده زمانی (60 ثانیه) اجرا کند. اگر از این محدوده فراتر رود، اکسپرت متوقف می شود و برای اتمام کار اکسپرت 3 ثانیه اضافی داده می شود. توصیه می شود وضعیت پرچم System.IsStopped برای درست بسته شدن کار اکسپرت، بررسی ( تجزیه و تحلیل) شود. زمان متوقف شدن کار اکسپرت، کاربر پیغام "stopped by timeout" را دریافت می کند. در این حالت باید تغییراتی در برنامه اعمال شود که اجرا آن زمان کمتری طول بکشد.

با استفاده از عملکرد Deals.Open() سعی کردم درخواستی برای باز کردن یک پوزیشن ارسال کنم، اما پوزیشن باز نشد. دلیل این اتفاق چیست؟

ضمن اینکه مطمئن می شوید عملکرد Deals.Open() صفر را بازمی گرداند، باید به ویژگی System.LastError دسترسی پیدا کنید و کد خطا را دریافت کنید. شرح کدهای خطا در بخش راهنمای کاربر در بخش "Basics" – "Error Codes" وجود دارد. لطفاً توجه داشته باشید که پس از یک احضار عملکرد تجاری، ویژگی System.LastError فوراً در دسترس قرار گیرد در غیر این صورت عملیات تجاری بعد از آن طبق نتایج کارش آن ویژگی را تغییر خواهد داد.

یک معامله انجام دادم یا یک دستور دادم و در تلاش هستم تا ویژگی هایش را دریافت کنم اما مقادیر حاصله ناصحیح هستند.

برای دسترسی به ویژگی های یک معامله یا یک دستور، ابتدا باید عملکرد Select() را فرابخوانید و در همان حالی که مطمئن می شوید آن Select() مقدار واقعی را بازگردانده است، به ویژگی های دستور یا معامله رجوع کنید.

چگونه می توانم نوع یک دستور در حال انتظار (Buy stop یا Buy limit) را تعیین کنم؟

برای تعیین نوع یک دستور داده شده، باید پس از فراخواندن عملکرد Select() ، به ویژگی هایش دسترسی پیدا کنید. برای یک دستور Buy Stop باید دو شرط رعایت شود: Orders.Direction == opBuy و Orders.IsLimit == false و به همین ترتیب برای دستور Buy Limit - انجام دو شرط بعدی نیز مورد نیاز است : Orders. Direction == opBuy و Orders.IsLimit == true .

ویژگی SubType (دستور زیر نوع) چیست؟

دستور ویژگی زیرنوع برای دستورات "پیچیده" استفاده می شود و این امکان را می دهد که بتوان تشخیص داد کدام دستور، اصلی است و کدام یک فرعی است. به عنوان مثال، اگر دستور یک دستور فعال سازی باشد و فعال هم شده باشد بطوریکه دو دستور OCO تنظیم شده باشند، دستور فعال سازی ، دستور اصلی (دستور سطح 1) و دستورات OCO، دستورات فرعی (دستور سطح 2) خواهند بود.

باید یک پوزیشن روی یک نماد خاص باز کنم. پنجرۀ "معامله" (Make deal) را باز می کنم اما نمادی که لازم دارم آنجا نیست؟

فهرست نمادهای معاملاتی موجود در پنجرۀ باز کردن یک معامله شامل همان نمادهایی می شود که در پنجرۀ "نمایش بازار" (Market Watch) وجود دارند. بنابراین، پیش از باز کردن پوزیشن معاملاتی، اطمینان حاصل کنید که نماد مورد نظرتان در پنجرۀ "نمایش بازار" (Market Watch) ثبت شده باشد.

Кچگونه می توانم در مورد سود پوزیشن هایی که دیروز یا چند روز قبل بسته ام اطلاعات به دست آورم؟

اطلاعات مربوط به پوزیشن های بسته شد در بخش "تاریخچه" (History) در پلت فرم مشاورین نت ترید ایکس (NetTradeX Advisors) نمایش داده می شوند. این پوزیشن های معاملاتی از طریق گزینۀ "تاریخچه" قابل دسترسی هستند. اطلاعات دربارۀ پوزیشن های بسته شده تا زمانیکه پلت فرم دوباره باز شود، حفظ می شوند.

عملکرد Symbols.Distance() را فرامی خوانم اما حداقل فاصلۀ دستور صفر را دریافت می کنم.

پیش از فراخواندن روش Symbols.Distance() باید نماد مورد نیازتان را در پنجرۀ "نمایش بازار" (Market Watch) به اشتراک بگذارید.

در یک اسکریپت چه عملکردهای سیستمی باید وجود داشته باشند؟ اگر لازم نیست که هیچ اقدامی در خلال مقدار دهی اولیه یا برداشتن مقدار دهی اولیه انجام دهم، آیا می توانم عملکردهای مربوطه را پاک کنم؟

عملکرد Run () برای اجرای یک اسکریپت ضروری است. عملکردهای Initialize () و DeInitialize () انتخابی هستند و هیچ اقدامی در مقداردهی اولیه و برداشتن مقداردهی اولیه نیاز نیست، آنها می توانند از برنامه بیرون نگه داشته شوند.
در برخی مواقع مانند ایجاد فایل هایی با توصیف های عملکردهای کاربر کمکی، اسکریپت می تواند بدون عملکرد Run() باشد. این فایل ها می توانند جمع آوری گردند اما نمی توانند کنار گذاشته شوند. چنین اسکریپت هایی به همراه دستور #include> استفاده می شوند و در کد اسکریپت های قابل اجرا وجود دارند.

آیا هیچ فایل ثبتی وجود دارد که اطلاعات را در برنامه حفظ کند؟

بله، تمامی اطلاعاتی که در پنجرۀ ژورنال (Journal) نمایش داده شوند، در یک فایل ثبت نیز ذخیره می شوند که در فولدر Documents\ NetTradeX Advisors\ bases\ account_type\ account_number\ logs. قرار دارد. برای هر روز یک فایل جداگانه با یک ثبت وجود دارد. این فایل در یک ویرایشگر متن قابل باز شدن است.

چرا برخی از متغییرهای جهانی در مقابل شان تغییردهندۀ "بیرونی" دارند؟

یک متغییر جهانی هم با تغییردهندۀ بیرونی و هم بدون آن شناخته می شود. اگر تغییردهندۀ بیرونی وجود دارد، پس از اجرای اسکریپت، یک پنجره برای تغییر چنین پارامترهایی باز خواهد شد. ضمن اینکه این پارامترها در زمانیکه مشاور یا اندیکاتور در حال اجراست می توانند فوراً تغییر کنند.

چه ترکیبات کلیدی مفیدی برای کار با برنامه وجود دارند؟

فشار دادن همزمان کلید های Ctsl و N فهرست نمادهای موجود برای ایجاد یک نمودار را باز می کند.
هنگام کار با نمودار، برای تغییر اندازۀ آن بطور افقی می توانید از - و + استفاده کنید. اگر نشانگر موس روی مقیاس زمان باشد و چپ کلیک کنید و موس را به چپ یا راست حرکت دهید نیز همین اتفاق رخ می دهد. برای اعمال تغییر بطور عمودی، نشانگر موس را روی مقیاس قیمت ببرید و چپ کلیک کنید و موس را پایین و بالا ببرید.
برای نمایش نمودار قیمت دورترین تاریخ باید کلید Home را بزنید و برای دسترسی به آخرین قیمت ها کلید End را بزنید.
اگر روی کادر خالی گزینۀ "پوزیشن های باز" (Open Positions) دو بار کلیک کنید، پنجرۀ معامله باز می شود. اگر روی کادر خالی گزینۀ دستور دو بار کلیک کنید پنجرۀ تنظیم دستور باز می شود.
مشابه همین کارها را با فشار دادن کلید F4 برای باز کردن پنجرۀ معامله و کلید F3 برای باز کردن پنجرۀ تنظیم دستور می توانید انجام دهید.

من تقسیم عدد صحیح (System.Print("2/3="+2/3 انجام می دهم، نتیجۀ 2 تقسیم بر 3 می شود 0، دلیل این اتفاق چیست؟

از آنجائیکه هر دو عملوند، عدد صحیح هستند، نتیجۀ تقسیم یک عدد صحیح خواهد شد به همین دلیل باید یکی از عملوندها را به نوع دوبل تبدیل کنید. به این شکل: 3/(2)دوبل، نتیجه خواهد بود: 0.666667 = 3/2 .

متغییرهای جهانی ذخیره شدۀ ترمینال کاربر کجا قرار دارند؟

در منوی "نمایش" (View) با کلیک روی گزینۀ "متغییرهای جهانی" (Global variables)، پنجرۀ "متغییرهای جهانی" باز می شود که متغییرهای جهانی از آن طریق قابل مشاهده هستند. لازم به ذکر است که هر حساب تجاری، متغییرهای جهانی مختص به خودش را دارد.

نحوۀ تعیین قیمت آخرین فرکتال چگونه است؟

در هنگام استفاده از روش Indicators.Fractals، تلاش برای مقدار گرفتن برای آخرین میله بی فایده است چراکه صفر خواهند بود. مقادیر معتبر فرکتال ها از چهارمین میله (میله با شاخص 3 ) ایجاد می شوند چراکه در این حالت دو میله ای که بطور کامل شکل گرفته اند در هر سمت از میلۀ مورد نظر استفاده خواهند شد.

مقایسه اعداد دو رقمی چگونه است؟

ارقام در حافظه کامپیوتر در سیستم دودویی محاسبه ذخیره می شوند. به همین دلیل بسیار از اعداد، بخصوص در سیستم اعشاری، فقط به عنوان کسر مسلسل می توانند نمایش داده شوند. به عنوان مثال، عددی که بصورت 0.1 داده شده است در حقیقت می تواند با 0.09999999 برابر باشد. به همین دلیل است که یک معادل دو رقمی برای ارقام مقایسه ای با نقطۀ شناور صحیح نیست. بهتر است از روش ریاضی Math.Abs(a - b) < delta استفاده شود که در آن 'a' مقدار نتیجه است، 'b' مقداری است که با آن مقایسه صورت گرفته و delta یک خطای مطلق است.