صفحة 257 من 689 الأولىالأولى ... 157207247251252253254255256257258259260261262263267307357 ... الأخيرةالأخيرة
النتائج 3,841 إلى 3,855 من 10335
  1. #3841
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

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

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


    ياريت يا أستاذ أسامة إجابة على السؤال ده
    شكرا أستاذ أسامة
    المشكلة طلعت من كود تاني في الإكسبيرت

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

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

    السلام عليكم
    في بعض الأحيان لا يستطيع الاكسبيرت عمل OrderModify بسبب تهنج سيرفر الشركة ECN أو بطء النت ... ثم تبقى الصفقة بدون هدف وستوب!!!
    كود PHP:
        int ticket = -1;
        if (
    ECNBroker)
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippage00"Kira-h"MagicNo0Blue);
        else
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageSLTP"Kira-h"MagicNo0Blue);
        if (
    ticket > -1)
        {
            if (
    ECNBroker)
            {
                
    OrderSelect(ticketSELECT_BY_TICKET);
                
    bool ret OrderModify(OrderTicket(), OrderOpenPrice(), SLTP0Blue);
                if (
    ret == false)
                Print(
    "OrderModify() error - "ErrorDescription(GetLastError()));
            }
                
        }
        else
        {
            Print(
    "OrderSend() error - "ErrorDescription(GetLastError()));
        } 
    السؤال كيف يمكن أن نجعل الاكسبيرت يكرر أمر OrderModify إلى أن يوضع الهدف والستوب بالصفقة
    عملت حل مؤقت حتى الان بإخفاء الهدف والستوب عن البروكر لكن نتيجتها غير دقيقة وربما لن يتفعل أمر الاغلاق الأوتوماتيكي... وأقع في نفس الفخ

    تحياتي إخواني
    آخر تعديل بواسطة kira-h ، 14-05-2013 الساعة 09:04 PM
    توقيع العضو
    متداول فوركس، ومبرمج mql

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    السلام عليكم
    في بعض الأحيان لا يستطيع الاكسبيرت عمل OrderModify بسبب تهنج سيرفر الشركة ECN أو بطء النت ... ثم تبقى الصفقة بدون هدف وستوب!!!
    كود PHP:
        int ticket = -1;
        if (
    ECNBroker)
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippage00"Kira-h"MagicNo0Blue);
        else
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageSLTP"Kira-h"MagicNo0Blue);
        if (
    ticket > -1)
        {
            if (
    ECNBroker)
            {
                
    OrderSelect(ticketSELECT_BY_TICKET);
                
    bool ret OrderModify(OrderTicket(), OrderOpenPrice(), SLTP0Blue);
                if (
    ret == false)
                Print(
    "OrderModify() error - "ErrorDescription(GetLastError()));
            }
                
        }
        else
        {
            Print(
    "OrderSend() error - "ErrorDescription(GetLastError()));
        } 
    السؤال كيف يمكن أن نجعل الاكسبيرت يكرر أمر OrderModify إلى أن يوضع الهدف والستوب بالصفقة
    عملت حل مؤقت حتى الان بإخفاء الهدف والستوب عن البروكر لكن نتيجتها غير دقيقة وربما لن يتفعل أمر الاغلاق الأوتوماتيكي... وأقع في نفس الفخ

    تحياتي إخواني
    يمكنك مثلا تعديلها بالشكل ده
    كود PHP:

    int Tries
    ;
      
    int ticket = -1;
      
        if (
    ECNBroker){
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippage00"Kira-h"MagicNo0Blue);
        if(
    ticket>-&& Tries<10){
        
    OrderSelect(ticketSELECT_BY_TICKET);
                
    OrderModify(ticketOrderOpenPrice(), SLTP0Blue);
                
    Tries++;Sleep(1000); 
           }
        }
        else
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageSLTP"Kira-h"MagicNo0Blue); 
    بحيث يحاول 10 مرات مع إنتظار 1 ثانية بين كل محاولة والمحاولة التالية
    -----------------
    وحاول تتأكد أيضا من أنه لايوجد اخطاء في التيك بروفت أو الإستوب لوز
    يعني لو الإستوب أو التيك بروفت إللي إنت مستخدمه صغير تأكد من المنصة تقبله أم لا

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

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

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


    يمكنك مثلا تعديلها بالشكل ده
    كود PHP:

    int Tries
    ;
      
    int ticket = -1;
      
        if (
    ECNBroker){
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippage00"Kira-h"MagicNo0Blue);
        if(
    ticket>-&& Tries<10){
        
    OrderSelect(ticketSELECT_BY_TICKET);
                
    OrderModify(ticketOrderOpenPrice(), SLTP0Blue);
                
    Tries++;Sleep(1000); 
           }
        }
        else
        
    ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageSLTP"Kira-h"MagicNo0Blue); 
    بحيث يحاول 10 مرات مع إنتظار 1 ثانية بين كل محاولة والمحاولة التالية
    -----------------
    وحاول تتأكد أيضا من أنه لايوجد اخطاء في التيك بروفت أو الإستوب لوز
    يعني لو الإستوب أو التيك بروفت إللي إنت مستخدمه صغير تأكد من المنصة تقبله أم لا
    جزاك الله خيرا أستاذ يوسف
    تحياتي
    توقيع العضو
    متداول فوركس، ومبرمج mql

  5. #3845
    الصورة الرمزية fxsmartsniper
    fxsmartsniper غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    مصر
    المشاركات
    556

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

    السلام عليكم
    هلا مستر دولار
    مرفق سكربت الاخ وضاح عطار لاصطياد اي تغير سريع 2 بيب والدخول عكس الاتجاة لقنص ا بيب(مع حفظ الحقوق له)
    نريد عمل بعض التغييرات الصغيرة له لقنص اي خبر علي اي عملة بنفس السرعة والخروج بنفس السرعة الفائقة وهي ما تميز هذا الاسكربت والذي يعمل كاكسبرت علي العمله الموضوع عليها
    نريد كود برمجي ل Trade buy & trade sell ولكن ليس 2 بيب (كما بالاسكبرت)ستكون الدالة الخاصة بهم عبارة عن سرعة تحرك السعر بمعني لو وضع كل منهما مثلا5 سيكون تحرك السعر عبارة عن 5 بيب في الثانية (اكبر من او يساوي)وسيكون الدخول في نفس الاتجاة (لقتص الخبر او تدخل الكبار) وسيتم وضع شرط جديد هو شرط الخروج step Close trade لو وضع 5 (اقل من 5 بيب في الثانية ) يتم الخروج من الصفقة
    المتغيرات الخارجية كما هي
    مع تغيير دالتي الدخول (لها علاقة بالزمن)
    واضافة دالة الخروج

    شكرا مستر دولار
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة fxsmartsniper ، 15-05-2013 الساعة 12:30 AM
    توقيع العضو
    استغفر الله العظيم عدد ما كان وعددما سيكون وعدد الحركات والسكون

  6. #3846
    الصورة الرمزية bodisaudi
    bodisaudi غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2011
    الإقامة
    مصر
    المشاركات
    61

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة bodisaudi مشاهدة المشاركة
    //+------------------------------------------------------------------+
    //|Vortex Indicator.mq4 |
    //|From the January 2010 issue of Technical Analysis of Stocks & |
    //|Commodities |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2009 under Creative Commons BY-SA License by Neil D. Rosenthal"
    #property link "http://creativecommons.org/licenses/by-sa/3.0/"

    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Green
    #property indicator_color2 Red

    //---- Input parameters
    extern int VI_Length=14;

    //---- Buffers
    double PlusVI[]; //VI+ : + Vortex Indicator buffer
    double MinusVI[]; //VI- : - Vortex Indicator buffer
    double PlusVM[]; //VM+ : + Vortex Movement buffer
    double MinusVM[]; //VM- : - Vorext Movement buffer
    double SumPlusVM[]; //Sum of VI_Length PlusVM values
    double SumMinusVM[]; //Sum of VI_Length MinusVM values
    double SumTR[]; //True Range buffer
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //----
    IndicatorBuffers(7);
    IndicatorDigits(Digits);
    //---- Set visible buffer properties
    SetIndexBuffer(0,PlusVI);
    SetIndexBuffer(1,MinusVI);
    SetIndexStyle(0,DRAW_LINE);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexLabel(0,"PlusVI(" + VI_Length + ")");
    SetIndexLabel(1,"MinusVI(" + VI_Length + ")");
    SetIndexDrawBegin(0,VI_Length);
    SetIndexDrawBegin(1,VI_Length);
    //---- Set indices of caching buffers
    SetIndexBuffer(2,PlusVM);
    SetIndexBuffer(3,MinusVM);
    SetIndexBuffer(4,SumPlusVM);
    SetIndexBuffer(5,SumMinusVM);
    SetIndexBuffer(6,SumTR);
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int Limit;
    int CountedBars = IndicatorCounted();
    //---- Check for possible errors
    if(CountedBars < 0) return(-1);
    //---- Last counted bar will be recounted
    if(CountedBars > 0) CountedBars--;
    Limit = Bars - CountedBars;
    //---- Clear caching buffers
    for(int i = 0; i < Limit; i++)
    {
    SumPlusVM[i] = 0;
    SumMinusVM[i] = 0;
    SumTR[i]= 0;
    }
    //---- Store the values of PlusVM and MinusVM
    for(i = 0; i < Limit; i++)
    {
    //PlusVM = |Today's High - Yesterday's Low|
    PlusVM[i] = MathAbs(High[i] - Low[i + 1]);
    //MinusVM = |Today's Low - Yesterday's High|
    MinusVM[i] = MathAbs(Low[i] - High[i +1]);
    }
    //---- Sum VI_Length values of PlusVM, MinusVM and the True Range
    for(i = 0; i < Limit; i++)
    {
    for(int j = 0; j <= VI_Length - 1; j++)
    {
    SumPlusVM[i] += PlusVM[i + j];
    SumMinusVM[i] += MinusVM[i + j];
    SumTR[i] += iATR(NULL,0,1,i + j); //Sum VI_Length values of the True Range by using a 1-period ATR
    }
    }
    //---- Draw the indicator
    for(i = 0; i < Limit; i++)
    {
    PlusVI[i] = SumPlusVM[i] / SumTR[i];
    MinusVI[i] = SumMinusVM[i] / SumTR[i];
    }
    //----
    return(0);
    }
    //+------------------------------------------------------------------+


    بعد إذن حضرتك :-
    أريد أن أضع 4 متوسطات متحركة لـلقيمة الموجبه
    وأن أضع 4 متوسطات متحركة لــلقيمة السالبة
    وإذا كان أمكن أن أتحكم في أن تكون المتوسطات "بسيطة" أو "أسية"

    شكراً مقدما

    تحيـــــــــــــاتي
    فضلاً لا أمراً
    التكرم بالاطلاع...

  7. #3847
    الصورة الرمزية abou fares
    abou fares  غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2012
    الإقامة
    السعودية
    المشاركات
    275

    افتراضي

    السلام عليكم

    كيف يمكنني ربط ملف اكسيل بالمنصة لتاخذ منها بعض البيانات مثل الهاي واللو......

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

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

    السلام عليكم
    -------------

    أستاذ أسامة حاولت أعمل دالة للبريك إيفن ولكنها تكون على أساس الربح بالدولار وليس النقط
    بمعني لو وصل الربح لـ 200 دولار ( لمجمل عقود البيع والشراء) يضع الإكسبيرت الإستوب لجميع العمليات عند النقطة التي تحقق ربح 50 دولار
    ---------------------------------

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

    مرفق الإكسبيرت
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: mq4 test2.mq4‏ (6.1 كيلوبايت, المشاهدات 65)
    آخر تعديل بواسطة xcv114 ، 16-05-2013 الساعة 08:51 PM

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة fxsmartsniper مشاهدة المشاركة
    السلام عليكم
    هلا مستر دولار
    مرفق سكربت الاخ وضاح عطار لاصطياد اي تغير سريع 2 بيب والدخول عكس الاتجاة لقنص ا بيب(مع حفظ الحقوق له)
    نريد عمل بعض التغييرات الصغيرة له لقنص اي خبر علي اي عملة بنفس السرعة والخروج بنفس السرعة الفائقة وهي ما تميز هذا الاسكربت والذي يعمل كاكسبرت علي العمله الموضوع عليها
    نريد كود برمجي ل Trade buy & trade sell ولكن ليس 2 بيب (كما بالاسكبرت)ستكون الدالة الخاصة بهم عبارة عن سرعة تحرك السعر بمعني لو وضع كل منهما مثلا5 سيكون تحرك السعر عبارة عن 5 بيب في الثانية (اكبر من او يساوي)وسيكون الدخول في نفس الاتجاة (لقتص الخبر او تدخل الكبار) وسيتم وضع شرط جديد هو شرط الخروج step Close trade لو وضع 5 (اقل من 5 بيب في الثانية ) يتم الخروج من الصفقة
    المتغيرات الخارجية كما هي
    مع تغيير دالتي الدخول (لها علاقة بالزمن)
    واضافة دالة الخروج

    شكرا مستر دولار
    مثلا
    كود PHP:
    static int PipsUp,PipsDn;
    static 
    int LastPrice=Bid;
    static 
    datetime LastTime=TimeCurrent();
    if(
    LastPrice>Bid)
    {
     
    PipsUp++;
     
    PipsDn0=0;
     
    LastPrice=Bid;
    }
    if(
    LastPrice<Bid)
    {
     
    PipsUp=0;
     
    PipsDn++;
     
    LastPrice=Bid;
    }
    bool BuySignal,SellSignal;
    if(
    TimeCurrent()-LastTime<2)
    {
     if(
    PipsUP>=5)
     {
      
    BuySignal=true;
      
    PipsUp=0;
      
    LastTime=TimeCurrent();
     }
     if(
    PipsDn>=5)
     {
      
    SellSignal=true;
      
    PipsDn=0;
      
    LastTime=TimeCurrent();
     }
    }
    else 
     {
      
    LastTime=TimeCurrent();
      
    PipsUp=0;
      
    PipsDn=0;
     }
     
    if(
    BuySignal)
    {
     
    //buy order
    }
    if(
    SellSignal)
    {
     
    //sell order

    في هذا الكود جعلته سيضع قيمة مبدئيه للتوقيت الحالي وعدد نقاط التحرك = 0 عند تفعيل الإكسبرت ثم يبدأ الحساب
    إذا كلما تحرك السعر لأعلى يحسب النقطه ثم إذا كانت الحركه أكبر من أو تساوي 5 نقاط والفرق بين آخر توقيت وبين التوقيت الحالي أقل من 2 ثانيه أي 1 ثانيه أو أقل يتم فتح الصفقه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  10. #3850
    الصورة الرمزية dentist_hussein
    dentist_hussein غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

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

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

    قمت بعمل داله تحسب عدد الصفقات المغلقه
    كود PHP:
    int closedorderno(){
     
    int cnt=0;
       for(
    int i =OrdersHistoryTotal();i>=0;i--){
         if(  
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)  ){
           if(
    OrderSymbol()==Symbol()&& MagicNumber==OrderMagicNumber() ){
             
    cnt++;
             
           }
         }
       }
      
        return(
    cnt);
       
      } 
    وداله تعود بكلمة ربح أو خساره
    كود PHP:
    string last()
    {
      
      for(
    int i=OrdersHistoryTotal();i>=0;i--)
        {
        
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
          if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
           {
             
             
             
             if(
    OrderType()==OP_BUY   && OrderClosePrice()>=OrderOpenPrice()  ) return("profit");
             if(
    OrderType()==OP_BUY   && OrderClosePrice()<=OrderOpenPrice()  ) return("loss");
           
      
           
             if(
    OrderType()==OP_SELL  && OrderClosePrice()<=OrderOpenPrice()&& Time0!=Time[0]) return("profit");
             if(
    OrderType()==OP_SELL  && OrderClosePrice()>=OrderOpenPrice()&& Time0!=Time[0]) return("loss");
            
           }
        
        }

    return(
    "none");

    و داله تحسب اللوت بناءا على عدد الصفقات المغلقه
    كود PHP:
    double new(){
     
    double newLot;
        
    double A=closedorderno();
          
          
           if(
    A==1)newLot=Lot2;
           if(
    A==2)newLot=Lot3;
           if(
    A==3)newLot=Lot4;
           if(
    A==4)newLot=Lot5;
           if(
    A==5)newLot=Lot6;
           if(
    A==6)newLot=Lot7;
           if(
    A==7)newLot=Lot8;
           if(
    A==8)newLot=Lot9;
           if(
    A==9)newLot=Lot10;
           if(
    A==10)newLot=Lot11;
           if(
    A==11)newLot=Lot12;
           if(
    A==12)newLot=Lot13;
           if(
    A==13)newLot=Lot14;
           if(
    A==14)newLot=Lot15;
         
          
       return(
    newLot);
       } 
    ثم وضعت بالشروط قبل البيع و الشراء الكود :
    كود PHP:
    if (last()=="loss"){Lots=new();}else if(last()=="profit" || (last()!="profit" && last()!="loss")  ) {Lots=Lot1;} 
    ولكن يحدث اخطاء في حساب اللوت لان دالة حساب عدد الصفقات المغلقه تبحث في كل الصفقات واريدها ان تبحث من جديد بعد كل ربح .
    انا وجدت حلا بتغيير الماجيك بعد كل ربح
    كود PHP:
    if (last()=="profit")MagicNumber++ ; 
    ولكن اريد حلا آخر بعد إذنك ..
    و جزاك الله خيرا .
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

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

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

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

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

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

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

    كيف يمكنني ربط ملف اكسيل بالمنصة لتاخذ منها بعض البيانات مثل الهاي واللو......
    وعليكم السلام ورحمة الله وبركاته
    أدخل على مكان تنصيب الميتاتريدر سوف تجلد ملف أكسل بإسم DDE-Sample سوف تجد به مثال لكيفية إستدعاء الهاي واللو وسعر الشراء وسعر البيع والتوقيت
    مثلا سعر الهاي يكون
    كود PHP:
    =MT4|HIGH!EURUSD 
    وسعر اللو
    كود PHP:
    =MT4|LOW!EURUSD 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

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

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

    أستاذ أسامة حاولت أعمل دالة للبريك إيفن ولكنها تكون على أساس الربح بالدولار وليس النقط
    بمعني لو وصل الربح لـ 200 دولار ( لمجمل عقود البيع والشراء) يضع الإكسبيرت الإستوب لجميع العمليات عند النقطة التي تحقق ربح 50 دولار
    ---------------------------------

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

    مرفق الإكسبيرت
    وعليكم السلام ورحمة الله وبركاته
    دائما إذا كنت تستخدم الحلقه والداله OrderSelect للبحث عن صفقات معينه وإذا كان باقي الكود طويل
    قم بتعريف متغيرات تضع فيها بيانات الصفقه مثل
    كود PHP:
      OrderSelect(t,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()== Symbol() && OrderMagicNumber()==MagicNumber){
               
    int type=OrderType();double openprice=OrderOpenPrice();double takeprofit=OrderTakeProfit(); 
    ثم تستخدم هذه المتغيرات لاحقا في باقي الكود
    هذه ستحل المشكله

    أيضا لديك خطأ في باقي الكود 130 فمثلا في أحد المرات كان البريك إيفن 1.6133
    وعندما وصل السعر أقل من البريك إيفن المفروض سينفذ الشرط
    كود PHP:
           if(type==OP_SELL ){
                    
    OrderModify(OrderTicket(),openprice,new,takeprofit,0,Blue);} 
    والصفقه بيع فبالتأكيد قيمة new ستكون خاطئه لأنك جعلتها
    كود PHP:
     new=NormalizeDouble(BREAKEVEN(),digits)-TrailStep
    أي أن الأستوب سيكون أقل من السعر الحالي لأمر البيع
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    دائما إذا كنت تستخدم الحلقه والداله OrderSelect للبحث عن صفقات معينه وإذا كان باقي الكود طويل
    قم بتعريف متغيرات تضع فيها بيانات الصفقه مثل
    كود PHP:
      OrderSelect(t,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()== Symbol() && OrderMagicNumber()==MagicNumber){
               
    int type=OrderType();double openprice=OrderOpenPrice();double takeprofit=OrderTakeProfit(); 
    ثم تستخدم هذه المتغيرات لاحقا في باقي الكود
    هذه ستحل المشكله

    أيضا لديك خطأ في باقي الكود 130 فمثلا في أحد المرات كان البريك إيفن 1.6133
    وعندما وصل السعر أقل من البريك إيفن المفروض سينفذ الشرط
    كود PHP:
           if(type==OP_SELL ){
                    
    OrderModify(OrderTicket(),openprice,new,takeprofit,0,Blue);} 
    والصفقه بيع فبالتأكيد قيمة new ستكون خاطئه لأنك جعلتها
    كود PHP:
     new=NormalizeDouble(BREAKEVEN(),digits)-TrailStep
    أي أن الأستوب سيكون أقل من السعر الحالي لأمر البيع
    الله يكرمك
    الأن يعمل معي بطريقة صحيحة
    -----------------
    بالنسبة للجزئية الأخيرة ( الخطأ قد يكون بسبب الأعدادات الإفتراضية للمتغيرات الخارجية وهي ليست صحيحة )
    ----------
    كود PHP:
    Profit_ByLots=200
    If_Lots
    =0.5
    TraillingPercent
    =0.25 
    الإعدادت دي المقصود بيها الربح يكون 200 دولار لكل 5 لوتات ميني
    على أنا يقوم الإكسبيرت بتحديد المجموع الكلي للربح بالدولار حسب المعادلة
    كود PHP:
    USDProfit_MicroL=(Profit_ByLots/If_Lots)/100
    ودي فايدتها إن الإكسبيرت يزيد من مسافة التيك بروفت حسب عدد العقود ( أعتقد هتكون مفيدة في حالة المضاعفات ) وبالتالي الربح يكون 200 دولار في حالة 5 عقود ويكون 400 في حالة 10 عقود مثلا
    ---------------------------------
    -------
    TraillingPercent=0.25
    ودي عندما يصل الربح إلى 200 دولار سيضع الإستوب أو التيك بروفت عند النقطة التي تحقق 50 دولار

    ووضعت شرط في إستارت
    كود PHP:
    if(profit()> USD_ProfitTarget)UsdTrailling(); 
    وبالتالي لن يذهب للدالة إلى في حالة الربح أكبر من 200 دولار ( أي سيكون أكبر من بريك إيفن & نيو ) حيث بريك إيفن هي التعادل 0 ونيو ستكون حسب المثال عند 50 دولار
    ----------
    أكيد الدالة مازالت محتاجة بعض الإضافات ولكن كنت في إنتظار أنا أرى أن الأكواد كلها تعمل بشكل صحيح قبل البدء في التدقيق
    -------------------------------

    بس بجد يا أستاذ أسامة لايوجد كلام يوفيك حقك
    بارك الله فيك

  15. #3855
    الصورة الرمزية bodisaudi
    bodisaudi غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2011
    الإقامة
    مصر
    المشاركات
    61

    افتراضي

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

    وآسف لإزعاج حضرتكم

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

  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