IFC Markets Forex Broker

FAQ لبرنامج NetTradex Advisors

أريد أن أقوم بتنصيب الـ NetTradeX Advisors على كمبيوتر آخر. كيف يمكنني تصدير جميع سكريبتاتي * ؟

تُحفظ جميع سكريبتات الـ NetTradeX Advisors في مجلد Documents\NeTTradeX Advisors\scripts . بعد الانتهاء من تنصيب البرنامج على الكمبيوتر الثاني ، سيترتب عليك نسخ محتوى المجلد بأكمله و لصقه في المجلد المطابق على الكمبيوتر الجديد و من ثم إعادة تشغيل المنصة .

لقد قمت بإنشاء اينديكاتر (indicator ) ، لكن خطه يتقطّع . كيف يمكنني إظهار خط الاينديكاتر هذا بدون أن تكون هناك فراغات به ( بدون أي تقطّع ) ؟

لإظهار الخط بدون حدوث إي إنقطاع فيه ، استخدم خاصية SetIndexStyle مع استخدام بارامتر type الذي له قيمة ltSection .

إن الاكسبيرت يتوقف بعد بضع ثوان من تشغيله و تظهر في السجل رسالة " stopped by timeout " .ما هو السبب في حدوث ذلك ؟

بعد وصول التيك (tick ) ، يُفترض على الاكسبيرت ان يقوم بتنفيذ جميع الخطوات المنطقية للبرنامج و ذلك في غضون زمن محدود ( 60 ثانية ). في حال زاد الحدّ عن هذا المقدار ، فإن الاكسبيرت يتوقف بشكل اجباري ، و يُعطى 3 ثوان إضافية على إنهاء عمل الاكسبيرت. يُنصح بتحليل حالة و وضع الراية (flag ) لـ System.IsStopped على انهاء عمل الاكسبيرت بشكل صحيح . أثناء توقف الاكسبيرت ، تظهر للمستخدم رسالة stopped by timeout . في هذه الحالة ، يجب إعادة صياغة البرنامج ، بشكل يصبح فيه وقت تنفيذ البرنامج أقل .

أقوم بإرسال طلبية لفتح الصفقة بمساعد الدالة Deals.Open() ، بيد انه لا يتم فتح الصفقة . كيف يمكنني فهم ، سبب ما يجري ؟

بعد ان تكون قد تأكدت من أن دالة Deals.Open() ، تُعيد الصفر ، يجب اللجوء الى خاصية System.LastError و الحصول على كود الخطأ. إن شرح كودات الاخطاء ، يتم في تعليمات المستخدم ، في قسم " اسس اللغة "- " كودات الاخطاء ". انتبه الى أن اللجوء الى خاصية System.LastError يجب القيام به في استدعاء خاصية التداول ، و إلا فإن العملية اللاحقة ستُغير هذه الخاصية بشكل يتماثل مع نتائج عملها .

لقد قمت بفتح صفقة أو بوضع أمر ، و أحاول الحصول على خصائه و لكن القيم التي حصلت عليها لا تتطابق مع ما هو عليه .

للحصول على خصائص الصفقة أو الأمر ، يجب أولاً استدعاء الدالة Select() و من ثم ، و بعد التأكد من أن Select() أعادت قيمة true ، يمكن الحصول الى خصائص الصفقة أو الأمر .

كيف يمكنني تحديد نوع الامر المؤجل (Buy stop أو Buy limit ) ؟

لمعرفة نوع الامر المؤجل ، يجب أن تقوم بالنظر في خصائصه ، عن طريق استدعاء دالة Select(). لأمر Buy Stop يجب أن يتنفذ شرطين : Orders.Direction == opBuy و Orders.IsLimit == false، و بالتالي ، فإنه لأمر Buy Limit يجب تنفيذ شرطين Orders.Direction == opBuy و Orders.IsLimit == true

فيما تلزم الخاصية SubType ( النوع الفرعي للأمر - order subtype ) ؟

إن الخاصية الفرعية تُستخدم للاوامر " المعقدة " و تسمح بتحديد اي من الاوامر تُعدّ اساسية و اياً منها تُعد تابعة. على سبيل المثال ، في حال وجود أمر مُفعّل ، و الذي في اثناء تَفعّله سيتم وضع امرين " أمر يلغي الآخر " : الامر المفعل سيكون هو الاساسي ( أمر من المستوى الأول - order level 1 ) و أمر يلغي الآخر – تابع له ( أمر من المستوى الثاني - order level 2 ) .

اريد فتح صفقة على رمزٍ محدد. قمت بفتح نافذة " Make deal " ، و لكن لم أجد فيه الرمز الذي أُريده .

تحتوي قائمة الرموز في حوار فتح الصفقة على تلك الرموز ، الموجودة في نافذة Market Watch. لذلك ، و قبل ارسال طلب فتح الصفقة ، تأكّد بأنك مشترك بالرمز المطلوب و ذلك في Market Watch .

كيف يمكنني أن احصل على معلومات عن ربح الصفقات ، التي أقفلتها يوم أمس أو منذ عدة أيام ؟

تصل المعلومات عن الصفقات المقفلة الى تبويبة History لمنصة NetTradeX Advisors.. يمكن الوصول الى مثل هذه الصفقات بمساعدة History. يتم حفظ المعلومات عن الصفقات المقفلة حتى وقت اعادة تشغيل المنصة .

أقوم بإستدعاء Symbols.Distance() ، و لكنني أحصل على قيمة معدومة – صفر – لأدنى مسافة للأمر .

قبل استدعاء طريقة Symbols.Distance() ، اشترك بالرمز (Symbols ) الذي تريده في نافذة Market Watch .

ماهي الوظائف النظامية (system functions ) التي يجب أن تتواجد في السكريبت * ؟ إذا لم أكن ملزم بتنفيذ الافعال اثناء تنصيب و حذف السكريبت ، فهل يمكنني حذف هذه الوظائف ؟

لتشغيل السكريبت ، تلزم الدالة Run() . تُعتبر الدالتان Initialize() و DeInitialize() دالتان إختياريتان ، و إذا لم يكن هناك اي تصور لأية إجراءات اثناء التنصيب و الحذف ، فإنه يمكن استثنائهما من البرنامج .
في بعض الحالات ، على سبيل المثال ، أثناء إنشاء ملفات لوصف دالات المستخدمين المساعدة ، يمكن أن لا يتواجد في السكريبت ايضاً دالة Run() . سيكون باالمكان جمع هذه الملفات ، لكن من غير الممكن تشغيلهم. إن مثل هذه السكريبتات ، تُستخدم الى جانب الموجّه #include و تدخل في كود السكريبتات التنفيذية .
* إن مفهوم السكريبت في لغة NTL+ يشمل في ذاته ثلاثة أنواع من البرامج : اكسبيرت ، اينديكاتر ، مُرفق ( أداة مساعدة ).

هل يوجد أي سجل (log ) ، تُسجّل فيه معلومات عن عمل البرنامج ؟

نعم يوجد . إن جميع المعلومات المعروضة على تبويبة Journal تُسجّل أيضاً في ملف السجل (log file ) ، و الذي يتواجد في مجلّد Documents\ NetTradeX Advisors\ bases\ account_type\ account_number\ logs . يتم إنشاء ملف لكل يوم بيومه ، و يكون امتداد هذا الملف log.. يمكن فتح هذا الملف في اي محرر للنصوص .

لماذا يًستخد مُعدّل extern قبل بعض المتغيرات الشاملة

يمكن للمتغيرات الشاملة أن تتواجد على شكل extern مُعدّل أو بدونه. في حاول وجود المُعدّل extern بعد تشغيل السكريبت مباشرة ،تُفتح نافذة ، يمكن فيها تغيير قيم مثل هذه المُتغيرات. عدا عن ذلك ، يمكن تغيير هذه المتغييرات بسرعة ، اي بمعنى أثناء وجود الاكسبيرت أو الاينديكاتر في حالة عمل .

ما هي الاختصارات الموجودة و المفيدة للعمل مع البرنامج ؟

بالضغط على تركيبة المفاتيح Ctrl+N ، تُفتح قائمة الرموز ، المُتاحة لإنشاء الرسومات البيانية للأسعار الجارية .
أثناء العمل مع الرسومات البيانية ، يمكن استخدام تركيبة المفاتيح + / - في القسم الرقمي للوحة المفاتيح و ذلك لتغيير حجم الرسم البياني افقياً. كما يمكن تنفيذ هذه العملية ، إذا قمنا بتحريك مؤشر الفأرة من الخط الزمني لليمين و لليسار. لتغير الحجم عمودياً ، فإنه يجب تحريك مؤشر الفأرة من لوحة الأسعار و بالضغط المستمر على زر الفأرة ، مُحركين الفأرة نحو الأعلى أو الأسفل .
لإظهار الرسم البياني للأسعار الجارية حتى أبعد تاريخ ، يمكن الضغط على زر Home أما للإنتقال الى آخر الأسعار ، فإنه يمكن الضغط على زر End .
إن عملية النقر المزدوج في مكان فارغ لتبويبة Open Positions ، يؤدي الى فتح نافذة فتح الصفقة ، و بالنقر المزدوج في مكان فارغ لتبويبة الأوامر – تُفتح نافذة إعداد الأمر. يمكن تنفيذ هذه العمليات بالنقر على زر F4 في لوحة المفاتيح ( فتح الصفقة ) أو على زر F3 ( إعداد الأمر ) .
يمكن تغيير قيم الحقول الرقمية في النوافذ الحوارية لفتح الصفقة أو إعداد الأوامر من خلال تحريك دولاب الفأرة. على سبيل المثال ، أثناء إعداد سعر الامر المرتبط ، فإن تحريك دولاب الفأرة مرة واحدة يؤدي الى تغيير السعر بقيمة نقطة واحدة .

أقوم بتقسم أعداد كاملة System.Print("2/3="+2/3); و بالنتيجة أحصل على أن 2/3=0 . لماذا يحدث هذا الشيء ؟

كون أن كلا المعاملين عبارة عن أعداد صحيحة ، فإن النتيجة ستكون هي أيضاً عبارة عن عدد صحيح. لذلك ، يجب تحويل إحدى المعاملين ليصبح من نوع double على الشكل التالي (2)/3 و في هذه الحالة ستكون نتيجة 2/3=0,666667 .

أين تُحفظ التغيرات الشاملة لبرنامج المستخدم ؟

يمكن معاينة التغيرات الشاملة بمساعدة نافذة " Global Variables " و التي يمكن استدعائها بمساعدة قائمة View - Global Variables . انتبه الى أنّ لكل حساب متغيراته الشاملة الخاصة به .

كيف يمكن تحديد سعر آخر كسر ( فراكتال ) ؟

اثناء استخدام طريقة Indicators.Fractals عبثاً تجري محاول الحصول على قيم آخر قضيب ( بار ) كون أنها ستكون قيمتها مساوية للصفر. القيم المؤكدة للكسور تتشكل بدءاً من البار الرابع ( البار مع فهرس 3 ) ، كون أنه في مثل هذه الحالة ، سيتم استخدام بارين كاملين متشكلين في كل اتجاه من البار المطلوب .

كيف يمكن مقارنة الأعداد من نوع double ؟

يتم حفظ المعلومات في ذاكرة الكمبيوتر بنظام العد الثنائي ، و بسبب ذلك ، يمكن للعديد من الارقام المُعطاة في النظام العشري أن تكون على شكل كسر لا منتهي فقط . العدد المُعطى على سبيل المثال كـ 0.1 يمكن حقيقةً أن يكون مساوياً لـ 0.099999998 ، لذلك من غير الصحيح و الدقيق استخدام المساواة المزدوجة لمقارنة الارقام من نقطة عائمة . من الافضل استخدام الطريقة الرياضية Math.Abs(a - b) < delta حيث a هي القيمة الناتجة و b هي القيمة التي يجري معها المقارنة و delta هي الخطأ المطلق .