صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 35
  1. #1
    الصورة الرمزية batttot
    batttot غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    المشاركات
    921

    افتراضي ...@@ مساعده في كتابة كود برمجي @@...

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

    انا الان تواجهني مشكله برمجيه وحاولت ان احلها لكن لم اوفق الي حل

    المشكله لها شقين الشق الاول
    هذا الشرط
    كود:
    if (can>=stepdeviation && Close[0] ==(buypoint-9*Point))
    
            {   
           OrderSend(Symbol(),OP_BUY,lotsize,Ask,3,0,0,"",magicn,0,Green);
                {
    هو عبارة عن شرط الدخول في صفقة الشراء علي حسب المتغيرات الموضحه في الجمله المشكله ان هذا الشرط قد يتحقق كل شمعه او شمعه وشمعه علي حسب المعادلات المحدده لقيمة المتغيراتفي الشرط والان انا اريده ان يفتح امر شراء واحد فقط عند تحقق الشرط لكن لا يمنع فتح امر شراء اخر علي شمعه اخري اذا توافقت الشروط ايضا بمعني انه هنا يقبل بفتح اوامر شراء متعدده كلماتحقق الشرط لكن عند تحقق الشرط يفتح امر واحد فقط في الشمعه الواحده واذا تحقق الشرط علي شمعه اخري يفتح ايضا امر شراء واحد فقط وهكذا

    هذا كان الشق الاول

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

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

  2. #2
    الصورة الرمزية محمد صلاح
    محمد صلاح غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jul 2010
    الإقامة
    مصر
    المشاركات
    3,116

    افتراضي

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

    انا الان تواجهني مشكله برمجيه وحاولت ان احلها لكن لم اوفق الي حل

    المشكله لها شقين الشق الاول
    هذا الشرط
    كود:
    if (can>=stepdeviation && Close[0] ==(buypoint-9*Point))
    
            {   
           OrderSend(Symbol(),OP_BUY,lotsize,Ask,3,0,0,"",magicn,0,Green);
                {
    هو عبارة عن شرط الدخول في صفقة الشراء علي حسب المتغيرات الموضحه في الجمله المشكله ان هذا الشرط قد يتحقق كل شمعه او شمعه وشمعه علي حسب المعادلات المحدده لقيمة المتغيراتفي الشرط والان انا اريده ان يفتح امر شراء واحد فقط عند تحقق الشرط لكن لا يمنع فتح امر شراء اخر علي شمعه اخري اذا توافقت الشروط ايضا بمعني انه هنا يقبل بفتح اوامر شراء متعدده كلماتحقق الشرط لكن عند تحقق الشرط يفتح امر واحد فقط في الشمعه الواحده واذا تحقق الشرط علي شمعه اخري يفتح ايضا امر شراء واحد فقط وهكذا

    هذا كان الشق الاول

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

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

    من الافضل اخى انك تنقل الموضوع لمنتدى الاكسبرتات هتلاقى الحل على الفور

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

    تحياتى

  3. #3
    الصورة الرمزية ecash
    ecash غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Dec 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    1,062

    افتراضي رد:...@@ مساعده في كتابة كود برمجي @@...

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

    انا الان تواجهني مشكله برمجيه وحاولت ان احلها لكن لم اوفق الي حل

    المشكله لها شقين الشق الاول
    هذا الشرط
    كود:
    if (can>=stepdeviation && Close[0] ==(buypoint-9*Point))
    
            {   
           OrderSend(Symbol(),OP_BUY,lotsize,Ask,3,0,0,"",magicn,0,Green);
                {
    هو عبارة عن شرط الدخول في صفقة الشراء علي حسب المتغيرات الموضحه في الجمله المشكله ان هذا الشرط قد يتحقق كل شمعه او شمعه وشمعه علي حسب المعادلات المحدده لقيمة المتغيراتفي الشرط والان انا اريده ان يفتح امر شراء واحد فقط عند تحقق الشرط لكن لا يمنع فتح امر شراء اخر علي شمعه اخري اذا توافقت الشروط ايضا بمعني انه هنا يقبل بفتح اوامر شراء متعدده كلماتحقق الشرط لكن عند تحقق الشرط يفتح امر واحد فقط في الشمعه الواحده واذا تحقق الشرط علي شمعه اخري يفتح ايضا امر شراء واحد فقط وهكذا

    هذا كان الشق الاول

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

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

    كود PHP:

    datetime T
    متغير
    شرط من شروط الدخول 
    && T!=Time[0]
    بعد الامر سند تضيف  T=Time[0]; 
    وبهذا لن يفتح صفقة في نفس الشمعة
    مع تمنياتي للجميع بالتوفيق
    لاتنساني من دعائك

  4. #4
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي رد:...@@ مساعده في كتابة كود برمجي @@...

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

    كود PHP:
    extern int Ticketa=0
    بعدها حتعمل حلقة لأختيار الصفقة من خلال رقم التكت :

    كود PHP:
     int Ticket(int type)
      {
       for(
    int i=OrdersTotal()-1;i>=0;i--)
        {
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)

           return(
    OrderTicket());
        }
      return(-
    1);
      } 
    بعدها حتستدعي الصفقة :

    كود PHP:
    if ( Ticket(OP_BUY)==Ticketa)  // نفذ التعديل المطلوب 
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

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

    افتراضي رد:...@@ مساعده في كتابة كود برمجي @@...

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

    انا الان تواجهني مشكله برمجيه وحاولت ان احلها لكن لم اوفق الي حل

    المشكله لها شقين الشق الاول
    هذا الشرط
    كود:
    if (can>=stepdeviation && Close[0] ==(buypoint-9*Point))
    
            {   
           OrderSend(Symbol(),OP_BUY,lotsize,Ask,3,0,0,"",magicn,0,Green);
                {
    هو عبارة عن شرط الدخول في صفقة الشراء علي حسب المتغيرات الموضحه في الجمله المشكله ان هذا الشرط قد يتحقق كل شمعه او شمعه وشمعه علي حسب المعادلات المحدده لقيمة المتغيراتفي الشرط والان انا اريده ان يفتح امر شراء واحد فقط عند تحقق الشرط لكن لا يمنع فتح امر شراء اخر علي شمعه اخري اذا توافقت الشروط ايضا بمعني انه هنا يقبل بفتح اوامر شراء متعدده كلماتحقق الشرط لكن عند تحقق الشرط يفتح امر واحد فقط في الشمعه الواحده واذا تحقق الشرط علي شمعه اخري يفتح ايضا امر شراء واحد فقط وهكذا

    هذا كان الشق الاول

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

    هذه هي المشكله التي تواجهني الان وحاولت ان ابتكر لها دوال خارجيه لتعد الاوامر او تمنع التكرار ولكن لم اصل الي حل
    فأرجو المساعده جازاكم الله خيرا
    والسلام عليكم ورحمة الله وبركاته
    وعليكم السلام ورحمة الله وبركاته
    الجزء الثاني من السؤال
    يمكنك عمل دالة تعد عدد الأوامر المفتوحه وتختار أي أمر منهم
    مثال
    سوف أقوم بعمل دالة تغلق رقم الأمر الذي أريده
    كود PHP:
    void CloseSelectedOrder(int Num)
    {
     
    int OrderNumber;
     for (
    int i=0;i<OrdersTotal();i++)
      {
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
         
    OrderNumber++;
         if(
    OrderNumber!=Num)continue;
          if (
    OrderType()==OP_SELL)
          {
           
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*Q);
          }
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
          }
        }
      }

    والمتغير Num ستضع رقم الصفقه التي تريد إغلاقها أو مثلا إذا قمت بتغيير الداله حسب الأمر الذي تريده

    بالنسبه للسؤال الأول فكما أخبرك الأخ ecash
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  6. #6
    الصورة الرمزية batttot
    batttot غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    المشاركات
    921

    افتراضي

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

    فعلا الكلمات لا توفي حقكم جعل الله عملكم هذا في ميزان حسناتكم .................... اشكركم جدا علي المساعده جاري التنفيذ وتجرب الدوال و بعدها عرض النتائج ان شاء الله

  7. #7
    الصورة الرمزية batttot
    batttot غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    المشاركات
    921

    افتراضي

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

    بعد التجربه للكواد المقترحه وجدت الاتي

    للاسف الاكسبيرت بالرغم من وجود متغير الزمن في شرط الدخول الاانه يكرر فتح الاوامر ولكن بصوره عشوائيه بمعني انه يفتح صفقتين او ثلاثه قبل ان يتوقف عن فتح الصفقات عند هذه النقطه
    هذا اولا

    ثانيا الاكواد التي ذكرها كل من الاخ الفاضل جميل ومستر دولار
    كود الاخ جميل هو متغير خارجي اضع به رقم التيكيت للصفقه ............ لكن انا اريد الاكسبيرت يتعرف علي الصفقه من نفسه بدون تدخل مني مطلقا وفقا لشروط الاكسبيرت

    كود الاخ المبجل مستر دولار ايضا يترك المتغير num لاعطيه رقم الصفقه التي اريد ان اغلقها وكما وضحت اريد الاكسبرت بنفسه يختار بدون تدخل مني

    واخيرا هذا هو الكود الكامل للاكسبيرت بكل معادلاه ومتغيراته وبه الدوال صحيحه لفتح الاوامر وهو يفتح اوامر البيع والشراء بتكرار و ليست مره واحده بالرغم من اضافة متغير
    كود:
       t!= Time[0]
    فارجو الاطلاع عليه ولا يهم قيم المعادلات لانها لن تؤثر علي عملية فتح الاوامر حتي الان لانه لم تدخل في الدوال بعد لذلك يمكن تجاهلها تماما والتركيز علي شروط فتح الصفقه فقط ....... ومازال الاكسبيرت يفتح اكثر من صفقه واحده في المره الواحده

    ارجو مراجعته جازاكم الله خيرا
    كود:
    //+------------------------------------------------------------------+
    //|                                                       number.mq4 |
    //|                        Copyright 2013, MetaQuotes Software Corp. |
    //|                                        http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2013, MetaQuotes Software Corp."
    #property link      "http://www.metaquotes.net"
    
    
    
    
    extern double magicn = 2013;
    extern double lotsize = 0.01;
    extern double dlotsize = 0.02;
    extern double stepdeviation= 4;
    
    
    //// sell orders with dubled lot 
     
    double sellpoint  ;     
    double doblebuy    ;    
    double sellstop     ;   
    double sellprofit    ;  
    double doblebuystop   ; 
    double doblebuyprofit  ;
    
    //// buy orders with dubled lot 
    
    double buypoint;        
    double doblesell;       
    double buystop   ;      
    double buyprofit  ;     
    double doblesellstop ;  
    double doblesellprofit; 
    double i ;
    double point;
     int digits,Q; 
    datetime t;
    double can ;
    
    int init()
      {
    if(Digits==5||Digits==3) {Q=10;} else {Q=1;}
       if(Digits<4)
       {
          point=0.01;
          digits=2;
       }
       else
       {
          point=0.0001;
          digits=4;
       }
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
      
      if  (Close[1]>Open[1])
            {
             
      ///sell orders conditions in up candle
                can            = (High[1]-Low[1])*10000;
               sellpoint       = NormalizeDouble((High[1]+((High[1]-Close[1])*Point)),Digits);
               doblebuy        = NormalizeDouble((sellpoint+ ((Close[1]-Open[1])*Point)),Digits);
               sellstop        = doblebuy;
               sellprofit      = NormalizeDouble(((High[1]-Open[1])*Point),Digits);
               doblebuystop    = NormalizeDouble((doblebuy- (((High[1]-Low[1])/2)*Point)),Digits);
               doblebuyprofit  = NormalizeDouble((doblebuy+(((High[1]-Low[1])/2) *Point)),Digits);
    
    //// buy orders conditions in up candle
    
                 buypoint        = NormalizeDouble((Low[1]-((Open[1]-Low[1])*Point)),Digits);
                 doblesell       = NormalizeDouble(((buypoint -((Close[1]-Open[1])*Point))),Digits);
                 buystop         = doblesell;
                 buyprofit       = NormalizeDouble((((Open[1]-Low[1])*Point)),Digits);
                 doblesellstop   = NormalizeDouble(((doblesell+((High[1]-Low[1])/2)*Point)),Digits);
                 doblesellprofit = NormalizeDouble((( doblesell-((High[1]-Low[1])/2) *Point)),Digits);
                 
      ////////////in up candle ///////////
    
        if ( Close[1]>Open[1]&&Close[0]==buypoint&&t!=Time[0]&&can>=stepdeviation)
        {
        OrderSend(Symbol(),OP_BUY,lotsize,Ask,3,0,0,"",magicn,0,Green);
              t=Time[0];
        }
        
        if ( Close[1]>Open[1]&&Close[0]==sellpoint&&t!=Time[0]&&can>=stepdeviation)
        
        {
        
             OrderSend(Symbol(),OP_SELL,lotsize,Bid,5,0,0,"",magicn,0,Red);
        }
        
        
        }
       
    
    
     
       
       
       
       return(0);
      }
    //+------------------------------------------------------------------+

  8. #8
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي رد:...@@ مساعده في كتابة كود برمجي @@...

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

  9. #9
    الصورة الرمزية batttot
    batttot غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    المشاركات
    921

    افتراضي

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

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

    ثانيا بخصوص الكود الذي عدلته انت لماذا في دالة البيع ذكرت ان
    كود:
     T=Time[0]
    في جسد جملة شرط الشراء ولم تذكره في جسد جملة شرط البيع

    هذه نقطه

    والنقطه الثانيه والاهم

    للاسف الاكسبيرت توقف عن فتح اي صفقات شراء تماما ولا يفتح الا ثلاث صفقات بيع فقط بالرغم من تحقق الشروط للبيع والشراء

    لذلك التعديلات التي غيرتها اخي الكريم لم تصلح المشكله لكن جعلته يتوقف عن فتح الاوامر ......

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

    لذلك ارجو مراجعة الكود مره اخري لانه فعلا توقف عن فتح صفقات .......
    آخر تعديل بواسطة batttot ، 23-04-2013 الساعة 11:47 PM

  10. #10
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي

    انا وضعت T!=Time[0] في الشرط الأساسي ةالذي بعده تبتدي المعادلات ولآن امر البيع وأمر الشراء في الأصل تابعين لتحقق هذا الشرط . اما عدم تنفيذ صفقات فهو راجع كما اخبرتك لأخطاء استخراج الأستوب والتارجت من المعادلات لو تلاحظ ستجد انه لم يسجل الأستوب والتارجت مع فتح الصفقة وهنا اساس الخطأ ، وتستطيع استخدام الأمر Comment أو Print للأستوب والتارجت ولاحظ الرقم هل هو مناسب مع سعر البيع او الشراء ؟؟
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

  11. #11
    الصورة الرمزية batttot
    batttot غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    المشاركات
    921

    افتراضي

    اخي الفاضل

    انت تقول ان الخطأ في استخراج الاهدف والاستوب ........... انا قمت بمسح كل المتغيرات والمعادلات ولم اترك غير نقطة الشراء
    buypoint
    ونقطة البيع
    sellpoint
    وكما تلاحظ ان نقطة الشراء هي سعر الهاي للشمعه مضاف اليه المسافه من الهاي الي الاغلاق لنفس الشمعه
    ونقطة البيع هي سعر اللو مطروح منه المسافه من اللو الي الاوبن لنفس الشمعه
    والمعادلات صحيحه وقرأ نقاط الدخول جيدا
    وهنا طبعا لا مجال لوجود اي خطأ في الاستوب او الهدف لانني في الاساس وضعت فيهم القيمه صفر اي ان الاستوب والهدف = 0
    كود:
      OrderSend(Symbol(),OP_BUY,lotsize,Ask,3,0,0,"",magicn,0,Green);
    كود:
    OrderSend(Symbol(),OP_SELL,lotsize,Bid,5,0,0,"",magicn,0,Red);
    علي كل حال هذا هو الكود بعد مسح كل المغيرات وترك فقط البيع والشراء فقط لا غير وايضا مازال بنفس العيب لا يفتح اي صفقات حسب الكود الذي كتبته اخي الكريم لان العيب الان في تنفيذ الصفقات ولا دخل له بالهدف والاستوب لان لا وجود لهم من الاساس
    فأرجو اخر الكريم ان تقوم مراجعته جازاك الله خيرا
    كود:
     //+------------------------------------------------------------------+
            //|                                                       number.mq4 |
            //|                        Copyright 2013, MetaQuotes Software Corp. |
            //|                                        http://www.metaquotes.net |
            //+------------------------------------------------------------------+
            #property copyright "Copyright 2013, MetaQuotes Software Corp."
            #property link      "http://www.metaquotes.net"
    
    
    
    
            extern double magicn = 2013;
            extern double lotsize = 0.01;
            extern double dlotsize = 0.02;
            extern double stepdeviation= 4;
    
    
            //// sell orders with dubled lot 
             
            double sellpoint  ;     
         
            //// buy orders with dubled lot 
    
            double buypoint;        
          
            double i ;
            double point;
            int digits,Q; 
            datetime T;                                                                                                                                                                                                                                                                                                                                                                                                
            double can ;
    
            int init()
              {
            if(Digits==5||Digits==3) {Q=10;} else {Q=1;}
               if(Digits<4)
               {
                  point=0.01;
                  digits=2;
               }
               else
               {
                  point=0.0001;
                  digits=4;
               }
               return(0);
              }
            //+------------------------------------------------------------------+
            //| expert deinitialization function                                 |
            //+------------------------------------------------------------------+
            int deinit()
              {
            //----
               
            //----
               return(0);
              }
            //+------------------------------------------------------------------+
            //| expert start function                                            |
            //+------------------------------------------------------------------+
            int start()
              {
              
              if  (T!=Time[0] && Close[1]>Open[1])
                    {
                     
              ///sell orders conditions in up candle
                        can            = (High[1]-Low[1])*10000;
                       sellpoint       = NormalizeDouble((High[1]+((High[1]-Close[1])*Point)),Digits);
                     
    
            //// buy orders conditions in up candle
    
                         buypoint        = NormalizeDouble((Low[1]-((Open[1]-Low[1])*Point)),Digits);
                      
                         
              ////////////in up candle ///////////
    
                if ( Close[1]>Open[1]&&Close[0]==buypoint && can>=stepdeviation)
                {
                OrderSend(Symbol(),OP_BUY,lotsize,Ask,3,0,0,"",magicn,0,Green);
                      T=Time[0];
                }
                
                if ( Close[1]>Open[1]&&Close[0]==sellpoint&&can>=stepdeviation)
                
                {
                
                     OrderSend(Symbol(),OP_SELL,lotsize,Bid,5,0,0,"",magicn,0,Red);
                }
                 T=Time[0];
                
                }
               
    
    
             
               
               
               
               return(0);
              }
            //+------------------------------------------------------------------+

  12. #12
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي رد:...@@ مساعده في كتابة كود برمجي @@...

    ولايهمك تفضل هذا الكود قمت بترتيب وتنظيم شكل الأكسبيرت وأوقفت اكواد المعادلات القديمة ووضعت شروط بسيطة للتأكيد وستلاحظ انه لايفتح الا امر واحد مع اتجاه الشمعة السابقة هذا اولا . بالأضافة الى ترتيب الجمل والأقواس .
    ثانيا اضفت لك برنت لكل معادلة قديمة ستشغلها بعد ان تتأكد من صحة الأكسبيرت وتعمل من نسخة تانية تجرب عليها وتبتدي كود بعد كود ، تشوف برنت الكود مثلا صفقة شراء هل التارجت اعلى السعر والأستوب اسفل السعر ام لا وبغير هذه الحالة لن يعمل . او تضعها صفر . وهكذا حتى تصل الى الحل بالصبر .
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة Jmeel ، 24-04-2013 الساعة 01:22 AM
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

  13. #13
    الصورة الرمزية batttot
    batttot غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2010
    الإقامة
    مصر
    المشاركات
    921

    افتراضي

    اخي الفاضل يبدو انه هناك سوء تفاهم ................. اخي الكريم لماذا تصمم علي وضع استوب لوز و تيك بروفيت انا قلت لنترك هذا الاختيار تماما الان ونجعل الهدف والاستوب =0

    اخي الفاضل
    لماذا قمت بالغاء شرط نقطة الدخول .؟؟؟؟؟؟؟؟؟ ات بذلك حولت الاكسبريت الي مجرد اكسبيرت لفتح صفقة شراء مع الشمعه الصاعده وصفقة بيع مع الشمعه الهابطه وكما تلاحظ ان هذا الاكسبيرت قمت بتصميمه انا من قبل علي ان يكون مشروع التخرج ......

    لماذا قمت بالغاء شرط الشراء واضفت هدف واستوب اخي الكريم
    انا اريد اني ييبيع ويشتري من نقطة الشراء التي الغيتها او من نقطة البيع التي الغيتها ايضا ..............ارجو التوضيح لهذا النقطه لان السطور التي قمت بالغائها هي الاساس في عمل الاكسبيرت وبدلا منها وضعت اوامر للهدف والاستوب

    اخي الكريم انا لا اريدوضع هدف واستوب للصفقات اريد تركها كما هي وارداني يفعل البيع والشراء من نفقطة البيع ونقطة الشراء....... والنقطتين محسوبتين بدقه وتأكدت من الحسابات اكثر من مره
    فلماذا قمت بالغائهم .....................

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

    افتراضي رد:...@@ مساعده في كتابة كود برمجي @@...

    اقتباس المشاركة الأصلية كتبت بواسطة batttot مشاهدة المشاركة
    اخي الفاضل يبدو انه هناك سوء تفاهم ................. اخي الكريم لماذا تصمم علي وضع استوب لوز و تيك بروفيت انا قلت لنترك هذا الاختيار تماما الان ونجعل الهدف والاستوب =0

    اخي الفاضل
    لماذا قمت بالغاء شرط نقطة الدخول .؟؟؟؟؟؟؟؟؟ ات بذلك حولت الاكسبريت الي مجرد اكسبيرت لفتح صفقة شراء مع الشمعه الصاعده وصفقة بيع مع الشمعه الهابطه وكما تلاحظ ان هذا الاكسبيرت قمت بتصميمه انا من قبل علي ان يكون مشروع التخرج ......

    لماذا قمت بالغاء شرط الشراء واضفت هدف واستوب اخي الكريم
    انا اريد اني ييبيع ويشتري من نقطة الشراء التي الغيتها او من نقطة البيع التي الغيتها ايضا ..............ارجو التوضيح لهذا النقطه لان السطور التي قمت بالغائها هي الاساس في عمل الاكسبيرت وبدلا منها وضعت اوامر للهدف والاستوب

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

    بالنسبه لطريقته تعريف متغير T وأضاف الشرط T!=Time[0] فهي صحيحه
    يوجد طريقة أخرى يمكنك عمل دالة للبحث عن الصفقات والتأكد هل فتحت صفقه في هذه الشمعه أم لا
    مثال
    كود PHP:
    bool IsOrderOpened()
    {
     for(
    int i=OrdersTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
      {
       if(
    OrderOpenTime()>=Time[0])return(true);
       else if(
    OrderOpenTime()<Time[0])return(false);
      }
     }
     return(
    false);
    }
    if(

    ثم ستضيف من ضمن الشروط للبيع والشراء
    كود PHP:
    if(IsOrderOpened()==false
    وإذا أردت إضافة الصفقات التي أغلقت من ضمن الشروط أيضا سوف تقوم بعمل داله أخرى لكن ستبحث في الصفقات المغلقه وليس الصفقات المفتوحه لأن الداله السابقه ستبحث في الصفقات المفتوحه

    بالنسبه للجزء الثاني
    حتى تختار صفقة معينه حسب رقمها أيضا نفس فكرة الداله التي قمت بوضعها سابقا سوف تبحث في الصفقات المفتوحه من 0 إلى عدد الصفقات
    أنت تريد الصفقه رقم 7 مثلا ستقوم بعمل متغير مثلا
    كود PHP:
     int OrderNumber
    ثم في كل مره يبحث عن الصفقه وتكون بنفس الماجيك نمبر ونفس الشروط يزيد قيمة المتغير حتى يصل إلى رقم الصفقه الذي تريده
    كود PHP:
     int OrderNumber;
     for (
    int i=0;i<OrdersTotal();i++)
      {
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
         
    OrderNumber++;
         if(
    OrderNumber==7)
         {
          Print(
    "ticket : ",OrderTicket());
         }
        }
      } 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  15. #15
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة batttot مشاهدة المشاركة
    اخي الفاضل يبدو انه هناك سوء تفاهم ................. اخي الكريم لماذا تصمم علي وضع استوب لوز و تيك بروفيت انا قلت لنترك هذا الاختيار تماما الان ونجعل الهدف والاستوب =0

    اخي الفاضل
    لماذا قمت بالغاء شرط نقطة الدخول .؟؟؟؟؟؟؟؟؟ ات بذلك حولت الاكسبريت الي مجرد اكسبيرت لفتح صفقة شراء مع الشمعه الصاعده وصفقة بيع مع الشمعه الهابطه وكما تلاحظ ان هذا الاكسبيرت قمت بتصميمه انا من قبل علي ان يكون مشروع التخرج ......

    لماذا قمت بالغاء شرط الشراء واضفت هدف واستوب اخي الكريم
    انا اريد اني ييبيع ويشتري من نقطة الشراء التي الغيتها او من نقطة البيع التي الغيتها ايضا ..............ارجو التوضيح لهذا النقطه لان السطور التي قمت بالغائها هي الاساس في عمل الاكسبيرت وبدلا منها وضعت اوامر للهدف والاستوب

    اخي الكريم انا لا اريدوضع هدف واستوب للصفقات اريد تركها كما هي وارداني يفعل البيع والشراء من نفقطة البيع ونقطة الشراء....... والنقطتين محسوبتين بدقه وتأكدت من الحسابات اكثر من مره
    فلماذا قمت بالغائهم .....................
    مرحبا بك أخي ، انا ذهبت في البداية كما هي طريقتي الخاصة للبحث عن حلول لأخطاء بأيسر الطرق فكان البداية هي اضافة كود التايم لايقاف التكرار على الشمعة الواحدة ، بعدها تستطيع أن تعمل على حل مشكلة سعر الدخول فقط وترك الأستوب والهدف بمعنى أن نحل الأشكال مرحليا حتى نفهم ماذا صنعنا وبالتالي يصبح ثابت في ذاكرتنا ، هذا ماقصدت أخي وسأواصل معك حتى نصل إن شاء الله .
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

صفحة 1 من 3 123 الأخيرةالأخيرة

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