صفحة 263 من 686 الأولىالأولى ... 163213253257258259260261262263264265266267268269273313363 ... الأخيرةالأخيرة
النتائج 3,931 إلى 3,945 من 10285
  1. #3931
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة wadi2012 مشاهدة المشاركة
    سؤال
    عندما اخزن قيمة متغير او متغيرات او حتى رسالة عن طريق الامر print()
    في ملف ال log هل من الممكن ان اظهرها مرة أخرى على الشارت ؟
    يعني لنفرض انني خزنت قيمة
    static x= 10
    ثم تم تغيير القيمة الى 30 مثلا
    وبعد غلق برنامج التداول وفتحه سوف ترجع القيمة x = 10
    كما كانت ولكن اريد عندما افتح البرنامج مرة اخرى استعيد اخر قيمة ل x والمخزنة في ملف ال log فهل يمكن ان استعيد ذلك ؟
    لا يمكن ذلك حسب ما أعلم
    والحل أن تجعل الإكسبرت يقوم بحفظ و عمل ملف تقوم فيه بتخزين جميع البيانات التي تريدها لكن يجب إغلاق الملف قبل إيقاف الإكسبرت حتى تحفظ البيانات بداخل الملف وعند تشغيل الإكسبرت تقوم بإستدعاء الملف بالبيانات الموجوده بداخله
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  2. #3932
    الصورة الرمزية daod
    daod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2013
    المشاركات
    246

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    مثال راجع كود الإكسبرت المرفق سوف تجد به كل الكود الذي تريده وإذا لم تستطع فهم جزء أخبرني به
    بارك الله فيك اخي مستر دولار
    طبعا لم اقم بتجربه الاكبسيرت بعد ولدي بعض الملاحظات وياريت ان لاتنسى ان ترد على كل الملاحظات.

    السؤال الاول

    يمكن شرح هذه المتغيرات في عمليه الهدج وهل سيكون الهيدج لمر واحده او يوجد مسافه بين كل هيدج واخر اي يعني ماذا تقصد بالضبط بهذه المتغيرات؟
    extern bool OpenHedgeFirstTime=false;
    extern double HedgeLots=0.1;
    extern int HedgeTP=0;
    extern int HedgeSL=0;

    السؤال الثاني

    هاذان المتغيران هل تقصد فيهما الاتي
    extern bool AddOrdersAfterClose=true;
    فتح الصفقه مرة أخرى بعد إغلاقها سواء أغلقت على ربح أو خساره وهل هذا هو الكود المسؤال عن ذلك void OpenClosedOrders(int type)؟
    extern bool ReverseClosedOrders=false;
    وضع أوامر بيع معلقه في حال أغلقت صفقة الشراء وأوامر شراء معلقه في حال أغلقت أوامر البيع و لكن ماهو الكود المسؤل عن هذه الوظيفه؟

    السؤال الثالث
    لتشابه المتغيرات اريد معرفه الفروقات بين هذه المتغيرات وماهو بالضبط؟
    extern int DistanceFromCurrentPriceBS=0 و extern int Distance_AddBuyS=0

    وكذلك بين المتغيرات

    extern bool UseHourTrade = false; و extern bool OpenAtChoosenHour=false;

    وكذلك بين المتغيرات

    extern bool FridayCloseOrders=false;
    extern int _Hour=20;
    والمتغير
    extern bool FridayCloseEA=false;
    extern int Friday_CloseHour=20;

    ملاحظه لم افهم بماذا ترمز ل CloseEA


    السؤال الرابع

    هل اذا قمت بحذف مايوجد بداخل وظيفه المقدمه والنهايه لم يؤثر على عمل الاكسبيرت؟

    لاحظتك تكتب بعض الاحيان اكواد تبداء بكلمات متختلفه اما void او int او double او boole وهل يمكن استخدام كل منهما مكان الاخر وما تعني void؟

    جزيت خيرا مقدما
    آخر تعديل بواسطة daod ، 30-05-2013 الساعة 09:14 AM

  3. #3933
    الصورة الرمزية QtrrtQ
    QtrrtQ غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2011
    المشاركات
    23

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    لسلام عليكم ورحمة الله وبركاته

    اشكركم على تعاونكم الدايم
    ممكن كود الغاء الصفقه المرادفه
    مثال وضع امرين معلقين شراء وبيع استوب لو تم تفعيل امر الشراء استوب وجاب الهدف او بخسارة اريد لما تتم الصفقه بربح اوخساره تغلق الصفقه المعلقه البيع المرادفه لها
    ولكم جزيل الشكر

  4. #3934
    الصورة الرمزية waleedgadelmola
    waleedgadelmola غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    مصر
    المشاركات
    346

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    بعد إذن أستاذ أسامة
    ----------------------

    يمكنك أن تكتفي بحلقة واحدة في دالة إستارت تقوم بالبحث ومعها دالة الإغلاق

    كود PHP:

    int start
    ()
      {
      
      if(
    OrdersTotal()>0&&AccountProfit()>0){
      
      for(
    int i=0;i<=OrdersTotal();i++){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderLots()>=MaxLots){
         
           
    CloseAllOrders();
        }
      }

       return(
    0);
      } 

    أخي الكريم الاستاذ أسامه أو الاخ يوسف
    قمت بعمل الداله السابق ذكرها كما تفضل الاستاذ يوسف ( xcv114 )
    ولكني وجد
    1- الاكسبرت يقوم بقراءة اللوت الموجود على المنصة سواء كان للصفقات المفتوحة او المعلقة
    أنا أريدة فقط قراءة اللوت للصفقات المفتوحة فقط حتى أتمكن من عدم الدخول في مضاعفات اكبر من MaxLots وهو المتغير الموضوع من قبلي خارجيا
    2- لاحظت أيضا الاكسبرت لا يقوم باغلاق جميع الصفقات دفعة واحده سواء كانت معلقة او مفتوحة عند الوصول للمضاعفة الممطلوبة بواسة المتغير الخارجي MaxLots بل يقوم باغلاق بعض منها والبقاء على الأخرى جربت كتابة الأمر التالي داخل الحلقة for ليصبح ما بداخل دالة ستارت كالتالي ولكن ايضا ما ظبطت معي


    كود PHP:
    int start()
      {
      
      if(
    OrdersTotal()>0&&AccountProfit()>0){
      
      for(
    int i=0;i<=OrdersTotal();i++){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderLots()>=MaxLotsToCloseALL){while(OrdersTotal()>0){CloseAllOrders();}}
      }

       return(
    0);
      } 
    أرجو التكرم من الاستاذ اسامة بحل مشكلتي التي تتلخص في النقاط التالية
    1- اكسبرت رقم واحد ( مغلق الكود ) يقوم بفتح اوامر طبقا لنظام المضاعفات 1248
    2- كود الاكسبرت المطلوب عملة هو قراءة حجم اللوت للصفقات المفتوحة فقط وليست المعلقة من قبل اكسبرت رقم واحد ومن ثم وضع متغير خارجي اسميته MaxLotsToCloseALL وعند الوصول إلية يقوم باغلاق جميع صفقات المنصة ( المفتوحة والمعلقة )
    3- عند وصول اللوت للاوامر ( المفتوحة فقط ) من قبل اكسبرت رقم واحد إلى الرقم المكتوب في الاكسبرت المطلوب MaxLotsToCloseALL يقوم باغلاق جميع الصفقات الموجودة على المنصة سواء معلقة او مفتوحة بشرط يكون صافي ربح الصفقات المفتوحة أكبر من الصفر وترك المجال للاكسبرت رقم واحد بدخول صفقات جديدة باللوت المبدئي له وطبقا لاستراتيجية عملة
    جزاكم الله كل خير
    آخر تعديل بواسطة waleedgadelmola ، 30-05-2013 الساعة 02:58 PM

  5. #3935
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة QtrrtQ مشاهدة المشاركة
    لسلام عليكم ورحمة الله وبركاته

    اشكركم على تعاونكم الدايم
    ممكن كود الغاء الصفقه المرادفه
    مثال وضع امرين معلقين شراء وبيع استوب لو تم تفعيل امر الشراء استوب وجاب الهدف او بخسارة اريد لما تتم الصفقه بربح اوخساره تغلق الصفقه المعلقه البيع المرادفه لها
    ولكم جزيل الشكر
    ممكن توضح أكتر

    طالما الصفقة المعلقة العكسية سيتم حذفها في حالة إغلاق الصفقة الاخرى على ربح أو خسارة
    يبقى ليه تنتظر إغلاقها ؟
    قوم بحذف تعليق الصفقة الأخرى بمجرد تفعيل أي منهما

    هل هذا ما تقصده ؟

  6. #3936
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة waleedgadelmola مشاهدة المشاركة
    أخي الكريم الاستاذ أسامه أو الاخ يوسف
    قمت بعمل الداله السابق ذكرها كما تفضل الاستاذ يوسف ( xcv114 )
    ولكني وجد
    1- الاكسبرت يقوم بقراءة اللوت الموجود على المنصة سواء كان للصفقات المفتوحة او المعلقة
    أنا أريدة فقط قراءة اللوت للصفقات المفتوحة فقط حتى أتمكن من عدم الدخول في مضاعفات اكبر من MaxLots وهو المتغير الموضوع من قبلي خارجيا
    2- لاحظت أيضا الاكسبرت لا يقوم باغلاق جميع الصفقات دفعة واحده سواء كانت معلقة او مفتوحة عند الوصول للمضاعفة الممطلوبة بواسة المتغير الخارجي MaxLots بل يقوم باغلاق بعض منها والبقاء على الأخرى جربت كتابة الأمر التالي داخل الحلقة for ليصبح ما بداخل دالة ستارت كالتالي ولكن ايضا ما ظبطت معي


    كود PHP:
    int start()
      {
      
      if(
    OrdersTotal()>0&&AccountProfit()>0){
      
      for(
    int i=0;i<=OrdersTotal();i++){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderLots()>=MaxLotsToCloseALL){while(OrdersTotal()>0){CloseAllOrders();}}
      }

       return(
    0);
      } 
    أرجو التكرم من الاستاذ اسامة بحل مشكلتي التي تتلخص في النقاط التالية
    1- اكسبرت رقم واحد ( مغلق الكود ) يقوم بفتح اوامر طبقا لنظام المضاعفات 1248
    2- كود الاكسبرت المطلوب عملة هو قراءة حجم اللوت للصفقات المفتوحة فقط وليست المعلقة من قبل اكسبرت رقم واحد ومن ثم وضع متغير خارجي اسميته MaxLotsToCloseALL وعند الوصول إلية يقوم باغلاق جميع صفقات المنصة ( المفتوحة والمعلقة )
    3- عند وصول اللوت للاوامر ( المفتوحة فقط ) من قبل اكسبرت رقم واحد إلى الرقم المكتوب في الاكسبرت المطلوب MaxLotsToCloseALL يقوم باغلاق جميع الصفقات الموجودة على المنصة سواء معلقة او مفتوحة بشرط يكون صافي ربح الصفقات المفتوحة أكبر من الصفر وترك المجال للاكسبرت رقم واحد بدخول صفقات جديدة باللوت المبدئي له وطبقا لاستراتيجية عملة
    جزاكم الله كل خير
    نعم أخي المشكلة إنه أثناء غلق العمليات قد يتحول AccountProfit إلي سالب (خسارة) فلا يتحقق الشرط لإغلاق باقي العمليات
    أو قد يغلق العملية في البداية إللي فيها : اللوت أكبر من اللوت المحدد في المتغير الخارجي وبالتالي لا يتحقق الشرط لإغلاق باقي العمليات
    --------------------------------

    يمكنك التغلب على هذه المشكلة بتعريف متغير منطقي bool خارج الدوال وتعطيه قيمة true عندما تتحقق شروط الإغلاق في دالة إستارت

    وتضع شرط في دالة إستارت إذا كان قيمة المتغير ==true فأنه يغلق جميع العمليات
    وتضع شرط في إستارت بأن المتغير لا يعود للقيمة false إلا بعد إغلاق كل العمليات

    كود PHP:
    bool CloseALL;
    int init()
      {
       
    CloseALL=false;
         if(
    Digits==3||Digits==5)D=10;
         else 
    D=1;
       return(
    0);
      }
    int start()
      {

       if(
    OrdersTotal()>0&&AccountProfit()>0){
      
      for(
    int i=0;i<=OrdersTotal();i++){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&& OrderType()<=&& OrderLots()>=MaxLotsToCloseALL){
         
           
    CloseALL=true;
        }
      }

      
      if(
    CloseALL){CloseAllOrders();}
      if(
    OrdersTotal()==0){CloseALL=false;}

       return(
    0);
      } 
    لاحظ جعلنا OrderType()<=1 في الشرط بحيث لا يبحث عن شرط اللوت في الأوامر المعلقة

    مرفق الإكسبيرت
    الملفات المرفقة الملفات المرفقة

  7. #3937
    الصورة الرمزية waleedgadelmola
    waleedgadelmola غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    مصر
    المشاركات
    346

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    نعم أخي المشكلة إنه أثناء غلق العمليات قد يتحول AccountProfit إلي سالب (خسارة) فلا يتحقق الشرط لإغلاق باقي العمليات
    أو قد يغلق العملية في البداية إللي فيها : اللوت أكبر من اللوت المحدد في المتغير الخارجي وبالتالي لا يتحقق الشرط لإغلاق باقي العمليات
    --------------------------------

    يمكنك التغلب على هذه المشكلة بتعريف متغير منطقي bool خارج الدوال وتعطيه قيمة true عندما تتحقق شروط الإغلاق في دالة إستارت

    وتضع شرط في دالة إستارت إذا كان قيمة المتغير ==true فأنه يغلق جميع العمليات
    وتضع شرط في إستارت بأن المتغير لا يعود للقيمة false إلا بعد إغلاق كل العمليات

    كود PHP:
    bool CloseALL;
    int init()
      {
       
    CloseALL=false;
         if(
    Digits==3||Digits==5)D=10;
         else 
    D=1;
       return(
    0);
      }
    int start()
      {

       if(
    OrdersTotal()>0&&AccountProfit()>0){
      
      for(
    int i=0;i<=OrdersTotal();i++){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&& OrderType()<=&& OrderLots()>=MaxLotsToCloseALL){
         
           
    CloseALL=true;
        }
      }

      
      if(
    CloseALL){CloseAllOrders();}
      if(
    OrdersTotal()==0){CloseALL=false;}

       return(
    0);
      } 
    لاحظ جعلنا OrderType()<=1 في الشرط بحيث لا يبحث عن شرط اللوت في الأوامر المعلقة

    مرفق الإكسبيرت
    أشكرك جدا استاذ يوسف زادك الله من علمه وفضلة
    جاري التجربة وسوف أوافيك بالنتيجة
    جزاك الله كل خير
    تحياتي

  8. #3938
    الصورة الرمزية QtrrtQ
    QtrrtQ غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2011
    المشاركات
    23

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    ممكن توضح أكتر

    طالما الصفقة المعلقة العكسية سيتم حذفها في حالة إغلاق الصفقة الاخرى على ربح أو خسارة
    يبقى ليه تنتظر إغلاقها ؟
    قوم بحذف تعليق الصفقة الأخرى بمجرد تفعيل أي منهما

    هل هذا ما تقصده ؟
    تسلم اخوي على سرعة الرد
    لا المقصود كل الاتي
    عند تحقق شرط معين يقوم بفتح 8 عقود معلقة اربعه شراء فوق السعر واربعه بيع تحت السعر بنفس السعر
    عندما يتفعلو اوامر الشراء كل واحد هدفه مختلف المطلوب كل عقد يغلق بربح او خساره يغلق العقد المعاكس اللي هو البيع اللي بنفس الهدف
    إن شاءالله وصلت الفكره

  9. #3939
    الصورة الرمزية wadi2012
    wadi2012 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2012
    الإقامة
    جرين لاند
    المشاركات
    1,089

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    حاليا أغلب البروكرات لا تسمح بإستخدام هذه الميزه وهي في الأساس كانت موجوده في نفس النافذة التي تقوم بفتح الصفقه منها سوف تجد خيار CloseBy إذا كان البروكر يسمح بهذه الميزه وبالتأكيد هي لن تفسد إلا إذا كان لديك صفقتين عكسيتين تريد إغلاقهم وليس شرط أن يكون حجم اللوت متساوي من الممكن أن يكون لديك صفقة بحجم لوت أكبر من الأخرى .
    أما ما الفائده التي ستعود على البروكر لا يوجد فائده حسب علمي وبالتالي سوف تجد أغلب البروكرات قامت بإلغاء هذه الخاصيه
    انا جربتها كأختبار بسيط لغلق صفقة ووضعت صفقتين بيع وشراء لليورو دولار بنفس عدد اللوت وحذف الاثنين معا ولكن بنصف اللوت للاثنين
    يعني اذا اغلت الاثنين معا سوف اخسر ضعف ما استخدمت تلك الخاصية. وليس شرط ان يكونو بنفس حجم اللوت ولكن يأخذ نفس النسبة يعني ان كانت الاولى ب 1 لوت والثانية 3 لوت يحذف من الثانية 1 لوت ويبقي 2 لوت فقط للثانية وستجد ان الاولى الخسارة صفر والثانية الخسارة * حجم اللوت المحذوف وهو 1

  10. #3940
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة QtrrtQ مشاهدة المشاركة
    تسلم اخوي على سرعة الرد
    لا المقصود كل الاتي
    عند تحقق شرط معين يقوم بفتح 8 عقود معلقة اربعه شراء فوق السعر واربعه بيع تحت السعر بنفس السعر
    عندما يتفعلو اوامر الشراء كل واحد هدفه مختلف المطلوب كل عقد يغلق بربح او خساره يغلق العقد المعاكس اللي هو البيع اللي بنفس الهدف
    إن شاءالله وصلت الفكره
    في طرق كثيرة
    بس إنت ممكن تجعل كل صفقتين متعاكستين برقم ماجيك نمبر مختلف
    لكن لو بتستخدم ماجيك نمبر ثابت يمكنك إستخدام الكومنت بدل منه
    يعني تجعل كل أمرين متعاكسين بنفس الكومنت يعني مثلا
    كود PHP:
    OrderSend(Symbol(),OP_BUYSTOP,0.1,1.3200,30,SL,TP,"1",MagicNumber,0,Lime);
       
    OrderSend(Symbol(),OP_SELLSTOP,0.1,1.3000,30,SL,TP,"1",MagicNumber,0,Red); 
    وتجعل الصفقتين إللي بعدهم "2" وإللي بعدهم "3" وإللي بعدهم "4"

    وتقوم بعمل دالة تأتي بعدد الأاوامر المفتوحة بنفس الكومنت
    كود PHP:
    int OrdersMatching(string comment){
         
    int cnt=0;
           for(
    int i=0;i<=OrdersTotal();i++){
           
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && OrderComment()== comment){
           
    cnt++
           }
         }
       return(
    cnt);
     } 
    وتضع الشرط في دالة إستارت إذا كانت العمليات المفتوحة أو المعلقة والتي لها نفس الكومنت أقل من 2 يقوم بحذف أو إغلاق الأخرى
    كود PHP:
      if(OrdersMatching("1"))<2CloseOrder("1");
      if(
    OrdersMatching("2"))<2CloseOrder("2");
      if(
    OrdersMatching("3"))<2CloseOrder("3");
      if(
    OrdersMatching("4"))<2CloseOrder("4"); 
    وطبعا تعمل دالة للإغلاق بالكومنت
    كود PHP:
    void CloseOrder(string comment){
       
       
    int _total=OrdersTotal();
       if (
    _total==0) {return;} 
       
    int ticket;

       for (
    int b=_total-1;b>=0;b--){
          
    OrderSelect(b,SELECT_BY_POS);
          if(
    OrderComment()==comment && OrderMagicNumber()== MagicNumber && Symbol()==OrderSymbol()){
          
    ticket=OrderTicket();
          
          if(
    OrderType()==OP_BUY){
                 
                 
    OrderClose(ticket,OrderLots(),Bid,3*Q);}
                 
          if(
    OrderType()==OP_SELL){
                 
                 
    OrderClose(ticket,OrderLots(),Ask,3*Q);}
                 
          if(
    OrderType()>1){
                 
    OrderDeleteOrderTicket() );}

            }
          }
        } 
    ملحوظة يوجد دالة تسمى بـ
    كود PHP:
    OrderCloseBy(int ticket1int ticket2); 
    وهي أسهل وأدق ولكن لم أجربها من قبل على العقود المعلقة
    لإن الأوامر المعلقة تحذف بـ OrderDelete ولا أعرف إذا كانت هذه الدالة تعمل على الأوامر المعلقة أم لا

    أكيد أستاذ أسامة هيفيدك أكتر في الموضوع ده

  11. #3941
    الصورة الرمزية daod
    daod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2013
    المشاركات
    246

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة daod مشاهدة المشاركة
    بارك الله فيك اخي مستر دولار
    طبعا لم اقم بتجربه الاكبسيرت بعد ولدي بعض الملاحظات وياريت ان لاتنسى ان ترد على كل الملاحظات.

    السؤال الاول

    يمكن شرح هذه المتغيرات في عمليه الهدج وهل سيكون الهيدج لمر واحده او يوجد مسافه بين كل هيدج واخر اي يعني ماذا تقصد بالضبط بهذه المتغيرات؟
    extern bool OpenHedgeFirstTime=false;
    extern double HedgeLots=0.1;
    extern int HedgeTP=0;
    extern int HedgeSL=0;

    السؤال الثاني

    هاذان المتغيران هل تقصد فيهما الاتي
    extern bool AddOrdersAfterClose=true;
    فتح الصفقه مرة أخرى بعد إغلاقها سواء أغلقت على ربح أو خساره وهل هذا هو الكود المسؤال عن ذلك void OpenClosedOrders(int type)؟
    extern bool ReverseClosedOrders=false;
    وضع أوامر بيع معلقه في حال أغلقت صفقة الشراء وأوامر شراء معلقه في حال أغلقت أوامر البيع و لكن ماهو الكود المسؤل عن هذه الوظيفه؟

    السؤال الثالث
    لتشابه المتغيرات اريد معرفه الفروقات بين هذه المتغيرات وماهو بالضبط؟
    extern int DistanceFromCurrentPriceBS=0 و extern int Distance_AddBuyS=0

    وكذلك بين المتغيرات

    extern bool UseHourTrade = false; و extern bool OpenAtChoosenHour=false;

    وكذلك بين المتغيرات

    extern bool FridayCloseOrders=false;
    extern int _Hour=20;
    والمتغير
    extern bool FridayCloseEA=false;
    extern int Friday_CloseHour=20;

    ملاحظه لم افهم بماذا ترمز ل CloseEA


    السؤال الرابع

    هل اذا قمت بحذف مايوجد بداخل وظيفه المقدمه والنهايه لم يؤثر على عمل الاكسبيرت؟

    لاحظتك تكتب بعض الاحيان اكواد تبداء بكلمات متختلفه اما void او int او double او boole وهل يمكن استخدام كل منهما مكان الاخر وما تعني void؟

    جزيت خيرا في الدنيا والاخرة
    اين اخي اسامه

  12. #3942
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة daod مشاهدة المشاركة
    بارك الله فيك اخي مستر دولار
    طبعا لم اقم بتجربه الاكبسيرت بعد ولدي بعض الملاحظات وياريت ان لاتنسى ان ترد على كل الملاحظات.

    السؤال الاول

    يمكن شرح هذه المتغيرات في عمليه الهدج وهل سيكون الهيدج لمر واحده او يوجد مسافه بين كل هيدج واخر اي يعني ماذا تقصد بالضبط بهذه المتغيرات؟
    extern bool OpenHedgeFirstTime=false;
    extern double HedgeLots=0.1;
    extern int HedgeTP=0;
    extern int HedgeSL=0;

    السؤال الثاني

    هاذان المتغيران هل تقصد فيهما الاتي
    extern bool AddOrdersAfterClose=true;
    فتح الصفقه مرة أخرى بعد إغلاقها سواء أغلقت على ربح أو خساره وهل هذا هو الكود المسؤال عن ذلك void OpenClosedOrders(int type)؟
    extern bool ReverseClosedOrders=false;
    وضع أوامر بيع معلقه في حال أغلقت صفقة الشراء وأوامر شراء معلقه في حال أغلقت أوامر البيع و لكن ماهو الكود المسؤل عن هذه الوظيفه؟

    السؤال الثالث
    لتشابه المتغيرات اريد معرفه الفروقات بين هذه المتغيرات وماهو بالضبط؟
    extern int DistanceFromCurrentPriceBS=0 و extern int Distance_AddBuyS=0

    وكذلك بين المتغيرات

    extern bool UseHourTrade = false; و extern bool OpenAtChoosenHour=false;

    وكذلك بين المتغيرات

    extern bool FridayCloseOrders=false;
    extern int _Hour=20;
    والمتغير
    extern bool FridayCloseEA=false;
    extern int Friday_CloseHour=20;

    ملاحظه لم افهم بماذا ترمز ل CloseEA


    السؤال الرابع

    هل اذا قمت بحذف مايوجد بداخل وظيفه المقدمه والنهايه لم يؤثر على عمل الاكسبيرت؟

    لاحظتك تكتب بعض الاحيان اكواد تبداء بكلمات متختلفه اما void او int او double او boole وهل يمكن استخدام كل منهما مكان الاخر وما تعني void؟

    جزيت خيرا مقدما
    هذا الموضوع به شرح لجميع متغيرات الإكسبرت

    https://forum.arabictrader.com/t96360.html

    السؤال الأخير يجب أن تراجع دروس تعلم البرمج و طريقة تعريف المتغيرات والدوال

    void تعني أن الداله لن تعود بأي قيمه لكن فقط ستنفذ الأوامر الموجوده بداخل الداله
    بعكس int و double و bool فالداله سوف تعود بقيمة على حسب نوع البيانات التي قمت بتعريفها فإذا كنت قد عرفت الداله من نوع int فهذا يعني أن الداله ستعود بقيمة عدد صحيح
    double تعني أن الداله ستعود بقيمة عدد عشري
    bool تعني أن الداله ستعود بقيمة إما true أو false
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  13. #3943
    الصورة الرمزية daod
    daod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2013
    المشاركات
    246

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    هذا الموضوع به شرح لجميع متغيرات الإكسبرت

    https://forum.arabictrader.com/t96360.html

    السؤال الأخير يجب أن تراجع دروس تعلم البرمج و طريقة تعريف المتغيرات والدوال

    void تعني أن الداله لن تعود بأي قيمه لكن فقط ستنفذ الأوامر الموجوده بداخل الداله
    بعكس int و double و bool فالداله سوف تعود بقيمة على حسب نوع البيانات التي قمت بتعريفها فإذا كنت قد عرفت الداله من نوع int فهذا يعني أن الداله ستعود بقيمة عدد صحيح
    double تعني أن الداله ستعود بقيمة عدد عشري
    bool تعني أن الداله ستعود بقيمة إما true أو false
    هل اذا قمت بحذف مايوجد بداخل وظيفه المقدمه والنهايه لم يؤثر على عمل الاكسبيرت؟
    اخي اسامه بعد ما قرات الموضوع هناك بعض الملاحظات
    هناك بعض المتغيرات لم ارى له شرح بالموضوع وهي
    extern bool FridayCloseEA=false
    extern int Distance_AddBuyS=0
    extern bool ReverseClosedOrders=false
    extern bool OpenHedgeFirstTime=false;
    extern double HedgeLots=0.1;
    extern int HedgeTP=0;
    extern int HedgeSL=0
    ,وقسم اخر من المتغيرات لا اعرف ايش الفرق بينها لتشابهها مع بعضها

    منها

    extern bool UseHourTrade = false; و extern bool OpenAtChoosenHour=false;

    وكذلك ايش الفرق بين المتغيرايين

    extern bool FridayCloseOrders=false;
    extern int _Hour=20;
    والمتغير
    extern bool FridayCloseEA=false;
    extern int Friday_CloseHour=20

    بالنسبه بعد التجربه للاكسبيرت وجدت هنا ك عيب الى الان وهو انه احيانا وليس دائما يقوم بفتح الصفقه مرة أخرى بعد إغلاقها سواء أغلقت على ربح أو خسارةلكن بشكل مكرر او ثنائي اي امرين معلقين بنفس الوقت بدل من عقد واحد فقط والاصل هو ان يفتح امر معلق واحد فقط بدلا عن الامر الذي اغلق سواء على ربح اوخساره .
    آخر تعديل بواسطة daod ، 31-05-2013 الساعة 12:52 AM

  14. #3944
    الصورة الرمزية QtrrtQ
    QtrrtQ غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2011
    المشاركات
    23

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    في طرق كثيرة
    بس إنت ممكن تجعل كل صفقتين متعاكستين برقم ماجيك نمبر مختلف
    لكن لو بتستخدم ماجيك نمبر ثابت يمكنك إستخدام الكومنت بدل منه
    يعني تجعل كل أمرين متعاكسين بنفس الكومنت يعني مثلا
    كود PHP:
    OrderSend(Symbol(),OP_BUYSTOP,0.1,1.3200,30,SL,TP,"1",MagicNumber,0,Lime);
       
    OrderSend(Symbol(),OP_SELLSTOP,0.1,1.3000,30,SL,TP,"1",MagicNumber,0,Red); 
    وتجعل الصفقتين إللي بعدهم "2" وإللي بعدهم "3" وإللي بعدهم "4"

    وتقوم بعمل دالة تأتي بعدد الأاوامر المفتوحة بنفس الكومنت
    كود PHP:
    int OrdersMatching(string comment){
         
    int cnt=0;
           for(
    int i=0;i<=OrdersTotal();i++){
           
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && OrderComment()== comment){
           
    cnt++
           }
         }
       return(
    cnt);
     } 
    وتضع الشرط في دالة إستارت إذا كانت العمليات المفتوحة أو المعلقة والتي لها نفس الكومنت أقل من 2 يقوم بحذف أو إغلاق الأخرى
    كود PHP:
      if(OrdersMatching("1"))<2CloseOrder("1");
      if(
    OrdersMatching("2"))<2CloseOrder("2");
      if(
    OrdersMatching("3"))<2CloseOrder("3");
      if(
    OrdersMatching("4"))<2CloseOrder("4"); 
    وطبعا تعمل دالة للإغلاق بالكومنت
    كود PHP:
    void CloseOrder(string comment){
       
       
    int _total=OrdersTotal();
       if (
    _total==0) {return;} 
       
    int ticket;

       for (
    int b=_total-1;b>=0;b--){
          
    OrderSelect(b,SELECT_BY_POS);
          if(
    OrderComment()==comment && OrderMagicNumber()== MagicNumber && Symbol()==OrderSymbol()){
          
    ticket=OrderTicket();
          
          if(
    OrderType()==OP_BUY){
                 
                 
    OrderClose(ticket,OrderLots(),Bid,3*Q);}
                 
          if(
    OrderType()==OP_SELL){
                 
                 
    OrderClose(ticket,OrderLots(),Ask,3*Q);}
                 
          if(
    OrderType()>1){
                 
    OrderDeleteOrderTicket() );}

            }
          }
        } 
    ملحوظة يوجد دالة تسمى بـ
    كود PHP:
    OrderCloseBy(int ticket1int ticket2); 
    وهي أسهل وأدق ولكن لم أجربها من قبل على العقود المعلقة
    لإن الأوامر المعلقة تحذف بـ OrderDelete ولا أعرف إذا كانت هذه الدالة تعمل على الأوامر المعلقة أم لا

    أكيد أستاذ أسامة هيفيدك أكتر في الموضوع ده
    الله يعطيك مليون عافيه الكود اشتغل معاي
    اشكرك واشكر اخوي اسامه والمنتدى من بعد الله والرسول (ص)

  15. #3945
    الصورة الرمزية waleedgadelmola
    waleedgadelmola غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    مصر
    المشاركات
    346

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة waleedgadelmola مشاهدة المشاركة
    أشكرك جدا استاذ يوسف زادك الله من علمه وفضلة
    جاري التجربة وسوف أوافيك بالنتيجة
    جزاك الله كل خير
    تحياتي
    الأخ الكريم الاستاذ يوسف او الأخ الكريم الاستاذ مستر دولار
    جزاك الله خير
    قمت بتجربة الأكسبرت وفعلا قام بإغلاق جميع الصفقات دفعة واحده بعد اضافة المتغير
    كود PHP:
    bool CloseALL
    كم تفضلت استاذ يوسف
    ولكن تم اغلاق الصفقات على خسارة قليلة أتوقع أنها نتيجة إعادة التسعير ( ري كوت )
    هل من حل برمجي لها لأغلاق الصفقات دفعة واحده بشرط ضمان أنها تكون اكبر من الصفر لأن الاكسبرت لم ينظر إلى الشرط أو سبب اعادة التسعير والحركة السريعة
    كود PHP:
    if(OrdersTotal()>0&&AccountProfit()>0
    مرفق الاكسبرت
    الملفات المرفقة الملفات المرفقة

المواضيع المتشابهه

  1. موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
    By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 11
    آخر مشاركة: 15-12-2023, 02:03 PM
  2. عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
    By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملات
    مشاركات: 280
    آخر مشاركة: 27-08-2009, 10:30 PM

الاوسمة لهذا الموضوع


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17