النتائج 16 إلى 30 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 11-12-2007, 10:14 PM #16
رد: موضوع مخصص للأسئلة البرمجية
إجابات أكثر من رائعة أستاذ وضاح..
بارك الله فيك..
هل يُسمح في هذا الموضوع أن نعرض ما قمنا ببرمجته للبحث والنقاش.. أم نفتح موضوعا آخر لذلك..؟
- 11-12-2007, 10:16 PM #17
- 11-12-2007, 10:20 PM #18
- 11-12-2007, 10:23 PM #19
- 11-12-2007, 11:03 PM #20
رد: موضوع مخصص للأسئلة البرمجية
كلامك سليم أخ وضاح و لكن اشكالية الاخ هي عند الهدف و الاستوب و بهذه الحالة هو سيحدد قيمة لهما ستكون بعيدة عن السعر الحالي لذلك لا علاقة للبروكر بذلك ما دام يشتري بالاسك و يبيع بالبد
و يبقى الفارق الوحيد هو ما اوضحته له من فارق السبريد في حالة الهدف و الاستوب
و الله اعلم
- 12-12-2007, 10:21 PM #21
رد: موضوع مخصص للأسئلة البرمجية
سؤال جديد وجزاكم الله خيرا..
هل ال Static Variable خاص بالاكسبرتات فقط..؟
أم يمكن تعريفه في المؤشرات أو السكربتات..؟
وسؤال آخر..
دالة Start يتم تنفيذها مع كل تغير في السعر (في الاكسبرت).. فهل يتم تحميل قائمة المدخلات كذلك مع كل تغير في السعر..؟ يعني لو غيرنا مثلا في مدخلات الاكسبرت..: هل سيستخدمها الاكسبرت مع تغير السعر التالي فورا..؟
معذرة.. سؤال ثالث ..
هل يمكن تغيير أحد المتغيرات الخارجية (من قائمة المدخلات) وذلك من داخل كود الاكسبرت نفسه..؟ بحيث مثلا يدخل المستخدم عدد العقود المناسب له.. لكن يقوم الاكسبرت ببعض الحسابات ويحدد عدد عقود آخر (يتناسب مع إدارة المخاطر على سبيل المثال)..؟
واعذروني لو كنت أزعجتكم..
- 12-12-2007, 11:07 PM #22
رد: موضوع مخصص للأسئلة البرمجية
جزاكم الله كل خير
- 13-12-2007, 02:40 AM #23
رد: موضوع مخصص للأسئلة البرمجية
نعم أخي ان البرنامج عندما تضعه على الشارت يقرأ المدخلات مرة واحدة و من ثم يقرأ دالة ستارت مع كل تك
فلو انك وضعت في المدخلات مثلا اللوت يساوي 1 و في دالة ستارت وضعت اللوت يساوي 2 فان البرنامج سيقرأ اللوت واحد و يكمل قراءته ليصل الى الجزء الذي وضعت به اللوت 2 في دالة ستارت و سوف يكمل عمله على اساس ان اللوت 2
و عندما تغير أي شيء في المدخلات بمجرد ان تضغط على زر اوكي على النافذة فان البرنامج يقرأ المدخلات مرة واحدة ويكمل الى دالة ستارت أي ان أي تغيير في المدخلات يقرأه البرنامج مع أول تك لمرة واحدة فقط
تقبل تحياتي
- 13-12-2007, 05:28 PM #24
رد: موضوع مخصص للأسئلة البرمجية
الرجاء من الاخوة المبرمجين المساعدة في التعديل على الاكسبيرت الموجود في هذا الموضوع
https://forum.arabictrader.com/t37760.html
- 13-12-2007, 07:34 PM #25
- 13-12-2007, 07:37 PM #26
- 13-12-2007, 07:49 PM #27
- 13-12-2007, 08:48 PM #28
- 15-12-2007, 03:06 PM #29
رد: موضوع مخصص للأسئلة البرمجية
س :
هل يوجد بيئة مشابهة للميتا تريد او لغة MQL4 لكن على لغة أخرى مثل الجافا بحيث تعطي صلاحيات امن Security وجودة وحرية اكثر في البرمجة؟؟ أو فقط المؤشرات والاكسبيرتات للفوركس تقتصر على هذه اللغة؟
ج :
سأجيب عن هذا السؤال بأمور محددة على شكل نقاط :
= تركيبة لغة MQL4 هي في الحقيقة نفس تركيبة لغة C .
= يقصد بتركيبة اللغة هي التعليمات الأساسية ( if for return .... ) وكذلك طريقة كتابة الوظائف وتعريف المتحولات .
= سيكون من السهل على مبرمج C التعامل مع اللغة الجديدة ولكن يجب عليه تعلم الوظائف الجديدة وطريقة عمل الفوركس أساسا من أسعار ومؤشرات .. الخ .
= يستطيع من لديه خبرة جيدة في الفوركس تعلم لغة البرمجة واتقانها أفضل بكثير من مبرمج C لا يعرف شيئا عن الفوركس .
= لا يمكن تنفيذ برنامج MQL4 في بيئة C أو العكس .
= هذه اللغة مخصصة فقط لبرامج التداول ****trader ولا يمكن الاستفادة منها في بيئات مختلفة أخرى مثل الميتاستوك والذي يتضمن لغة أخرى مختلفة تماما .
= مع ذلك وبقليل من الخبرة يمكنك التآلف مع بيئة MQL4 بسهولة وإيجاد تقنيات خاصة بك لعمل تصحيح أخطاء وتطوير برامجك بشكل أفضل .
= مع أن بيئة MQL4 تحتوي مترجم نصوص برمجية Compiler خاص بها لإخفاء النص البرمجي عن الغير إلا أن هذا غير كافي أبدا لحفظ نص برنامجك بأمان .
= لذلك ومع تقدمك في البرمجة يجب عليك الإعتماد على المكتبات الخارجية DLL التي تكتب بلغات عدة مثل السي الأصلية .
= بهذه الطريقة يمكنك حماية برنامجك بشكل أفضل .
= يفضل دائما عدم استباق الأمور في هذه المسائل فلكل مرحلة أولوياتها وتأكد أنه كلما زادت خبرتك زادت حلولك .
- 15-12-2007, 03:08 PM #30
رد: موضوع مخصص للأسئلة البرمجية
س :
ما هي الدالة التي تقوم بحساب 10% مثلا من رأس المال كنظام إدارة مال آلي .. في كل مرة ندخل صفقة تحسب الـ 10% بناء على مجمل رأس المال كله (رأس المال الأساسي+ الأرباح الأخيره)
ج :
للإجابة عن هذا السؤال ينبغي أولا توضيح وشرح بعض الوظائف المتعلقة بإدارة رأس المال :
= الوظيفة AccountBalance :
هذه الوظيفة تعطينا قيمة الرصيد الحالي الناتج عن الإجمالي لمجموع المبلغ الأساسي مع مجموع الأرباح والخسائر لجميع الصفقات التي فتحت وأغلقت .
وأي صفقة مفتوحة ولم تغلق بعد فإن مجموعها لا يدخل في حساب الرصيد السابق .
= الوظيفة AccountEquity :
هذه الوظيفة تعطينا قيمة الرصيد الفعلي وهو مساوي للرصيد السابق إضافة إلى الرصيد المتحرك الناتج عن الصفقات المفتوحة .
وهو قد يزيد عن الرصيد الحالي في حال كانت الصفقات المفتوحة وغير المغلقة بعد رابحة .
أو قد ينقص عن الرصيد الحالي في حال كانت الصفقات المفتوحة وغير المغلقة بعد خاسرة .
مثال :
فتحنا حساب بمبلغ 5000 دولار ودخلنا خمس صفقات .. أغلقنا ثلاث صفقات بربح إجمالي 150 دولار
وبقي صفقتين مفتوحتين لم تغلقا بعد وكان إجمالي ربح الصفقتين المفتوحتين -50 ( خسارة ) وفق الأسعار الحالية .
يصبح الرصيد الحالي AccountBalance مساوي للمبلغ 5000 + 150 = 5150 دولار .
يصبح الرصيد الفعلي AccountEquity مساوي 5150 + (-50) = 5100 دولار .
يتغير الرصيد الفعلي AccountEquity دائما مع تغير الأسعار .
فمثلا لو تحركت الأسعار باتجاه الصفقتين المفتوحتين وتحولت خسارتهما إلى ربح 100 دولار فيصبح الرصيد الفعلي مساوي للمبلغ 5150 + 100 = 5250 دولار .
بينما يبقى الرصيد الحالي AccountBalance مساوي للمبلغ 5150 دولار .
عند إغلاق الصفقتين المفتوحتين يصبح الرصيد الحالي مساويا للرصيد الفعلي وهو المبلغ 5250 دولار
= الوظيفة AccountMargin :
هذه الوظيفة تعطينا المبلغ المحجوز لصفقاتنا المفتوحة .. أي المبلغ الذي فتحنا به الصفقات بعدد لوتات معين .
ويتم حسابه وفق عدد اللوتات المفتوحة إضافة إلى الرافعة المالية المستخدمة .
= الوظيفة AccountFreeMargin :
هذه الوظيفة تعطينا المبلغ المتوفر الذي نستطيع من خلاله فتح صفقات جديدة إضافية . وهو يساوي الرصيد الفعلي مطروحا منه المبلغ المحجوز لصفقاتنا المفتوحة .
نأتي الآن للمفيد في إدارة رأس المال .. وفي مثالنا السابق لدينا في رأس المال 5000 دولار ولو فرضنا أننا قررنا الدخول ب 10 % فقط
هذا يعني أن المبلغ المستثمر هو 500 دولار ..
فإذا كانت رافعتنا المالية 1:100 فهذا يعني أننا قادرون على فتح صفقة بخمسة لوتات ميني .
أما إذا كانت رافعتنا المالية 1:200 فهذا يعني أننا قادرون على فتح صفقة بعشرة لوتات ميني أو لوت كامل واحد .
وهكذا ..
وعند برمجة اكسبيرت ما يجب أن يأخذ بعين الاعتبار هذه الأرصدة ويقوم بحساب المبلغ المتاح له كنسبة مخاطرة مئوية
طبعا هناك طرق كثيرة لحساب عدد اللوتات المتاح له في الصفقة الجديدة وكلها تعتمد بالأساس على الطريقة المتبعة لإدارة رأس المال
بالنسبة لي ارى أن يقوم الاكسبيرت بحساب نسبة المارجن المستخدم بالنسبة للرصيد الكلي قبل الدخول في صفقة جديدة
فإذا كانت نسبة هذا المبلغ أكبر من أو يساوي النسبة المسموحة فإنه يؤجل الدخول في الصفقة الجديدة
وإلا فإنه يحسب مجددا المبلغ المتبقي من النسبة المتاحة له ثم يحولها إلى عدد لوتات بناء على المارجن الذي سيحجز لكل لوت على العملة التي سيفتح الصفقة عليها
أي أنه سيقوم بحساب ما يلي وعلى أساس أن نسبة المخاطرة 10 % :
- يحسب نسبة المخاطرة الحالية وذلك بقسمة AccountMargin على AccountBalance
ولنفرض أن القيمة كانت أكبر من 0.1 أي أكبر من 10 % وهذا يعني أنه لا يمكن فتح صفقة جديدة .
مثال :
الرصيد 5000 ::: المارجن المستخدم 600 ::: 600 / 5000 = 0.12 وهي أكبر من 0.1
لذلك لا ندخل في الصفقة الجديدة
- أما إذا كانت النسبة أقل من 0.1 فإنه يحسب المبلغ المتاح له للدخول في صفقة جديدة وذلك كما يلي :
يحسب أولا المبلغ الذي يساوي 10 % من الرصيد ثم يطرح منه AccountMargin
مثال :
الرصيد 5000 ::: المبلغ المتاح 0.1 * 5000 = 500
500 - AccountMargin ولنفرضه 200 = 300
إذا استطعنا حساب المبلغ الذي نستطيع به شراء عدد لوتات معين
- الآن يجب تحويل المبلغ السابق 300 إلى عدد لوتات وذلك بقسمة 300 على قيمة المارجن للوت واحد
يمكن معرفة قيمة المارجن للوت واحد بواسطة الوظيفة
كود PHP:MarketInfo (MODE_MARGINREQUIRED)
هذه هي كل المعلومات الأساسية لحساب عدد اللوتات المناسب للصفقة الجديدة بناء على نسبة مخاطرة محددة
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM