مشكلة تكرار فتح الصفقات على نفس الشمعة
النتائج 1 إلى 9 من 9
  1. #1
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    440

    افتراضي مشكلة تكرار فتح الصفقات على نفس الشمعة

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

    كود PHP:
    extern int TakeProfit 25;
    extern int StopLose 25;
    extern double Lots 0.3;
    extern int MagicNumber 23671;
    double Poin;
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
      if (
    Point == 0.00001Poin 0.0001//6 digits
     
    else if (Point == 0.001Poin 0.01//3 digits (for Yen based pairs)
     
    else Poin Point//Normal for 5 & 3 Digit Forex Quotes
     
    return(0);
     
       return(
    0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
     
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
     
     
      
    double cCLOSE iClose(NULL01); 
      
    double pCLOSE iClose(NULL02);
      
    double BP=iHigh(NULL,0,1);
      
    double SP=iLow(NULL,0,1); 
      
    double SLB=iLow(NULL,0,1);
      
    double SLS=iHigh(NULL,0,1);
      
    double cma5m=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,1); 
      
    double pma5m=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,2);
     
    {
      if(
    cCLOSE>cma5m && pCLOSE<pma5m)  
       
    OrderSend(Symbol(),OP_BUYSTOP,Lots,BP,3,SLB,Ask+TakeProfit*Poin,"",MagicNumber,0,Green); 
      if(
    cCLOSE<cma5m && pCLOSE>pma5m)
       
    OrderSend(Symbol(),OP_SELLSTOP,Lots,SP,3,SLS,Bid-TakeProfit*Poin,"",MagicNumber,0,Red);
       return(
    0);
       }
     
    //---------------------------------
     
    return(0);
     }
     
    //+-------- 

  2. #2
    تاريخ التسجيل
    Jan 2008
    المشاركات
    106

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

    فقط باضافة الكود التالي بعد start() :
    كود:
      for(int i=0;i<OrdersTotal();i++) {
            OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
            if (OrderMagicNumber()==MagicNumber && Symbol()==OrderSymbol())
               return;
      }
    بهذا يقوم الاكسبيرت في البحث عن اي طلب لنفس الزوج ومن نفس الاكسبيرت (باستخدام الماجيك نمبر)، اذا وجد هناك اي صفقة على نفس الزوج سيقف الاكسبيرت عند هذه النفطة، وهكذا.

  3. #3
    تاريخ التسجيل
    Sep 2008
    الإقامة
    LEB/UAE
    العمر
    32
    المشاركات
    1,577

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

    كود PHP:
    extern int TakeProfit 25;
    extern int StopLose 25;
    extern double Lots 0.3;
    extern int MagicNumber 23671;
    double Poin;
    int Tim;

    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
       
    Tim=Time[0];
      if (
    Point == 0.00001Poin 0.0001//6 digits
     
    else if (Point == 0.001Poin 0.01//3 digits (for Yen based pairs)
     
    else Poin Point//Normal for 5 & 3 Digit Forex Quotes
     
    return(0);
     
       return(
    0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
     
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
     
      if(
    Time[0]==Tim)return(0)
      
    double cCLOSE iClose(NULL01); 
      
    double pCLOSE iClose(NULL02);
      
    double BP=iHigh(NULL,0,1);
      
    double SP=iLow(NULL,0,1); 
      
    double SLB=iLow(NULL,0,1);
      
    double SLS=iHigh(NULL,0,1);
      
    double cma5m=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,1); 
      
    double pma5m=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,2);
     
    {
      if(
    cCLOSE>cma5m && pCLOSE<pma5m)  
       
    OrderSend(Symbol(),OP_BUYSTOP,Lots,BP,3,SLB,Ask+TakeProfit*Poin,"",MagicNumber,0,Green); 
      if(
    cCLOSE<cma5m && pCLOSE>pma5m)
       
    OrderSend(Symbol(),OP_SELLSTOP,Lots,SP,3,SLS,Bid-TakeProfit*Poin,"",MagicNumber,0,Red);
       return(
    0);
       }
     
    //---------------------------------
     
    return(0);
     }
     
    //+-------- 



    جرب هذا اخوي

  4. #4
    تاريخ التسجيل
    Jan 2008
    المشاركات
    106

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

    د. اودي

    وين الغيبة؟؟، لا ادري هل كنت مختفي ام بسبب قلة مشاركاتي لم اراك!!
    اخر مرة رأيتك فيها كانت عندما طلبت برنامج لتفريغ الاسعار الى ملف txt.. في هذا الموضوع:

    http://www.arabictrader.com/vb/t60906.html


    وللأسف لم اراك بعدها، عسى المانع خير. وما هو اخبار مشروعك؟

    بالنسبة للكود اللذي ارفقته في مشاركتك فلم ينجح (انظر الصورة).

    يمكن عمل ذلك فقط بالرجوع الى order magic number، الطريقة اللذي ذكرتها في مشاركتي ليست مثالية 100% ولكن تفي بالغرض الاساسي، لانه اذا كان هناك وظائف في الاكسبيرت اخرى مثل تتبع الستوب trailingstop فلن يتفعل ذلك، ولكي يكون مثالياً فيجب ن تكون بالكريقة التالية:

    كود:
    
    void start()
    {
      
      if (OrderIsActive())
        TrailingStop();
      else
        ProcessOrder();
    
      .
      .
      .
    }
    
    bool OrderIsActive()
    {
      for(int i=0;i<OrdersTotal();i++) {
            OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
            if (OrderMagicNumber()==MagicNumber && Symbol()==OrderSymbol())
               return(true);
      }
      return(false);
    }

    بالتوفيق للجميع
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة اضغط على الصورة لعرض أكبر

الاســـم:	sellsig.gif‏
المشاهدات:	47
الحجـــم:	17.1 كيلوبايت
الرقم:	184041  

  5. #5
    تاريخ التسجيل
    Sep 2008
    الإقامة
    LEB/UAE
    العمر
    32
    المشاركات
    1,577

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

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

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

    شكرا اخي على سؤالك

    واتمنى ان يصل كاتب الموضوع لمراده

    تحياتي لكم جميعا

  6. #6
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    440

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

    اقتباس المشاركة الأصلية كتبت بواسطة صانع قرار مشاهدة المشاركة
    فقط باضافة الكود التالي بعد start() :
    كود:
     
      for(int i=0;i<OrdersTotal();i++) {
            OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
            if (OrderMagicNumber()==MagicNumber && Symbol()==OrderSymbol())
               return;
      }
    بهذا يقوم الاكسبيرت في البحث عن اي طلب لنفس الزوج ومن نفس الاكسبيرت (باستخدام الماجيك نمبر)، اذا وجد هناك اي صفقة على نفس الزوج سيقف الاكسبيرت عند هذه النفطة، وهكذا.
    شكرا على الكود و الشرح
    سؤال / عند إضافة
    كود PHP:
    (OrderMagicNumber()==MagicNumber && Symbol()==OrderSymbol() && OrderType() == OP_BUY
    هل سيكون الأمر لصفقات الشراء المفتوحة فقط ؟؟ و على ذلك نقيس ؟؟
    آخر تعديل بواسطة alshakatan ، 25-04-2009 الساعة 01:21 AM

  7. #7
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    440

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

    اقتباس المشاركة الأصلية كتبت بواسطة Dr.Aoudi مشاهدة المشاركة
    كود PHP:
    [color=black]extern int TakeProfit 25;[/color]
    [
    color=black]extern int StopLose 25;[/color]
    [
    color=black]extern double Lots 0.3;[/color]
    [
    color=black]extern int MagicNumber 23671;[/color]
    [
    color=black]double Poin;[/color]
    [
    color=black]int Tim;[/color]
    [
    color=black][/color]
    [
    color=black]//+------------------------------------------------------------------+[/color]
    [color=black]//| expert initialization function                                   |[/color]
    [color=black]//+------------------------------------------------------------------+[/color]
    [color=black]int init()[/color]
    [
    color=black]  {[/color]
    [
    color=black]   Tim=Time[0];[/color]
    [
    color=black]  if (Point == 0.00001Poin 0.0001//6 digits[/color]
    [color=black] else if (Point == 0.001Poin 0.01//3 digits (for Yen based pairs)[/color]
    [color=black] else Poin Point//Normal for 5 & 3 Digit Forex Quotes[/color]
    [color=black] [/color]
    [
    color=black]return(0);[/color]
    [
    color=black] [/color]
    [
    color=black]   return(0);[/color]
    [
    color=black]  }[/color]
    [
    color=black]//+------------------------------------------------------------------+[/color]
    [color=black]//| expert deinitialization function                                 |[/color]
    [color=black]//+------------------------------------------------------------------+[/color]
    [color=black]int deinit()[/color]
    [
    color=black]  {[/color]
    [
    color=black]//----[/color]
    [color=black] [/color]
    [
    color=black]//----[/color]
    [color=black]   return(0);[/color]
    [
    color=black]  }[/color]
    [
    color=black]//+------------------------------------------------------------------+[/color]
    [color=black]//| expert start function                                            |[/color]
    [color=black]//+------------------------------------------------------------------+[/color]
    [color=black]int start()[/color]
    [
    color=black]  {[/color]
    [
    color=black] [/color]
    [
    color=black]  if(Time[0]==Tim)return(0)[/color]
    [
    color=black]  double cCLOSE iClose(NULL01); [/color]
    [
    color=black]  double pCLOSE iClose(NULL02);[/color]
    [
    color=black]  double BP=iHigh(NULL,0,1);[/color]
    [
    color=black]  double SP=iLow(NULL,0,1); [/color]
    [
    color=black]  double SLB=iLow(NULL,0,1);[/color]
    [
    color=black]  double SLS=iHigh(NULL,0,1);[/color]
    [
    color=black]  double cma5m=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,1); [/color]
    [
    color=black]  double pma5m=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,2);[/color]
    [
    color=black] [/color]
    [
    color=black]{[/color]
    [
    color=black]  if(cCLOSE>cma5m && pCLOSE<pma5m)  [/color]
    [
    color=black]   OrderSend(Symbol(),OP_BUYSTOP,Lots,BP,3,SLB,Ask+TakeProfit*Poin,"",MagicNumber,0,Green); [/color]
    [
    color=black]  if(cCLOSE<cma5m && pCLOSE>pma5m)[/color]
    [
    color=black]   OrderSend(Symbol(),OP_SELLSTOP,Lots,SP,3,SLS,Bid-TakeProfit*Poin,"",MagicNumber,0,Red);[/color]
    [
    color=black]   return(0);[/color]
    [
    color=black]   }[/color]
    [
    color=black] [/color]
    [
    color=black]//---------------------------------[/color]
    [color=black] return(0);[/color]
    [
    color=black] }[/color]
    [
    color=black] [/color]
    [
    color=black]//+--------  [/color]
    [color=black][/color]
    [
    color=black][/color

    جرب هذا اخوي
    شكرا على الكود و على الشرح .......... اللي حتضيفه........... ممكن ........بليز

  8. #8
    تاريخ التسجيل
    Jan 2008
    المشاركات
    106

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

    اقتباس المشاركة الأصلية كتبت بواسطة alshakatan مشاهدة المشاركة
    شكرا على الكود و الشرح
    سؤال / عند إضافة
    كود PHP:
    (OrderMagicNumber()==MagicNumber && Symbol()==OrderSymbol() && OrderType() == OP_BUY
    هل سيكون الأمر لصفقات الشراء المفتوحة فقط ؟؟ و على ذلك نقيس ؟؟
    صحيح، بهذه الطريقة سوف يبحث عن طلبات الشراء فقط... ولكن يجب عليك ايضاً كتابة
    الوظيفة نفسها للبحث في طلبات البيع. وهذا الطريقة في البرمجة لا ينصح بها.

    والطريقة المثالية في هذه الحالة هو استدعاء وظيفة OrderIsActive معParameter

    مثال على ذلك،

    كود:
    void start()
    {
      
      if (OrderIsActive(OP_BUY))
        TrailingStop();
      else
        ProcessOrder();
    
      .
      .
      .
    }
    
    bool OrderIsActive(int ordertype)
    {
      for(int i=0;i<OrdersTotal();i++) {
            OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
            if (OrderMagicNumber()==MagicNumber && Symbol()==OrderSymbol() && OrderType()==ordertype)
               return(true);
      }
      return(false);
    }
    اتمنى ان تكون حصلت على مرادك.

    بالتوفيق

  9. #9
    تاريخ التسجيل
    Jan 2008
    المشاركات
    106

    افتراضي رد: مشكلة تكرار فتح الصفقات على نفس الشمعة

    اقتباس المشاركة الأصلية كتبت بواسطة Dr.Aoudi مشاهدة المشاركة
    السلام عليكم ...
    اخي صانع القرار .. انا موجود .. قمت بوضع بصناعة اكسبرت ووضعته هنا في المنتدى ..
    Tripple K
    كانت النتائج مذهلة في الباك تست اما في الحقيقي فكانت النتائج عكس ذلك تماما فشل .. المهم انا موجود دائما .. ارد على المواضيع التي لي باع فيها والتي لا استطيع ان اخدم فيها فلا ارد

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

    شكرا اخي على سؤالك

    واتمنى ان يصل كاتب الموضوع لمراده

    تحياتي لكم جميعا

    حياك الله اخي الكريم وابقاك، واتمنى لك التوفيق دائماً في كل مشاريع. ان شاء الله نكون في تواصل مستمر... والله يديم المحبة.

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

  1. أى سؤال وأى مشكلة فى الصفقات .. أسئل وسأحل مشكلتك ...أى زوج سأقول لك طريقة ...
    By ggglll in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 178
    آخر مشاركة: 20-05-2010, 12:30 AM
  2. مطلوب كود إغلاق الصفقات بنهاية الشمعة
    By Scarface in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 3
    آخر مشاركة: 03-01-2010, 06:06 PM
  3. مشكلة عكس الصفقات في إف إكس سول هل من حل
    By BillGatesJordan in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 9
    آخر مشاركة: 24-05-2009, 05:42 PM

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