صفحة 268 من 686 الأولىالأولى ... 168218258262263264265266267268269270271272273274278318368 ... الأخيرةالأخيرة
النتائج 4,006 إلى 4,020 من 10285
  1. #4006
    الصورة الرمزية العوامى
    العوامى غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2012
    الإقامة
    مصر
    المشاركات
    78

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

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


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

  2. #4007
    الصورة الرمزية العوامى
    العوامى غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2012
    الإقامة
    مصر
    المشاركات
    78

    افتراضي

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

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    بارك الله فيك أستاذي الكريم

    للأسف لم تظهر أسعار الخطوط على الشارت
    والأسعار بالباكتيست تظهر فقط لمرة واحدة وهي خاصة بالمؤشر
    كل ما أريده من الاكسبيرت أن يضع أمرين BuyStop و SellStop بالخط بمجرد أن يلمسه السعر وهكذا في كل ملامسة لأي خط من خطوط المؤشر
    المشكلة أنه يضع فقط بخط الوسط N أما باقي الخطوط لا يضع الأمرين
    مؤشر الخطوط بالمرفقات للمراجعة

    كود لجزء من الشروط لخطوط H
    كود PHP:
    void OncePerBar()
    {
        
        if (
    BarTime Time[0])
        {
            
    // we have a new bar opened
            
    BarTime Time[0]; // keep the new bar open time
            
    TechnicalAnalysis();
            
        }
    }
    void TechnicalAnalysis()
    {
    for(
    int i=1;i<=20;i++)
     {
      
    double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
      Print(
    LineH);
      
        if ((
    Open[1]<=LineH&&Close[1]>=LineH) || (Open[1]>=LineH&&Close[1]<=LineH))
        {
            
           
    LimitOpenOrders();
            
        }
     }
    }
            
    void LimitOpenOrders()
    {
        
    int count 0;
        for (
    int i=OrdersTotal()-1>= 0i--)
        if (
    OrderSelect(iSELECT_BY_POSMODE_TRADES))
        {
            if (
    OrderSymbol() == Symbol())
            if (
    OrderMagicNumber() == MagicNo)
            {
                
    count++;
            }
        }
        else
        {
            Print(
    "OrderSend() error - "ErrorDescription(GetLastError()));
        }
        if (
    count OpenOrdersLimit)
        {

          
    IfOrderDoesNotExist1();
          
    IfOrderDoesNotExist2();
            
        }
    }

    void IfOrderDoesNotExist1()
    {
        
    bool exists false;
        for (
    int i=OrdersTotal()-1>= 0i--)
        if (
    OrderSelect(iSELECT_BY_POSMODE_TRADES))
        {
            if (
    OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() != MagicNo)
            {
                
    exists true;
            }
        }
        else
        {
            Print(
    "OrderSelect() error - "ErrorDescription(GetLastError()));
        }
        
        if (
    exists == false)
        {
             
    SellOrderH();
            
        }
    }

    void IfOrderDoesNotExist2()
    {
        
    bool exists false;
        for (
    int i=OrdersTotal()-1>= 0i--)
        if (
    OrderSelect(iSELECT_BY_POSMODE_TRADES))
        {
            if (
    OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() != MagicNo)
            {
                
    exists true;
            }
        }
        else
        {
            Print(
    "OrderSelect() error - "ErrorDescription(GetLastError()));
        }
        
        if (
    exists == false)
        {
             
    BuyOrderH();
        }

    ثم دالة الشراء والبيع المعلقين
    كود PHP:
    void BuyOrderH()
    {

        
        for( 
    int i=1;i<=20;i++)
        {
        
    double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);   
            Print(
    LineH);
        
    double price = (NormalizeDouble(LineHNDigits) + (SellStep*PipValue*Point)); 
        
    double SL price Stoploss*PipValue*Point;
        if (
    Stoploss == 0SL 0;
        
    double TP price Takeprofit*PipValue*Point;
        if (
    Takeprofit == 0TP 0;
        
    int Tries
        
    int ticket = -1;    
        if (
    ECNBroker)
        { 
        
    ticket OrderSend(Symbol(), OP_BUYSTOPLotspriceSlippage00"Kira-h"MagicNo0Blue); 
        if(
    ticket>-&& Tries<10)
          { 
           
    OrderSelect(ticketSELECT_BY_TICKET); 
           
    OrderModify(ticketOrderOpenPrice(), SLTP0Blue); 
           
    Tries++;Sleep(1000);  
          } 
        } 
        else 
        
    ticket OrderSend(Symbol(), OP_BUYSTOPLotspriceSlippageSLTP"Kira-h"MagicNo0Blue);
        }     
    }

    void SellOrderH()
    {  

        
        for( 
    int i=1;i<=20;i++)
        {
        
    double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
            Print(
    LineH);     
        
    double price = (NormalizeDouble(LineHNDigits) - (SellStep*PipValue*Point)); 
        
    double SL price Stoploss*PipValue*Point;
        if (
    Stoploss == 0SL 0
        
    double TP price Takeprofit*PipValue*Point;
        if (
    Takeprofit == 0TP 0;  
        
    int Tries
        
    int ticket = -1;    
        if (
    ECNBroker)
        { 
        
    ticket OrderSend(Symbol(), OP_SELLSTOPLotspriceSlippage00"Kira-h"MagicNo0Red); 
        if(
    ticket>-&& Tries<10)
          { 
           
    OrderSelect(ticketSELECT_BY_TICKET); 
           
    OrderModify(ticketOrderOpenPrice(), SLTP0Blue); 
           
    Tries++;Sleep(1000);  
          } 
        } 
        else 
        
    ticket OrderSend(Symbol(), OP_SELLSTOPLotsBidSlippageSLTP"Kira-h"MagicNo0Red);
        }    

    أيضا هل الدالة صحيحة لاستخراج الربح الاجمالي والخسارة الاجمالية بالنقاط للصفقات المفعلة ؟؟؟

    كود PHP:
    extern int TotalProfitPips=30;
    extern int TotalLossPips=99999
    كود PHP:
    void CheckPipsProfit()
    {
     
    double TT,W;
     for(
    int i=OrdersTotal()-1>= 0i--)
     {
      
    OrderSelect(iSELECT_BY_POS,MODE_TRADES);
      {
       if(
    OrderType()==OP_BUY)
       {
        
    W=((MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT));
        if (
    Point==0.00001 || Point==0.001W=((MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT))/10;
        
    TT=TT+W;
       }
       else if(
    OrderType()==OP_SELL)
       {
        
    W=((OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT));
        if (
    Point==0.00001 || Point==0.001W=((OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT))/10;
        
    TT=TT+W;
       }
      }
     }
     
    Comment("Profit= ",TT);
     while(
    OrdersTotal()>&& ((TT>=TotalProfitPips) || (TT<=(TotalLossPips*(-1)))))
     {
      for(
    i=OrdersTotal()-1>= 0i--)
      {
       
    OrderSelect(iSELECT_BY_POS,MODE_TRADES);
       if (
    OrderType()==OP_BUYOrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slippage);
       else if (
    OrderType()==OP_SELLOrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slippage);
       else 
    OrderDelete(OrderTicket());
      }
     }

    بانتظارك أستاذي الغالي
    طيب أفضل حل الآن قم بإضافة كود المؤشر إلى الإكسبرت مباشرة
    مثال
    كود PHP:
     double Price;    
      if (!
    Set_Price_Manual)
      {
      
      if (
    Apply=="o" || Apply=="O"Price=Open[iBarBegin];
      else if (
    Apply=="c" || Apply=="C"Price=Close[iBarBegin];
      else if (
    Apply=="h" || Apply=="H"Price=High[iBarBegin];
      else if (
    Apply=="l" || Apply=="L"Price=Low[iBarBegin];
      else 
    Price=(Close[iBarBegin] + Low[iBarBegin] + High[iBarBegin])/3;
      }
      else if (
    Set_Price_ManualPrice=Start_Price
     
      
    double NLine=Price;
      
    double HigherLines[];
      
    double LowerLines[];    
       
    ArrayResize(HigherLines,no_of_Higher_Lines);  
       
    ArrayResize(no_of_Lower_Lines,LowerLines);   
       for (
    int i=0;i<no_of_Higher_Lines;i++) 
       { 
        
    HigherLines[i]=Price+(i*Pips*Point);
       }   
       for (
    int j=0;j<no_of_Lower_Lines;j++) 
       { 
        
    LowerLines[i]=Price-(j*Pips*Point);
       } 
    ثم سيكون إستدعاء خطوط من المصفوفه

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

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة العوامى مشاهدة المشاركة
    السلام عليكم
    كيف ازيل الكود الذى يجعل الاكسبيرت يتعرف على نوع المنصه اذا كانت خماسية او رباعية بحيث استطيع كتابه هدف اقل من النقطة الواحدة
    مثلا انا كتبت فى الاكسبيرت ان الهدف نقطة فو الاكسبيرت لايتعرف على نوع المنصة ستحسب على منصة رباعية بنقطة اما على الخماسية واحد من عشره من النقطة وهذا هو ما اريد
    والسؤال مره اخرى هو كيف ازيل او اين يوجد او ما هو الكود الذى يجعل الاكسبيرت يتعرف على نوع المنصة اذا كانت رباعية او خماسية
    وشكرا
    وعليكم السلام ورحمة الله وبركاته
    تختلف حسب المبرمج وطريقة كتابته للكود فلا يوجد طريقة ثابته
    الأسهل بالنسبه لك فما أنك تريد أن تجعل الهدف 0.1 نقطه فيمكنك كتابتها بهذا الشكل في المتغير الخارجي للهدف
    لكن طبعا في الغالب سوف تجد أنه لا يمكن إلا كتابة أرقام صحيحه في خانة الهدف لذلك قم بتعديلها بدلا من جعله
    كود PHP:
    extern int TakeProfit=0
    سوف تجعلها
    كود PHP:
    extern double TakeProfit=0
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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

    اخي مستر دولار عندي اضافه فكره على إكسبرت أوامر معلقة مع المضاعفات

    لماذا لايتم اضافه المناقصات عكس المضاعفات .يعني اذا كان العقد الاول 8 يكون العقد الثاني 7 والثالث 6 وهكذا او الاول 8 والثاني 4 والثالت 2 وهكذا؟

  6. #4011
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    طيب أفضل حل الآن قم بإضافة كود المؤشر إلى الإكسبرت مباشرة
    مثال
    كود PHP:
     double Price;    
      if (!
    Set_Price_Manual)
      {
      
      if (
    Apply=="o" || Apply=="O"Price=Open[iBarBegin];
      else if (
    Apply=="c" || Apply=="C"Price=Close[iBarBegin];
      else if (
    Apply=="h" || Apply=="H"Price=High[iBarBegin];
      else if (
    Apply=="l" || Apply=="L"Price=Low[iBarBegin];
      else 
    Price=(Close[iBarBegin] + Low[iBarBegin] + High[iBarBegin])/3;
      }
      else if (
    Set_Price_ManualPrice=Start_Price
     
      
    double NLine=Price;
      
    double HigherLines[];
      
    double LowerLines[];    
       
    ArrayResize(HigherLines,no_of_Higher_Lines);  
       
    ArrayResize(no_of_Lower_Lines,LowerLines);   
       for (
    int i=0;i<no_of_Higher_Lines;i++) 
       { 
        
    HigherLines[i]=Price+(i*Pips*Point);
       }   
       for (
    int j=0;j<no_of_Lower_Lines;j++) 
       { 
        
    LowerLines[i]=Price-(j*Pips*Point);
       } 
    ثم سيكون إستدعاء خطوط من المصفوفه

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

  7. #4012
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

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

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    طيب أفضل حل الآن قم بإضافة كود المؤشر إلى الإكسبرت مباشرة
    مثال
    كود PHP:
     double Price;    
      if (!
    Set_Price_Manual)
      {
      
      if (
    Apply=="o" || Apply=="O"Price=Open[iBarBegin];
      else if (
    Apply=="c" || Apply=="C"Price=Close[iBarBegin];
      else if (
    Apply=="h" || Apply=="H"Price=High[iBarBegin];
      else if (
    Apply=="l" || Apply=="L"Price=Low[iBarBegin];
      else 
    Price=(Close[iBarBegin] + Low[iBarBegin] + High[iBarBegin])/3;
      }
      else if (
    Set_Price_ManualPrice=Start_Price
     
      
    double NLine=Price;
      
    double HigherLines[];
      
    double LowerLines[];    
       
    ArrayResize(HigherLines,no_of_Higher_Lines);  
       
    ArrayResize(no_of_Lower_Lines,LowerLines);   
       for (
    int i=0;i<no_of_Higher_Lines;i++) 
       { 
        
    HigherLines[i]=Price+(i*Pips*Point);
       }   
       for (
    int j=0;j<no_of_Lower_Lines;j++) 
       { 
        
    LowerLines[i]=Price-(j*Pips*Point);
       } 
    ثم سيكون إستدعاء خطوط من المصفوفه

    بالنسبه لدالة حساب الربح فهي صحيحه نعم
    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    بارك الله فيك أستاذي الرائع
    جاري محاولة دمج كود المؤشر بالاكسبيرت ولي عودة للتصحيح إن شاء الله
    جزاك الله خيرا
    تم دمج كود المؤشر مع الاكسبيرت بدون أخطاء في الكمبايل وللأسف لا يفتح أوامر بخطوط H و L

    لكن خطرت ببالي فكرة للتأكد من استدعاء الخطوط
    عملت شرط لكل خط
    يعني H1 له شرط ; و H2 له شرط ..... وهكذا والمحصلة 41 شرط ل 82 دالة امر معلق
    والنتيجة اشتغل الاكسبيرت بكفاءة وفتح الأوامر على جميع الخطوط كما هو مطلوب

    إذن نستنتج ان الاكسبيرت يستطيع استدعاء قيم المؤشر
    والخطأ بالتأكيد يكمن في المتتالية الرياضية للخطوط i :
    كود PHP:
    for(int i=1;i<=20;i++)
     {
      
    double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
      
    double LineL=ObjectGet("Li"+i,OBJPROP_PRICE1); 
    وجربت الدالة التالية ولم تنجح أيضا :
    كود PHP:
    for(int i=1;i<=20;i++)
     {
      
    double LineH=ObjectGet("H"+i,OBJPROP_PRICE1);
      
    double LineL=ObjectGet("L"+i,OBJPROP_PRICE1); 
    الان الاكسبيرت يعمل كما هو مطلوب، لكن الأكواد كثيرة جدا وأريد فقط اختصارها في علاقة رياضية ناجحة لمتتالية الخطوط وذلك للتخفيف عن المعالج في قراءة هذه الأكواد الكثيرة وأيضا ربما سرعة التنفيذ وأيضا حتى يكون الاكسبيرت سهل التعديل..

    بانتظارك أستاذي الكريم،...اتعبناك معنا بارك الله فيك على مجهودك الرائع
    تحياتي من القلب يازعيم
    آخر تعديل بواسطة kira-h ، 13-06-2013 الساعة 07:49 PM
    توقيع العضو
    متداول فوركس، ومبرمج mql

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

    افتراضي

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

    اخي مستر دولار عندي اضافه فكره على إكسبرت أوامر معلقة مع المضاعفات

    لماذا لايتم اضافه المناقصات عكس المضاعفات .يعني اذا كان العقد الاول 8 يكون العقد الثاني 7 والثالث 6 وهكذا او الاول 8 والثاني 4 والثالت 2 وهكذا؟
    وعليكم السلام ورحمة الله وبركاته
    هذه الفكره ستزيد الخطوره لأن الخساره لأول صفقة في هذه الحاله وحتى عندما تصل للصفقه التاليه ستكون خساره كبيره جدا وفي نفس الوقت عند تفعل الصفقة الثانيه لن تعوض خسارة الصفقه الأولى حتى يعود السعر إلى نقطة الدخول وأكثر
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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

  10. #4015
    الصورة الرمزية العوامى
    العوامى غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2012
    الإقامة
    مصر
    المشاركات
    78

    افتراضي

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

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    تم دمج كود المؤشر مع الاكسبيرت بدون أخطاء في الكمبايل وللأسف لا يفتح أوامر بخطوط H و L

    لكن خطرت ببالي فكرة للتأكد من استدعاء الخطوط
    عملت شرط لكل خط
    يعني H1 له شرط ; و H2 له شرط ..... وهكذا والمحصلة 41 شرط ل 82 دالة امر معلق
    والنتيجة اشتغل الاكسبيرت بكفاءة وفتح الأوامر على جميع الخطوط كما هو مطلوب

    إذن نستنتج ان الاكسبيرت يستطيع استدعاء قيم المؤشر
    والخطأ بالتأكيد يكمن في المتتالية الرياضية للخطوط i :
    كود PHP:
    for(int i=1;i<=20;i++)
     {
      
    double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
      
    double LineL=ObjectGet("Li"+i,OBJPROP_PRICE1); 
    وجربت الدالة التالية ولم تنجح أيضا :
    كود PHP:
    for(int i=1;i<=20;i++)
     {
      
    double LineH=ObjectGet("H"+i,OBJPROP_PRICE1);
      
    double LineL=ObjectGet("L"+i,OBJPROP_PRICE1); 
    الان الاكسبيرت يعمل كما هو مطلوب، لكن الأكواد كثيرة جدا وأريد فقط اختصارها في علاقة رياضية ناجحة لمتتالية الخطوط وذلك للتخفيف عن المعالج في قراءة هذه الأكواد الكثيرة وأيضا ربما سرعة التنفيذ وأيضا حتى يكون الاكسبيرت سهل التعديل..

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

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

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

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

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة العوامى مشاهدة المشاركة
    ماهو الكود المطلوب ليفتح الاكسبيرت صفقة فى نفس اتجاه الصفقه الاولى كلما عكس السعر 10 نقاط
    وشكرا مقدما
    سوف تحتاج لعمل دالة تقوم بمعرفة سعر فتح آخر صفقه
    كود PHP:
    double LastOpenPrice()
    {
     for(
    int i=OrdersTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
    double price=OrderOpenPrice();
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==type)
      {
       return(
    price);
      }
     }

    ودالة لمعرفة نوع آخر صفقه فتحت
    كود PHP:
    double LastOrderType()
    {
     for(
    int i=OrdersTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
    int type=OrderType();
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==type)
      {
       return(
    type);
      }
     }

    ثم ستكون الشروط
    كود PHP:
    if(LastOrderType()==OP_BUY&&LastOpenPrice()-Bid>=10*Point)
    {
     
    // open buy order 
    }
    if(
    LastOrderType()==OP_SELL&&Ask-LastOpenPrice()>=10*Point)
    {
      
    // open sell Order

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

  14. #4019
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

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

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    الكود صحيح بهذا الشكل ولا يوجد به خطأ أرفق الإكسبرت الذي قمت بعمله والطريقة التي قمت بكتابتها فغالبا سوف تجد الخطأ في جزء آخر لم تنتبه له
    تمام أستاذي العزيز الاكسبيرت والمؤشر بالمرفقات
    بالنسبة لشرط "ملامسة السعر للخط" هل صحيح ؟
    كود PHP:
    if ((Open[1]<=LineH&&Close[1]>=LineH
    ما هو الشرط الأدق لضمان تحقق ملامسة السعر للخط
    جربت هذا الكود ولم ينجح !*
    كود PHP:
     if (Ask==LineN
    جزاك الله عنا كل خير
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة kira-h ، 14-06-2013 الساعة 04:33 AM
    توقيع العضو
    متداول فوركس، ومبرمج mql

  15. #4020
    الصورة الرمزية العوامى
    العوامى غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2012
    الإقامة
    مصر
    المشاركات
    78

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

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

    كود PHP:
    int init() {
       
    int li_0;
       
    gt_unused_428 Time[0];
       
    gt_unused_432 Time[0];
       
    g_digits_584 Digits;
       if (
    g_digits_584 == || g_digits_584 == 5) {
          
    gd_524 10.0 Point;
          
    gd_532 10;
       } else {
          
    gd_524 Point;
          
    gd_532 1;
       }
       
    int l_ord_total_4 OrdersTotal();
       if (
    li_0 == && l_ord_total_4 0) {
          for (
    int l_pos_8 0l_pos_8 l_ord_total_4l_pos_8++) {
             if (
    OrderSelect(l_pos_8SELECT_BY_POS)) {
                if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
                   
    li_0 NormalizeDouble(OrderLots() / lots, (MarketInfo(Symbol(), MODE_MINLOT) == 0.01) + 1);
                   break;
                }
             }
          }
       }
       
    int l_hist_total_12 OrdersHistoryTotal();
       if (
    li_0 == && l_hist_total_12 0) {
          for (
    l_pos_8 0l_pos_8 l_hist_total_12l_pos_8++) {
             if (
    OrderSelect(l_pos_8SELECT_BY_POSMODE_HISTORY)) {
                if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
                   
    li_0 NormalizeDouble(OrderLots() / lots, (MarketInfo(Symbol(), MODE_MINLOT) == 0.01) + 1);
                   break;
                }
             }
          }
       }
       if (
    li_0 0gd_632 li_0;
       return (
    0);
    }

    int start() {
       
    double ld_8;
       
    double ld_16;
       
    g_ord_total_600 OrdersTotal();
       if (
    breakevengain 0.0) {
          for (
    int l_pos_0 0l_pos_0 g_ord_total_600l_pos_0++) {
             
    OrderSelect(l_pos_0SELECT_BY_POSMODE_TRADES);
             if (
    OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
                if (
    OrderType() == OP_BUY) {
                   if (
    NormalizeDouble(Bid OrderOpenPrice(), g_digits_584) < NormalizeDouble(breakevengain gd_524g_digits_584)) continue;
                   if (
    NormalizeDouble(OrderStopLoss() - OrderOpenPrice(), g_digits_584) >= NormalizeDouble(breakeven gd_524g_digits_584)) continue;
                   
    OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + breakeven gd_524g_digits_584), OrderTakeProfit(), 0Blue);
                   return (
    0);
                }
                if (
    NormalizeDouble(OrderOpenPrice() - Askg_digits_584) >= NormalizeDouble(breakevengain gd_524g_digits_584)) {
                   if (
    NormalizeDouble(OrderOpenPrice() - OrderStopLoss(), g_digits_584) < NormalizeDouble(breakeven gd_524g_digits_584)) {
                      
    OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() - breakeven gd_524g_digits_584), OrderTakeProfit(), 0Red);
                      return (
    0);
                   }
                }
             }
          }
       }
       if (
    trailingstop 0.0 && maxtrades 10) {
          for (
    int l_pos_4 0l_pos_4 g_ord_total_600l_pos_4++) {
             
    OrderSelect(l_pos_4SELECT_BY_POSMODE_TRADES);
             if (
    OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
                if (
    OrderType() == OP_BUY) {
                   if (!(
    NormalizeDouble(Askg_digits_584) > NormalizeDouble(OrderOpenPrice() + trailingstart gd_524g_digits_584) && NormalizeDouble(OrderStopLoss(), g_digits_584) < NormalizeDouble(Bid - (trailingstop +
                      
    trailingstep) * gd_524g_digits_584) || OrderStopLoss() == 0.0)) continue;
                   
    OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Bid trailingstop gd_524g_digits_584), OrderTakeProfit(), 0Blue);
                   return (
    0);
                }
                if (
    NormalizeDouble(Bidg_digits_584) < NormalizeDouble(OrderOpenPrice() - trailingstart gd_524g_digits_584) && NormalizeDouble(OrderStopLoss(), g_digits_584) > NormalizeDouble(Ask +
                   (
    trailingstop trailingstep) * gd_524g_digits_584) || OrderStopLoss() == 0.0) {
                   
    OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Ask trailingstop gd_524g_digits_584), OrderTakeProfit(), 0Red);
                   return (
    0);
                }
             }
          }
       }
       if (
    trailingstop 0.0 && maxtrades == 1) {
          
    g_count_616 0;
          
    g_count_608 0;
          
    g_count_612 0;
          for (
    g_pos_628 0g_pos_628 g_ord_total_600g_pos_628++) {
             
    OrderSelect(g_pos_628SELECT_BY_POSMODE_TRADES);
             if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell && OrderCloseTime() == 0) {
                
    g_count_616++;
                
    g_ord_profit_556 OrderProfit();
                if (
    OrderType() == OP_BUY) {
                   
    g_ticket_500 OrderTicket();
                   
    g_ord_open_price_452 OrderOpenPrice();
                   
    g_datetime_436 OrderOpenTime();
                   
    g_ord_stoploss_468 OrderStopLoss();
                   
    g_ord_takeprofit_484 OrderTakeProfit();
                   
    gi_unused_620 OrderProfit();
                   
    g_count_608++;
                }
                if (
    OrderType() == OP_SELL) {
                   
    g_ticket_504 OrderTicket();
                   
    g_ord_open_price_460 OrderOpenPrice();
                   
    g_datetime_440 OrderOpenTime();
                   
    g_ord_stoploss_476 OrderStopLoss();
                   
    g_ord_takeprofit_492 OrderTakeProfit();
                   
    gi_unused_624 OrderProfit();
                   
    g_count_612++;
                }
             }
          }
          if (
    NormalizeDouble(g_ord_takeprofit_484 Bidg_digits_584) > trailingstart gd_524 && g_count_608 0OrderModify(g_ticket_500g_ord_open_price_452g_ord_stoploss_468NormalizeDouble(g_ord_takeprofit_484 trailingstop gd_524g_digits_584), 0Blue);
          if (
    NormalizeDouble(Bid g_ord_takeprofit_492g_digits_584) > trailingstart gd_524 && g_count_612 0OrderModify(g_ticket_504g_ord_open_price_460g_ord_stoploss_476NormalizeDouble(g_ord_takeprofit_492 trailingstop gd_524g_digits_584), 0Red);
       }
       if (
    basketpercent) {
          
    ld_8 profit * (AccountBalance() / 100.0);
          
    ld_16 loss * (AccountBalance() / 100.0);
          
    gd_444 AccountEquity() - AccountBalance();
          if (
    gd_444 >= ld_8 || gd_444 <= (-1.0 ld_16)) {
             for (
    g_pos_564 g_ord_total_600 1g_pos_564 >= 0g_pos_564--) {
                
    OrderSelect(g_pos_564SELECT_BY_POSMODE_TRADES);
                if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy && OrderType() == OP_BUYOrderClose(OrderTicket(), OrderLots(), Bidslippage gd_524);
                if (
    OrderSymbol() == Symbol() && OrderMagicNumber() == magicsell && OrderType() == OP_SELLOrderClose(OrderTicket(), OrderLots(), Askslippage gd_524);
             }
             return (
    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