• 6:55 صباحاً




كود برمجى

إضافة رد
Like Tree3Likes

أدوات الموضوع
الصورة الرمزية خالد شحاتة
مشرف قسم المؤشرات والاكسبرتات
تاريخ التسجيل: Jun 2012
المشاركات: 1,562
خبرة السوق : 5 الى 10 سنوات
الدولة: مصر
معدل تقييم المستوى: 13
خالد شحاتة is on a distinguished road
21 - 12 - 2014, 02:30 PM
  #1
خالد شحاتة غير متواجد حالياً  
افتراضي كود برمجى
السلام عليكم ورحمة الله وبركاته
اخى العزيز سمير
تحيه طيبه لك على ما تبذله من جهود لتلبيه طلبات الاعضاء
وارجو الا اثقل عليك فى طلبى
محتاج 3 حلقات كالتالى
حلقه تحسب الاكيوتى اول ما افتح صفقه تخزن قيمة الاكيوتى بعد فتح الصفقه
وحلقه اخرى تحسب التغير فى الاكيوتى اثناء الصفقه
فى حالة الزياده تعود للمتغير بشكل true
وفى حالة النقصان تعود للمتغير بشكل false
واخيرا حلقه تخزن قيمة اخر اكيوتى بعد اغلاق الصفقه

اتمنى الا يكون طلبى ثقيل فانا بقالى اسبوع بحاول فيها وفشلت
شكرا مقدما
رد مع اقتباس

الصورة الرمزية سمير محمد ارمان
مشرف سابق
الصورة الرمزية سمير محمد ارمان
 
تاريخ التسجيل: Nov 2009
المشاركات: 33,660
معدل تقييم المستوى: 48
سمير محمد ارمان will become famous soon enough
افتراضي رد: كود برمجى
2#
21 - 12 - 2014, 03:25 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة abo_samar مشاهدة المشاركة
السلام عليكم ورحمة الله وبركاته
اخى العزيز سمير
تحيه طيبه لك على ما تبذله من جهود لتلبيه طلبات الاعضاء
وارجو الا اثقل عليك فى طلبى
محتاج 3 حلقات كالتالى
حلقه تحسب الاكيوتى اول ما افتح صفقه تخزن قيمة الاكيوتى بعد فتح الصفقه
وحلقه اخرى تحسب التغير فى الاكيوتى اثناء الصفقه
فى حالة الزياده تعود للمتغير بشكل true
وفى حالة النقصان تعود للمتغير بشكل false
واخيرا حلقه تخزن قيمة اخر اكيوتى بعد اغلاق الصفقه

اتمنى الا يكون طلبى ثقيل فانا بقالى اسبوع بحاول فيها وفشلت
شكرا مقدما
السلام عليكم اخى الكريم ايو سمر
جزاك الله كل خير على كل المساعدات منك فى المنتدى
فى المرفقات اكسبيرتين
سوف تجد ما تريد ان شاء الله
تحياتى لك
الملفات المرفقة
نوع الملف: mq4 10pips_sam2.mq4‏ (9.9 كيلوبايت, المشاهدات 5)
نوع الملف: mq4 baidovich4_sa1.mq4‏ (9.9 كيلوبايت, المشاهدات 5)
سمير محمد ارمان غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية خالد شحاتة
مشرف قسم المؤشرات والاكسبرتات
الصورة الرمزية خالد شحاتة
 
تاريخ التسجيل: Jun 2012
الدولة: مصر
المشاركات: 1,562
خبرة السوق: 5 الى 10 سنوات
معدل تقييم المستوى: 13
خالد شحاتة is on a distinguished road
افتراضي رد: كود برمجى
3#
21 - 12 - 2014, 03:32 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان مشاهدة المشاركة
السلام عليكم اخى الكريم ايو سمر
جزاك الله كل خير على كل المساعدات منك فى المنتدى
فى المرفقات اكسبيرتين
سوف تجد ما تريد ان شاء الله
تحياتى لك
وعليكم السلام ورحمة الله وبركاته
شكرا على سرعة الرد
جارى التحميل والمتابعه
ومساعداتى لاتساوى شيئا بجوار عطائك للمنتدى
وفقك الله وسدد خطاك
تقبل تحياتى
خالد شحاتة غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية سمير محمد ارمان
مشرف سابق
الصورة الرمزية سمير محمد ارمان
 
تاريخ التسجيل: Nov 2009
المشاركات: 33,660
معدل تقييم المستوى: 48
سمير محمد ارمان will become famous soon enough
افتراضي رد: كود برمجى
4#
21 - 12 - 2014, 03:34 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة abo_samar مشاهدة المشاركة
وعليكم السلام ورحمة الله وبركاته
شكرا على سرعة الرد
جارى التحميل والمتابعه
ومساعداتى لاتساوى شيئا بجوار عطائك للمنتدى
وفقك الله وسدد خطاك
تقبل تحياتى
جزاك الله كل خير
واى خدمه انا تحت امرك ان شاء الله
تحياتى لك
سمير محمد ارمان غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية خالد شحاتة
مشرف قسم المؤشرات والاكسبرتات
الصورة الرمزية خالد شحاتة
 
تاريخ التسجيل: Jun 2012
الدولة: مصر
المشاركات: 1,562
خبرة السوق: 5 الى 10 سنوات
معدل تقييم المستوى: 13
خالد شحاتة is on a distinguished road
افتراضي رد: كود برمجى
5#
22 - 12 - 2014, 12:37 AM
اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان مشاهدة المشاركة
جزاك الله كل خير
واى خدمه انا تحت امرك ان شاء الله
تحياتى لك
السلام عليكم ورحمة الله وبركاته
بارك الله فيك اخى سمير
للاسف فكرة الاكسبرتين مختلفه عن المطلوب
جربت اكثر من مره ولم اصل الى تنفيذ المطلوب
رجاءا حاول تشوف حل لايجاد هذه الدوال
وانا سوف اواصل البحث لعلى اجد ما اريده
تقبل ودى واحترامى
خالد شحاتة غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية خالد شحاتة
مشرف قسم المؤشرات والاكسبرتات
الصورة الرمزية خالد شحاتة
 
تاريخ التسجيل: Jun 2012
الدولة: مصر
المشاركات: 1,562
خبرة السوق: 5 الى 10 سنوات
معدل تقييم المستوى: 13
خالد شحاتة is on a distinguished road
افتراضي رد: كود برمجى
6#
22 - 12 - 2014, 09:44 PM
السلام عليكم ورحمة الله وبركاته
اخى الكريم سمير
وضعت شرط لاغلاق الصفقات عند وصول الاكيوتى لربح معين
الاكسبرت نفذ الشرط وعند فتح صفقه اخرى اغلقها فورا
للتوضيح
نفرض ان الكيوتى الحالى 1000 والاكونت بلنس 1050
ووضعت شرط اذا كان الاكيوتى اكبر من اكونت بلانس + 50 اغلق جميع الصفقات
وصل الاكيوتى الى 1102 واغلق الصفقه
وبعدها ظل يفتح الصفقه الجديده ثم يغلقها
وعندما لغيت شرط الاغلاق على اكيوتى اشتغل الاكسبرت تمام بدون مشاكل على الشروط القديمه
وهذه الاكواد المستخدمه فارجو التصحيح الكود اذا كان به خطأ
او تصحيح الفكره كما هو مشروح بالاعلى
تقبل ودى واحترامى
كود:
extern bool close_at_equity=true;
extern int win_USD=20;
double ACC=AccountBalance();
double win_USD_1=MathAbs(win_USD+ACC);
if( win_USD_1>0&&AccountEquity()>=win_USD_1&&close_at_equity==true){CloseDeleteAll();}


void CloseDeleteAll()
{
    int total  = OrdersTotal();
      for (int cnt = total-1 ; cnt >=0 ; cnt--)
      {
         OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
         if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) 
         {
         
            switch(OrderType())
            {
               case OP_BUY       :
               {
                  if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,Violet))
                     return(false);
               }break;                  
               case OP_SELL      :
               {
                  if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,Violet))
                     return(false);
               }break;
            }             
         
            
            if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)
               if(!OrderDelete(OrderTicket()))
               { 
                  Print("Error deleting " + OrderType() + " order : ",GetLastError());
                  return (false);
             }  }
          }
    
      return (true);
}
خالد شحاتة غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية سمير محمد ارمان
مشرف سابق
الصورة الرمزية سمير محمد ارمان
 
تاريخ التسجيل: Nov 2009
المشاركات: 33,660
معدل تقييم المستوى: 48
سمير محمد ارمان will become famous soon enough
افتراضي رد: كود برمجى
7#
22 - 12 - 2014, 10:24 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة abo_samar مشاهدة المشاركة
السلام عليكم ورحمة الله وبركاته
اخى الكريم سمير
وضعت شرط لاغلاق الصفقات عند وصول الاكيوتى لربح معين
الاكسبرت نفذ الشرط وعند فتح صفقه اخرى اغلقها فورا
للتوضيح
نفرض ان الكيوتى الحالى 1000 والاكونت بلنس 1050
ووضعت شرط اذا كان الاكيوتى اكبر من اكونت بلانس + 50 اغلق جميع الصفقات
وصل الاكيوتى الى 1102 واغلق الصفقه
وبعدها ظل يفتح الصفقه الجديده ثم يغلقها
وعندما لغيت شرط الاغلاق على اكيوتى اشتغل الاكسبرت تمام بدون مشاكل على الشروط القديمه
وهذه الاكواد المستخدمه فارجو التصحيح الكود اذا كان به خطأ
او تصحيح الفكره كما هو مشروح بالاعلى
تقبل ودى واحترامى
كود:
extern bool close_at_equity=true;
extern int win_USD=20;
double ACC=AccountBalance();
double win_USD_1=MathAbs(win_USD+ACC);
if( win_USD_1>0&&AccountEquity()>=win_USD_1&&close_at_equity==true){CloseDeleteAll();}


void CloseDeleteAll()
{
    int total  = OrdersTotal();
      for (int cnt = total-1 ; cnt >=0 ; cnt--)
      {
         OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
         if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) 
         {
         
            switch(OrderType())
            {
               case OP_BUY       :
               {
                  if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,Violet))
                     return(false);
               }break;                  
               case OP_SELL      :
               {
                  if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,Violet))
                     return(false);
               }break;
            }             
         
            
            if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)
               if(!OrderDelete(OrderTicket()))
               { 
                  Print("Error deleting " + OrderType() + " order : ",GetLastError());
                  return (false);
             }  }
          }
    
      return (true);
}
السلام عليكم
انا جربت الكود الخاص بيك فى هذا الاكسبيرت
ممكن تجربه
الاكسبيرت يعمل تمام
ممكن تضع لى الاكسبيرت الخاص بيك
ونشوف المشكله فيه ايه
تحياتى لك
الملفات المرفقة
نوع الملف: mq4 oooooooooo.mq4‏ (14.0 كيلوبايت, المشاهدات 4)
سمير محمد ارمان غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية خالد شحاتة
مشرف قسم المؤشرات والاكسبرتات
الصورة الرمزية خالد شحاتة
 
تاريخ التسجيل: Jun 2012
الدولة: مصر
المشاركات: 1,562
خبرة السوق: 5 الى 10 سنوات
معدل تقييم المستوى: 13
خالد شحاتة is on a distinguished road
افتراضي رد: كود برمجى
8#
23 - 12 - 2014, 09:46 AM
اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان مشاهدة المشاركة
السلام عليكم
انا جربت الكود الخاص بيك فى هذا الاكسبيرت
ممكن تجربه
الاكسبيرت يعمل تمام
ممكن تضع لى الاكسبيرت الخاص بيك
ونشوف المشكله فيه ايه
تحياتى لك
السلام عليكم ورحمة الله وبركاته
شكرا استاذ سمير على الرد
بالمرفقات الاكسبرت
والخطأ كان عندى فى احد الشروط
لكن المشكله التى تواجهنى هى طريقة تخزين قيمة اخر اكيوتى
حاليا الاكسبرت يعتمد على الاكونت بلانس مع الربح ومقارنتهم بالاكيوتى
وفى بعض الحالات يحدث تغيير لاشارة المؤشر وتغلق الصفقه على خساره
وبالتالى يتم حساب قيمة الاكونت بلانس بعد الخساره ومقارنتها بالاكيوتى
وما اريده تخزين قيمة اخر اكيوتى والمقارنه بينه وبين الاكيوتى الجديد
التوضيح بالارقام
نفرض ان الاكيوتى 1000 والبلانس 1000 ولا توجد اى صفقات مفتوحه
المطلوب حلقه تحتفظ بقيمة الاكيوتى هنا وهى 1000
دخلنا صفقه وحققت ربح 50 فى هذه الحاله الاكيوتى سيصبح 1050 والبلانس كما هو 1000 لان الصفقه لم تغلق بعد
ولو انا وضعت شرط الاغلاق على قيمه اخر اكيوتى (الحلقه المفقوده) + الربح وليكن 100
فى هذه الحاله سينتظر الاكسبرت حتى يصبح الاكيوتى 1100 وهو عباره عن قيمه اخر اكيوتى 1000 ( الحلقه المفقوده) + الربح الذى حددناه وهو 100
وعند الوصوله له سيتم اغلاق الصفقه ويصبح اخر اكيوتى تحفظه الحلقه هو 1100
ويبدا الاكسبرت من جديد بفتح صفقه جديده ومخزن فى الحلقه قيمة اخر اكيوتى وصل له الحساب وهو 1100 ثم يكمل باقى الشروط
ارجو ان يكون الشرح وافيا
........................
حاليا اعمل يدوى بشرط للاكيوتى اقوم بوضعه فى اعداد الاكسبرت
وهو يفى بالغرض حاليا ويجب ان اكون متواجد دائما حتى اغير قيمة الاكيوتى يدوى بعد اغلاق كل صفقه
وانا اريد الحلقه حتى تحتفظ باخر قيمه وتستعديها مباشرة بدون التدخل منى

تقبل تحياتى
الملفات المرفقة
نوع الملف: mq4 abo samar-3EMA_V1_EA.mq4‏ (8.7 كيلوبايت, المشاهدات 2)
خالد شحاتة غير متواجد حالياً  
رد مع اقتباس
عضو نشيط
 
تاريخ التسجيل: Sep 2013
المشاركات: 255
معدل تقييم المستوى: 11
mohamed982 is on a distinguished road
افتراضي رد: كود برمجى
9#
23 - 12 - 2014, 11:19 AM
بص هو انا تقريبا مش فاهم انت عايز تعمل ايه بالظبط يعنى مثلا انت عايز الاكسبيرت يتعامل مع صفقة صفقة ولا مع كل الصفقات على التيرمنال ؟!!! عموما هقولك على شوية مفاتيح افكار تقدر تعمل بيهم اللى انت عايزه بالظبط .... لو عايزه يتعامل مع كل صفقة على حدة فده بسيطه عرف متغيرين واحد بيشيل قيمة Equity وواحد بيشيل قيمة Balance طبعا قبل OrderSend حط فاليو فى المتغيرين وطبعا تعمل متغير عشان يشيل رقم Ticket بتاع الاوردر . وتعمل ايفينت OnTimer عشان يشيك على الايكوتي كل مثلا 1 ثانية او لو تحب خليها فانكشن على OnTick عادي يعنى وحط شرط مثلا اغلاق الصفقة برقم Ticket لو الايكويتي وصل لرقم معين ... بس الاسهل من ده لو حطيت Take Profit وعشان كده اعتقد ان مش ده اللى انت تقصده ....

الاحتمال الثاني :- هنفترض انك عايز الاكسبيرت يتعامل مع كل الصفقات على التيرمنال كده انت ملكش غير حل واحد عشان تخلى الاكسبيرت يتعامل مع كل الصفقات على انهم صفقة واحد هقولك مفتاح الفكرة و انت وخيالك بقى, انت ياباشا هتعمل حاجة اسمها GlobalVariableSet فى اول الاكسبيرت هنفترض انك هتسميه Total_Equity وده قبل فتح ي صفقة او قبل امر OrderSend هتخليه ياخد قيمة الايكوتي بتاعك GlobalVariableSet("Equity",AccountEquity()) . بكده انت الاكسبيرت بتاعك اي كان عدد الشارتات اللى الاكسبيرت مفتوح عليها بيتعامل مع فيريابال واحد Global . طبعا انت ممكن تعمل فانكشن ان لو عدد الاوبن اوردرز اتغير يحدث الجلوبال فيريابل .... اعتقد ده اللى انت عايزه و اى مساعدة تحت امرك
mohamed982 غير متواجد حالياً  
رد مع اقتباس
عضو نشيط
 
تاريخ التسجيل: Sep 2013
المشاركات: 255
معدل تقييم المستوى: 11
mohamed982 is on a distinguished road
افتراضي رد: كود برمجى
10#
23 - 12 - 2014, 11:41 AM
اقتباس:
المشاركة الأصلية كتبت بواسطة mohamed982 مشاهدة المشاركة
بص هو انا تقريبا مش فاهم انت عايز تعمل ايه بالظبط يعنى مثلا انت عايز الاكسبيرت يتعامل مع صفقة صفقة ولا مع كل الصفقات على التيرمنال ؟!!! عموما هقولك على شوية مفاتيح افكار تقدر تعمل بيهم اللى انت عايزه بالظبط .... لو عايزه يتعامل مع كل صفقة على حدة فده بسيطه عرف متغيرين واحد بيشيل قيمة Equity وواحد بيشيل قيمة Balance طبعا قبل OrderSend حط فاليو فى المتغيرين وطبعا تعمل متغير عشان يشيل رقم Ticket بتاع الاوردر . وتعمل ايفينت OnTimer عشان يشيك على الايكوتي كل مثلا 1 ثانية او لو تحب خليها فانكشن على OnTick عادي يعنى وحط شرط مثلا اغلاق الصفقة برقم Ticket لو الايكويتي وصل لرقم معين ... بس الاسهل من ده لو حطيت Take Profit وعشان كده اعتقد ان مش ده اللى انت تقصده ....

الاحتمال الثاني :- هنفترض انك عايز الاكسبيرت يتعامل مع كل الصفقات على التيرمنال كده انت ملكش غير حل واحد عشان تخلى الاكسبيرت يتعامل مع كل الصفقات على انهم صفقة واحد هقولك مفتاح الفكرة و انت وخيالك بقى, انت ياباشا هتعمل حاجة اسمها GlobalVariableSet فى اول الاكسبيرت هنفترض انك هتسميه Total_Equity وده قبل فتح ي صفقة او قبل امر OrderSend هتخليه ياخد قيمة الايكوتي بتاعك GlobalVariableSet("Equity",AccountEquity()) . بكده انت الاكسبيرت بتاعك اي كان عدد الشارتات اللى الاكسبيرت مفتوح عليها بيتعامل مع فيريابال واحد Global . طبعا انت ممكن تعمل فانكشن ان لو عدد الاوبن اوردرز اتغير يحدث الجلوبال فيريابل .... اعتقد ده اللى انت عايزه و اى مساعدة تحت امرك
امهلتني قيلا وهعملك اكسبيرت بسيط يوضح الفكرة اللى اقصدها لو مش واضحة
mohamed982 غير متواجد حالياً  
رد مع اقتباس


إضافة رد



جديد مواضيع منتدى المؤشرات و الاكسبرتات

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
طلب كود برمجى خالد شحاتة منتدى المؤشرات و الاكسبرتات 3 12 - 11 - 2014 05:15 PM
طلب كود برمجي engineer34 منتدى المؤشرات و الاكسبرتات 3 20 - 10 - 2012 11:40 PM
طلب طود برمجي engineer34 منتدى المؤشرات و الاكسبرتات 2 11 - 05 - 2012 07:29 PM
طلب كود برمجي the ikoder منتدى المؤشرات و الاكسبرتات 4 06 - 01 - 2010 03:21 AM


06:55 AM