النتائج 1 إلى 2 من 2
  1. #1
    الصورة الرمزية majmoaaribh
    majmoaaribh غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2017
    الإقامة
    المغرب
    المشاركات
    17

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

    بسم الله الرحمان الرحيم
    السلام عليكم ورحمة الله وبركاته
    أريد إكسبيرت مشابه للإكسبيرت المرفق أو تصحيح الأخطاء الموجودة في الإكسبيرت المرفق وأعتقد لا يمكن تصحيحها لأنه مغلق الكود لذلك أفضل عمل إكسبيرت جديد
    الفكرة :
    بكل بساطة نضام سوبلكس المعروف يعني بيع شراء بيع شراء ...........
    لكن أريد الهذف والستوب واللوت متدرج Level بحيث أعدل القيم على راحتي يعني بكل بساطة إكسبيرت سوبلكس مفصل كل صفقة لها هذف وستوب ولوت خاص بها
    ما هي الأخطاء الموجودة في الإكسبيرت المرفق ؟
    عند تفعيل خيار trailingstopzero يظهر خطأ في أحد الصفقات وهذا يزعج البروكر ويطالب بغلق الإكسبيرت
    لو كان ممكن عمل إكسبيرت مفتوح الكود وبكون واضح وبسيط حتى أستطيع أن أضيف عليه أو أعدل فيه في المستقبل لأني ناوي أضيف عليه خصائص أكثر
    ما هو خيار trailingstopzero ؟
    هو عبارة عن خيار TRUE/FALSE عند تفعيله يتحرك الستوب كلما تحرك السعر نحو الهذف ويبقى محافظا على عدد نقط الستوب لوز يعني بكل بساطة هو trailingstop يتبع السعر من نقطته يعني لا يقفز لنقطة الدخول كتتبع الربح العادي لااااااااااااااااااااا
    بل يبدأ يشتغل من مكانه ويطارد السعر من مكانه دون إنتظار ولا يقفز لنقطة الدخول ممكن تشغل الخيار حتى تفهم طريقة عمله لكن في أحد الصفقات يحدث فيها مشكل ويظهر خطأ 130
    كمساعدة مني هذه مصفوفة اللوتات ولكن لا أتوفر على مصفوفة الهذف الستوب
    المتغيرات الخارجية
    كود PHP:
    input double Lots  =0.05
                 
    Lots_1=0.1
                 
    Lots_2=0.14
                 
    Lots_3=0.18
                 
    Lots_4=0.22
                 
    Lots_5=0.26
                 
    Lots_6=0.33
                 
    Lots_7=0.44
                 
    Lots_8=0.58
                 
    Lots_9=0.78
                 
    Lots_10=1.04
                 
    Lots_11=1.38
                 
    Lots_12=1.45
                 
    Lots_13=1.53
                 
    Lots_14=1.64
                 
    Lots_15=1.78
                 
    Lots_16=2.04
                 
    Lots_17=2.38
                 
    Lots_18=2.45
                 
    Lots_19=2.53
                 
    Lots_20=2.64
    ثم تعريف المصفوفة خارج الدوال
    كود PHP:
    double chain[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; 
    ثم دالة فرعية لمعرفة كومنت آخر صفقة مغلقة وتحويله إلى عدد صحيح int كالتالي :
    كود PHP:
    int LEVEL() 
    {  
     
    int c;  
     for(
    int i=OrdersHistoryTotal()-1;i>=0;i--) 
     { 
      
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); 
      
    comment=OrderComment();  
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo)   
      {               
       
    StringReplace(comment,"[sl]","");                          
       
    c=StrToInteger(comment);  
       return(
    c); 
      }   
     }  
     return(
    c);  

    ثم الشروط بدالتي البيع والشراء كالتالي :
    كود PHP:
    void SellOrder()  
    {  
     
    chain[1]=Lots_1;  
     
    chain[2]=Lots_2;  
     
    chain[3]=Lots_3;  
     
    chain[4]=Lots_4;  
     
    chain[5]=Lots_5;  
     
    chain[6]=Lots_6;  
     
    chain[7]=Lots_7;  
     
    chain[8]=Lots_8;  
     
    chain[9]=Lots_9
     
    chain[10]=Lots_10;  
     
    chain[11]=Lots_11;  
     
    chain[12]=Lots_12;  
     
    chain[13]=Lots_13;  
     
    chain[14]=Lots_14;  
     
    chain[15]=Lots_15;  
     
    chain[16]=Lots_16;  
     
    chain[17]=Lots_17;  
     
    chain[18]=Lots_18;  
     
    chain[19]=Lots_19;  
     
    chain[20]=Lots_20
     
    double NewLots,TP,SL;  
     
    string comment
      
     if(
    LastOrder("Profit")<0
     { 
      
    NewLots=chain[LEVEL()+1]; 
      
    comment=DoubleToStr(LEVEL()+1,0); 
     } 
     if(
    LastOrder("Profit")>=0){NewLots=Lots;comment="0";} 
     if(
    Stoploss!=0){SL=Bid+Stoploss*point;}else SL=0;  
     if(
    Takeprofit!=0){TP=Bid-Takeprofit*point;}else TP=0;  
     
    tk=OrderSend(Symbol(),OP_SELL,NewLots,NormalizeDouble(Bid,Digits),5*Q,SL,TP,comment,MagicNo,0,Red);  
    }   

    void BuyOrder()  
    {  
     
    chain[1]=Lots_1;  
     
    chain[2]=Lots_2;  
     
    chain[3]=Lots_3;  
     
    chain[4]=Lots_4;  
     
    chain[5]=Lots_5;  
     
    chain[6]=Lots_6;  
     
    chain[7]=Lots_7;  
     
    chain[8]=Lots_8;  
     
    chain[9]=Lots_9
     
    chain[10]=Lots_10;  
     
    chain[11]=Lots_11;  
     
    chain[12]=Lots_12;  
     
    chain[13]=Lots_13;  
     
    chain[14]=Lots_14;  
     
    chain[15]=Lots_15;  
     
    chain[16]=Lots_16;  
     
    chain[17]=Lots_17;  
     
    chain[18]=Lots_18;  
     
    chain[19]=Lots_19;  
     
    chain[20]=Lots_20
     
    double NewLots,TP,SL;  
     
    string comment
      
     if(
    LastOrder("Profit")<0
     { 
      
    NewLots=chain[LEVEL()+1]; 
      
    comment=DoubleToStr(LEVEL()+1,0); 
     } 
     if(
    LastOrder("Profit")>=0){NewLots=Lots;comment="0";} 
     if(
    Stoploss!=0){SL=Ask-Stoploss*point;}else SL=0;  
     if(
    Takeprofit!=0){TP=Ask+Takeprofit*point;}else TP=0;  
     
    tk=OrderSend(Symbol(),OP_BUY,NewLots,NormalizeDouble(Ask,Digits),5*Q,SL,TP,comment,MagicNo,0,Blue);  

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

  2. #2
    الصورة الرمزية majmoaaribh
    majmoaaribh غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2017
    الإقامة
    المغرب
    المشاركات
    17

    افتراضي

    هل من مساعد


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