صفحة 1 من 4 1234 الأخيرةالأخيرة
النتائج 1 إلى 15 من 54
  1. #1
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي اشكالية في .. اكسبيرت تنفيذ بحسب خط على الشارت

    السلام عليكم

    هذا الاكسبيرت يقوم بانشاء اوامر ماركت

    حسب خط اضعه له

    انشئ خطين

    الخط الأول لفتح الصفقة ... الخط الثاني للهدف

    اسم خط الصفقة ( شراء ) :

    eBUY_Line123_Open_80

    اسم خط الهدف

    eBUY_Line123_hadf_80


    ( بيع ) SELL_Line123_Open_80 SELL_Line123_hadf_80


    لا بد أن يكون آخر رقم متطابق بين فتح الصفقة وهدفها .. فيمكن انشاء عدة صفقات بأهدافها .. مثلا عن طريق مؤشر ينشي الخطوط




    الاشكالية :

    انه ينشئ اكثر من صفقة قد تصل ل6 صفقات وبأسعار مختلفة وحاولت ان اجعل البحث عن الصفقات المفتوحة في اطار السبريد مضاعفا (5 ن تقريبا )
    ووضعت سليب 10 ثواني لكنه لم ينفذه


    ايضا عندما يبتعد عن الخط ويحقق هدفه .. وثم يعود اليه ينشئ صفقات جديدة

    طبعا لا استطيع حذف الخط بعد انشاء الصفقة .. لأنه ينشأ من مؤشر آخر



    http://s000.tinyupload.com/index.php...78092084435262






    آخر تعديل بواسطة أبو نـاصر ، 18-02-2016 الساعة 02:55 PM

  2. #2
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    وأحيانا لا ينفذ اصلا


    ----

    سأضيف اليه بعد حل الاشكالية :

    اغلاق الصفقة عند وصول الBid لخط الهدف

    اوامر الشراء تكون باي لميت على الخط بعد تجاوز ة بنقطين (الفريز زون)

  3. #3
    الصورة الرمزية awran5
    awran5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2008
    الإقامة
    مصر
    المشاركات
    106

    افتراضي

    اخى ابو ناصر .. لو ترفق المؤشر الذي ينشئ الخطوط سيكون الامر اسهل ..

    عموماً لدي بعض الملاحظات السريعة على الكود:

    - التحويل من 4 الى 5 ارقام

    كود PHP:
    Spread=(MarketInfo(Symbol(),MODE_SPREAD)/P)*Point
    هذا المعادلة خاطئة ودائما ترجع القيمة صفر

    الصحيح:

    كود PHP:
    Spread=(MarketInfo(Symbol(),MODE_SPREAD))/
    نفس الشيئ هنا:

    كود PHP:
    double Pip=(T_Line-T_Line_hadaf)/Point/P
    الصحيح:

    كود PHP:
    double Pip=(T_Line-T_Line_hadaf)/P
    - اذا كان البروكر لديك 5 ارقام، فأنت بحاجة الى تحويل ال Takeprofit, Stoploss, Slippage
    مثلا وضعت في خانة التيك بروفت قيمة T_Line_hadaf لكن بدون تحويل P* كما لم تحول قيمة ال Slippage

    - لست بحاجة لاستخدام وظيفة "NormalizeDouble" لانها قد تسبب لك اخطاء

    - لست بحاجة لاستخدام وظيفة Sleep والا يجب عليك استخدام "RefreshRates" حتى لا يحدث خطأ فروق بين الاسعار
    توقيع العضو
    سُبْحَانَكَ لاَ عِلْمَ لَنَا إِلاَّ مَا عَلَّمْتَنَا إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

  4. #4
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    شاكرا تشريفك

    ووقتك الذي منحنتني

    فعلا المنصة خماسية

    - سبب استخدام "NormalizeDouble" لأنه احيانا تأتي ارقام من 9 خانات بعد الفاصلة

    - استخدمت الآن (*P) مع التيك بروفيت والسليباج كما تفضلت

    كود PHP:

      r 
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3*P,0,T_Line_hadaf*P,Oo,Magicnumber,0,Red); 
    فأتى الخطأ التالي


    2016.02.18 22:14:56.950 '91479137': order sell 0.01 USDCADpro opening at market sl: 0.00000 tp: 13.71680 failed [Invalid S/L or T/P]


    ----

    هل كود البحث عن الصفقات فيه اشكالية ؟؟

  5. #5
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    في النسخة التالية هو ينشئ خطين للبيع والشراء


    اضفت وضع بريك ايفن +2 ن .. للصفقة بعد وصوله ل50% من المسافة الى الهدف

    ينشئ باي لميت بعد تجاوز الخط مباشرة (مثلا في اختراق القمم فلا ينفذ على السبريد قبل الاختراق)


    اضفت مؤقتا حفظ موقع الخط وعدم التنفيذ مرة أخرى عليه .. لكنه ليس عملي ان زادت مواقع الاوامر

    كود PHP:
      if ( T_Old_entry!=  T_Line){ 


    كود السبريد لعله انسب من السابق
    كود PHP:
            double mydigit,mypoint;
          if((
    Digits==5) || (Digits==3)) mydigit=Digits-1; else mydigit=Digits;
          if((
    Point==0.001) || (Point==0.00001)) mypoint=Point*10; else mypoint=Point;
          
    Spread = (Ask Bid)/mypoint

    نسيت الغي السليب

    http://s000.tinyupload.com/index.php...11469797760449

  6. #6
    الصورة الرمزية awran5
    awran5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2008
    الإقامة
    مصر
    المشاركات
    106

    افتراضي

    العفو اخي ابو ناصر .. دائماً في الخدمة ان شاء الله

    شوف يا اخي ... هناك فرق بين Slippage و Takeprofit or Stoploss من حيث التحويل

    راجع الكود التالي لفهم الفارق، هذا الكود يعمل على اي بروكر كما يعمل على العملات والمعادن:

    كود PHP:
    // 4/5 digit brokers.
    int     pips2points;    // For slippage: 3 pips, 3=points, 30=points
    double  pips2double;    // For Takeprofit & Stoploss: 15 pips, 0.015, 0.0150
    int     Digitspips;     // DoubleToStr(double/pips2double, Digitspips)
     
       // JPY=3/EURUSD=5                                   
       
    if (Digits == 1)
       {      
          
    pips2double Point*10
          
    pips2points 10
          
    Digitspips 1;
       } 
       else 
       {    
          
    pips2double Point
          
    pips2points 1
          
    Digitspips 0
       }
     
       
    // OrderSend(... Slippage_Value * pips2points, Bid - StopLoss_Value * pips2double 
    - يجب عليك وضع الكود السابق في وظيفة OnInit او سابقاً (init) .. وليس في وظيفة (start) لان ذلك سيجعل عملية التحويل تحدث كل تكة للسعر

    - خطأ وضع وظيفة (start) تحت وظيفة (init)

    - لا تنسي تحويل المتغيرات عند انشاء الخطوط .. مثال
    كود PHP:
    DrawTrendLine(T_Zone+"Open"+"_"+IntegerToString(No),0,Time[0],Bid-(10*pips2double),Time[10],Bid-(10*pips2double),Red,STYLE_SOLID,3); 
    - قيمة T_Line_hadaf هي قيمة السعر المطلوب بالفعل ولا داعي لاعادة تحويلها مرة اخر "T_Line_hadaf * P"

    - للافضل ولانه لابد من ذلك لكي يعمل اي مؤشر او اكسبيرت بشكل صحيح مستقبلاً، لابد من استخدام وظيفة (property strict) لتجنب الكثير من الاخطاء البرمجية التي ستؤثر بالطبع على الكود اجمالاً

    ولذلك بعد وضع (property strict) ظهرت بعض الاخطاء:

    - يجب تعريف متغيرات T_order_No و B_order_No في الجلوبال وليس داخل شرط

    - دمج شرط
    كود PHP:
    if(Bid==T_Line
    تحت حلقة البحث عن الكائنات

    - ايضاً دمج شرط

    كود PHP:
    if(type==OP_SELLSTOP || type==OP_SELLLIMIT || type==OP_SELL
    داخل الشرط التحقق من العملة والماجيك ليصبح الكود بالشكل التالي

    كود PHP:
       for(int i OrdersTotal() - 1>= 0i--)
         {
          if(!
    OrderSelect(i,SELECT_BY_POS)) break;
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnumber)
            {
             
    int type=OrderType();
             
    double OpEn_Price=OrderOpenPrice();
             if(
    type==OP_SELLSTOP || type==OP_SELLLIMIT || type==OP_SELL)
               {
                if(
    Price_==OpEn_Price)
                  {
                   return(
    1);
                  }
               }
            }
         } 
    - التحويل الصحيح بين الارقام والنص .. مثال:
    كود PHP:
    DrawTrendLine(T_Zone+"Open"+"_"+No, .... 
    الى

    كود PHP:
    DrawTrendLine(T_Zone+"Open"+"_"+IntegerToString(No), .... 
    كذلك تحويل متغير Pip

    كود PHP:
    string Oo="T_Line"+T_Zone_No_+"_"+period(Period())+"_"+"Pip"+Pip
    الى

    كود PHP:
     string Oo="T_Line"+T_Zone_No_+"_"+period(Period())+"_"+"Pip"+DoubleToStr(Pip,2); 
    هذا ما استعطت ملاحظته الى الان وان شاء الله نكمل مع بعض عند وجود اخطاء اخرى

    مرفق نموذج للبيع مع التعديلات في حالة كانت المشاركة غير واضحة
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    سُبْحَانَكَ لاَ عِلْمَ لَنَا إِلاَّ مَا عَلَّمْتَنَا إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

  7. #7
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    يعلم الله كم اسعدتني مشاركتك وافادتني

    فأشكرك من اعماقي


    فعلا شغل فنان


    عزيزي

    مالفرق بين السطرين التاليين

    كود PHP:

                      
    if(!OrderSend(Symbol(),OP_SELL,Lots,Bid,3*pips2points,0,T_Line_hadaf,Oo,Magicnumber,0,Red))
                            
    bool r OrderSend(Symbol(),OP_SELL,Lots,Bid,3*pips2points,0,T_Line_hadaf,Oo,Magicnumber,0,Red); 
    طيب
    اعمل كومبايل جديد

    واسحب خط فتح الصفقة الى قريب البيد

    ستجد انه احيانا ينفذ وأحيانا لا ينفذ << حسب مزاجه

    وهي اشكالية كانت من البداية فما سببها ؟؟

    -----------

    لا اخفيك عزيزي

    عملت هذا الاكسبيرت كبداية (https://forum.arabictrader.com/t234936.html)

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


    فقررت ان يكون مؤشر يرسم خطوط فقط ( تشريع )

    واكسبيرت (تنفيذ ) ينفذ ويتابع الصفقة في نفس الزوج (هو الذي اعمل عليه الآن في الموضوع )

    وسكربت (قائد ) لأدارة المحفظة بشكل عام (على مستوى كامل الازواج) يسمح ويمنع من انشاء الصفقات - ويتابع الرصيد كاملا المارجين والاكويتي والربح والخسارة ... https://forum.arabictrader.com/t235050.html

    وأخيرا سكربت اتابع فيه الحساب (https://forum.arabictrader.com/t235174.html) حيث اتابع كامل ما يجري

    سبب فشل اغلب الاكسبرتات .. يحاول دمج كامل المهام فينسى او يغفل عن جزئية قد تكون هي سبب الدمار له

    مشروع كبير .. لا اعلم ان كان سينجح .. لكن لم أجد بديلا عنه
    آخر تعديل بواسطة أبو نـاصر ، 19-02-2016 الساعة 02:31 PM

  8. #8
    الصورة الرمزية awran5
    awran5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2008
    الإقامة
    مصر
    المشاركات
    106

    افتراضي

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

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

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

    اولا نوع الامر: (OrderSend) من نوع int يرجع قيمة رقمية في حين (OrderModify) و (OrderDelete) و (OrderClose) من نوع bool وترجع قيمة true / false

    لذلك يفضل وضع متغير من نوع int لل (OrderSend) ومتغير من نوع bool الى (OrderModify) و (OrderDelete) و (OrderClose)

    فيكون الاصح ان تكتب

    كود PHP:
    int r OrderSend(Symbol(),OP_SELL,Lots,Bid,3*pips2points,0,T_Line_hadaf,Oo,Magicnumber,0,Red); 
    ثم تضيف للتحقق من الشرط

    كود PHP:
    if(0) Print("Error sending order #"OrderTicket(), " Error: "GetLastError());
    else Print(
    "Order #"OrderTicket()," sent successfully."); 
    فأحياناً قد تريد التحقق من عدد الاوردرات وما اذا كان قيمة (r) اكبر من 1 او 2 بمعنى اذا كان هناك اكثر من 2 اوردر افعل كذا وكذا .. هذا لن يتوفر اذا عرّفت متغير ال (r) على انه bool

    والطريقة الاسهل لفعل ذلك، اذا كنت لا تريد التحقق من عدد الاوردرات وبلا وضع وتعريف متغيرات جديدة سواء int او bool هي ان تستخدم علامة التعجب (!) التي تعنى (لا) مثال

    كود PHP:
             if(!OrderSend(Symbol(), OP_SELL, ..........))
                Print(
    "Error sending order #"OrderTicket(), " Error: "GetLastError());
             else Print(
    "Order #"OrderTicket()," sent successfully."); 
    اما قصدي في الارتباط بين تساؤلاتك .. هو الاشكالية الثانية التى تواجهك .. يجب عليك يا اخي من استخدام وظيفة GetLastError .. للتحقق من الاخطاء .. هذه الوظيفة ستوفر عليك وقت هائل فكأنك تسأل البرنامج مباشرة لما لم تفعل هذا الامر؟ وبالتالي يمكن اصلاح اخطاؤك بسهولة.

    المشكلة ان وظيفة GetLastError ترجع لك رقم الخطاً وبالطبع من المستحيل ان تحفظ كل هذه الارقام ولذلك فالحل الامثل ان تقوم بدمج ملف وصف الاخطاء مع اي مؤشر او اكسبيرت باضافة الكود التالي في اعلى هيدر الكود
    كود PHP:
    //--- Dependencies
    #import "stdlib.ex4"
    string ErrorDescription(int e);
    #import 
    ثم تقوم باستدعاء الوظيفة بالشكل التالي
    كود PHP:
    if(!OrderSend(Symbol(), OP_SELL, ..........))
       Print(
    "Error sending order #"OrderTicket(), " Error: "ErrorDescription(GetLastError()));
    else Print(
    "Order #"OrderTicket()," sent successfully."); 
    وهكذا .. مثلا اذا لم يفتح الاوردر بسبب عدم كفاية المال وهو خطأ رقم 134 بدلا من ان يطبع لك رقم الخطأ، فانه سيطبع لك الوصف (ERR_NOT_ENOUGH_MONEY)

    ويمكن ان تستعمل هذا للتحقق من اي شيئ مثلا رسم الكائنات، مسحها، تعديل الاوردرات .. الخ

    ايضاً من الهام جداً لك يا اخي .. ان تقوم بالتحقق الدائم والسريع من قيمة المتغيرات اذا كانت صحيحة او لا باستخدام امر Comment .. لا تتصور كما سيوفر عليك مجهودك ووقتك .. مثلا انت قمت باستحضار قيمة متغير
    كود PHP:
    T_Line_hadaf=ObjectGet(ObjectName(i),OBJPROP_PRICE1); 
    يمكنك التحقق السريع من القيمة باستخدام امر Comment هكذا ..
    كود PHP:
    _Line_hadaf=ObjectGet(ObjectName(i),OBJPROP_PRICE1); 
    CommentT_Line_hadaf ); 
    فان كانت القيمة صحيحة، قم بمسح ال Comment وهكذا دائماً ..
    آخر تعديل بواسطة awran5 ، 19-02-2016 الساعة 06:42 PM
    توقيع العضو
    سُبْحَانَكَ لاَ عِلْمَ لَنَا إِلاَّ مَا عَلَّمْتَنَا إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

  9. #9
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة awran5 مشاهدة المشاركة
    تحياتي اخي ابو ناصر .. يعلم الله انني اسعد، فالقدرة على مساعدة الاخرين شعور رائع لا يوصف فالحمد لله الذي تتم بنعمته الصالحات ..
    أهنيك على هذه الروح الطيبة
    قال رسول الله صلى الله عليه وسلم "من مشى في حاجةِ أخيه حتى يثبتها له أظله الله عز وجل بخمسةٍ وسبعين ألف ملك يصلون عليه ويدعون له إن كان صباحاً حتى يُمسي وإن كان مساءً حتى يصبح ولا يرفع قدماً إلا حط الله عنه بها خطيئة ورفع له بها درجة"
    وفي رواية له عن ابن عمر وحده أن النبي صلى الله عليه وسلم قال: "من أعان عبداً في حاجته ثبت الله له مقامه يوم تزول الأقدام". الصحيحة (608).
    http://www.saaid.net/Doat/majed-eslam/13.htm



    ------

    اشكرك على تنبيهاتك

    سأعتمد GetLastError


    من جهتي لا احب الكومنت ولا احب ان اذهب كل مرة الى الجورنال

    فاضع بديل عنه انشاء نص على الشارت مع حجم خط كبير مناسب لي


    كود PHP:

             ObjectCreate
    ("g363"OBJ_LABEL000);
          
    ObjectSet("g363"OBJPROP_CORNER2);
          
    ObjectSet("g363"OBJPROP_XDISTANCE2);
          
    ObjectSet("g363"OBJPROP_YDISTANCE50);
          
    ObjectSetText("g363",  T_Line_hadaf ,30"Arial"Red); 


    اضفت صفقات الشراء كما تعلمت منك

    واضفت OrderCheck() للتعامل مع صفقة البيع المفتوحة .. أرجوا التكرم بمراجعتها

    أما صفقات الشراء تحتاج وضع مختلف .. لوضع اوامر باي لميت ان كان الاختراق لأعلى

    الاكسبيرت كاملا هنا :
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                                  |
    //|                      Copyright © 2015, MetaQuotes Software Corp. |
    //|                                        http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2015, MetaQuotes Software Corp."
    #property strict
    /*------------------------------------------------------------------*\
    \\|   -----------------------------------------------------------ا   /
    //|     ------------------------------------------------------ا  ا   \
    \\|                            ا   ا   ا                   أبو نـــاصر                   
    //|     ------------------------------------------------------ا  ا   /
    \\|   -----------------------------------------------------------ا   \
    \*------------------------------------------------------------------*/

    double Lots 0.01;
    string T_Zone="SELL_Line123_";
    string B_Zone="eBUY_Line123_";
    int No=888;
    int Magicnumber=1102011;

    double T_Line,T_Line_hadaf,T_Old_entry ,B_Line,B_Line_hadaf,B_Old_entry;
    string T_Zone_No_ B_Zone_No_;
    bool r;
    int     pips2points;    // For slippage: 3 pips, 3=points, 30=points
    double  pips2double;    // For Takeprofit & Stoploss: 15 pips, 0.015, 0.0150
    int     Digitspips;     // DoubleToStr(double/pips2double, Digitspips)
    double Spread;

    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    //---


    // 4/5 digit brokers.
       // JPY=3/EURUSD=5                                   
       
    if (Digits == 1)
       {      
          
    pips2double Point*10
          
    pips2points 10
          
    Digitspips 1;
       } 
       else 
       {    
          
    pips2double Point
          
    pips2points 1
          
    Digitspips 0
       }

       
    // OrderSend(... Slippage_Value * pips2points, Bid - StopLoss_Value * pips2double


       
    Spread=MarketInfo(Symbol(),MODE_SPREAD)/Digitspips;

       
    DrawTrendLine(B_Zone+"Open"+"_"+IntegerToString(No),0,Time[0],Bid+10*pips2double,Time[10],Bid+10*pips2double,DarkTurquoise,STYLE_SOLID,3);
       
    DrawTrendLine(B_Zone+"hadf"+"_"+IntegerToString(No),0,Time[0],Bid+20*pips2double,Time[10],Bid+20*pips2double,DarkTurquoise,STYLE_SOLID,2);

       
    DrawTrendLine(T_Zone+"Open"+"_"+IntegerToString(No),0,Time[0],Bid-(10*pips2double),Time[10],Bid-(10*pips2double),Red,STYLE_SOLID,3);
       
    DrawTrendLine(T_Zone+"hadf"+"_"+IntegerToString(No),0,Time[0],Bid-(20*pips2double),Time[10],Bid-(20*pips2double),Red,STYLE_SOLID,2);

    //---
       
    return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
    //---

      
    }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
    //---

       
    double T_order_No=0;
       
    double B_order_No=0;
       
       
    string T_Name="SELL_";
       
    string B_Name="eBUY_";
       
       
        
       for(
    int i=0i<=ObjectsTotal(); i++)
         {
          if(
    StringFind(ObjectName(i),T_Name,0)==0)
            {
             
    string Name22=StringSubstr(ObjectName(i),13,4);

             if(
    Name22=="Open")
               {
                
    T_Line=ObjectGet(ObjectName(i),OBJPROP_PRICE1);
                
    T_Zone_No_=StringSubstr(ObjectName(i),18,10);
                  
               }

             if(
    Name22=="hadf")
               {
                if(
    T_Zone_No_==StringSubstr(ObjectName(i),18,10))
                  {
                      
    T_Line_hadaf=ObjectGet(ObjectName(i),OBJPROP_PRICE1);                      
                  }
               }
               
             if(
    Bid==T_Line)
               {
                if(
    T_Old_entry!=T_Line)
                  {
                   
    T_Old_entry=T_Line;//اضفت هذا ليعرف الخط الذي سبق التنفيذ عليه 
                   
    T_order_No=chek_For_SELL_Order(T_Line);
                   if(
    T_order_No==0)
                     {

                      
    double Pip=fabs(T_Line T_Line_hadaf) / pips2double;
                     
                      
    string Oo="T_Line"+T_Zone_No_+"_"+period(Period())+"_"+"Pip"+DoubleToStr(Pip,2);
                      
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3*pips2points,0,T_Line_hadaf,Oo,Magicnumber,0,Red);
                     }
                  
                  }
               }
            }
            
            
    //=======الشراء
            
                  
    if(StringFind(ObjectName(i),B_Name,0)==0)
            {
             
    string Name22=StringSubstr(ObjectName(i),13,4);

             if(
    Name22=="Open")
               {
                
    B_Line=ObjectGet(ObjectName(i),OBJPROP_PRICE1);
                
    B_Zone_No_=StringSubstr(ObjectName(i),18,10);
                  
               }

             if(
    Name22=="hadf")
               {
                if(
    B_Zone_No_==StringSubstr(ObjectName(i),18,10))
                  {
                      
    B_Line_hadaf=ObjectGet(ObjectName(i),OBJPROP_PRICE1);                      
                  }
               }
               
             if(
    Bid==B_Line)
               {
                if(
    B_Old_entry!=B_Line)
                  {
                   
    B_Old_entry=B_Line;
                   
    B_order_No=chek_For_BUY_Order(B_Line);
                   if(
    B_order_No==0)
                     {

                      
    double Pip=fabs(B_Line_hadaf B_Line) / pips2double;
                     
                      
    string Oo="B_Line"+B_Zone_No_+"_"+period(Period())+"_"+"Pip"+DoubleToStr(Pip,2);
                      
    OrderSend(Symbol(),OP_BUY,Lots,Bid,3*pips2points,0,B_Line_hadaf,Oo,Magicnumber,0,Red);
                  
                     }
                  }
               }
            }
            
            
         }
    //end For
         
           
    OrderCheck();
         
         
    //----
      
    }

    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double chek_For_SELL_Order(double Price_)
      {
       
    double Aa=Price_+Spread;
       
    double Vv=Price_-Spread;

       for(
    int i OrdersTotal() - 1>= 0i--)
         {
          if(!
    OrderSelect(i,SELECT_BY_POS)) break;
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnumber)
            {
             
    int type=OrderType();
             
    double OpEn_Price=OrderOpenPrice();
             if(
    type==OP_SELLSTOP || type==OP_SELLLIMIT || type==OP_SELL)
               {
                 if(
    OpEn_Price Aa && OpEn_Price Vv)// اضفت هذا احترازا
                  
    {
                   return(
    1);
                  }
               }
            }
         }

       return(
    0);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double chek_For_BUY_Order(double Price_)
      {
       
    double Aa=Price_+Spread;
       
    double Vv=Price_-Spread;

       for(
    int i OrdersTotal() - 1>= 0i--)
         {
          if(!
    OrderSelect(i,SELECT_BY_POS)) break;
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnumber)
            {
             
    int type=OrderType();
             
    double OpEn_Price=OrderOpenPrice();
                if(
    type==OP_BUYSTOP || type==OP_BUYLIMIT ||type==OP_BUY)
               {
                 if(
    OpEn_Price Aa && OpEn_Price Vv)
                  {          
                   return(
    1);
                  }
               }
            }
         }

       return(
    0);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
      
    void OrderCheck()
       {
     for(
    int i=0;i<=OrdersTotal();i++){
     
          if(!
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
          
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnumber)
            {
            
            
    int  ticket=OrderTicket();
            
    int type=OrderType();
            
    double OpEn_Price=OrderOpenPrice();
            
    double TP=OrderTakeProfit();
            
    double SL=OrderStopLoss();
            
    string Comm=OrderComment();
                   
                   
        
                             if(
    type==OP_SELL && OrderTakeProfit()!=0){
                                      
    //بريك ايفن بعد تجاوز المنتصف
                                      
    double Ll OpEn_Price-((OpEn_Price-TP)/2) ;
      
                                      if (
    Bid<Ll){
           
                                           
    rOrderSelect(OrderTicket(),SELECT_BY_TICKET,MODE_TRADES);
                                           
    rOrderModify(OrderTicket(),OrderOpenPrice(),OpEn_Price-20*pips2double,OrderTakeProfit(),0); 
                                      } 
                
                
                                      if (
    Bid==TP){
                                      
    //الغاء الهدف عند الوصول اليه
                                           
    rOrderSelect(OrderTicket(),SELECT_BY_TICKET,MODE_TRADES);
                                           
    rOrderModify(OrderTicket(),OrderOpenPrice(),Ask+20*pips2double,0,0); 
              
                                      }                         
                                             
                              }
                              
                             if(
    type==OP_SELL && OrderTakeProfit()==0){
                                      
    //تريلينج ستوب بعد الغاء الهدف

                                      
    SL=OrderStopLoss();

                
                
                                      if (
    SL Ask +20*pips2double){
                                   
                                           
    rOrderSelect(OrderTicket(),SELECT_BY_TICKET,MODE_TRADES);
                                           
    rOrderModify(OrderTicket(),OrderOpenPrice(),Ask+20*pips2double,0,0); 
              
                                      }                         
                                             
                              }
         
     
      
          }   
             
               
     }   }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    string period(int TF)
      {
       
    string period;

       switch(
    TF)
         {
          case 
    1:
             
    period="M1";
             break;
          case 
    5:
             
    period="M5";
             break;
          case 
    15:
             
    period="M15";
             break;
          case 
    30:
             
    period="M30";
             break;
          case 
    60:
             
    period="H1";
             break;
          case 
    240:
             
    period="H4";
             break;
          case 
    1440:
             
    period="D1";
             break;
          case 
    10080:
             
    period="W1";
             break;
          case 
    43200:
             
    period="MN";
             break;
         }
       return(
    period);
      }
    //+------------------------------------------------------------------+
    //+------------------------------------------------------------------+

    void DrawTrendLine(string r6,int x1,datetime x6,double f6,datetime x7,double f7,color x3,int x4,int x5)
      {
       if(
    x6==&& x7==&& ObjectFind(0,r6)!=-1) {ObjectDelete(0,r6);}
       if(
    x6>|| x7>0)
         {
          if(
    ObjectFind(0,r6)==-1)
            {
             
    ObjectCreate(0,r6,OBJ_TREND,x1,0,0,0,0);
             
    ObjectSetInteger(0,r6,OBJPROP_RAY,false);
            }
          
    ObjectSetInteger(0,r6,OBJPROP_TIME,x6);
          
    ObjectSetInteger(0,r6,OBJPROP_TIME,1,x7);
          
    ObjectSetDouble(0,r6,OBJPROP_PRICE,f6);
          
    ObjectSetDouble(0,r6,OBJPROP_PRICE,1,f7);
          
    ObjectSetInteger(0,r6,OBJPROP_COLOR,x3);
          
    ObjectSetInteger(0,r6,OBJPROP_STYLE,x4);
          
    ObjectSetInteger(0,r6,OBJPROP_WIDTH,x5);
         }
      } 
    آخر تعديل بواسطة أبو نـاصر ، 19-02-2016 الساعة 07:34 PM

  10. #10
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    اخي الفاضل هل لاحظت مشكلة عدم تنفيذ الأوامر في بعض الحالات

  11. #11
    الصورة الرمزية awran5
    awran5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2008
    الإقامة
    مصر
    المشاركات
    106

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة أبو نـاصر مشاهدة المشاركة
    أهنيك على هذه الروح الطيبة
    قال رسول الله صلى الله عليه وسلم "من مشى في حاجةِ أخيه حتى يثبتها له أظله الله عز وجل بخمسةٍ وسبعين ألف ملك يصلون عليه ويدعون له إن كان صباحاً حتى يُمسي وإن كان مساءً حتى يصبح ولا يرفع قدماً إلا حط الله عنه بها خطيئة ورفع له بها درجة"
    وفي رواية له عن ابن عمر وحده أن النبي صلى الله عليه وسلم قال: "من أعان عبداً في حاجته ثبت الله له مقامه يوم تزول الأقدام". الصحيحة (608).
    http://www.saaid.net/Doat/majed-eslam/13.htm
    بداية اعتذر عن التأخير يا اخي فاليوم جمعة واجازة السوق وراحة نوعاً ما

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

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

    من جهتي لا احب الكومنت ولا احب ان اذهب كل مرة الى الجورنال

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

    اقتباس المشاركة الأصلية كتبت بواسطة أبو نـاصر مشاهدة المشاركة
    واضفت OrderCheck() للتعامل مع صفقة البيع المفتوحة .. أرجوا التكرم بمراجعتها
    ولله يا اخي .. الوظيفة بها بعض الاخطاء البرمجية وبعض الاخطاء المنطقية ان صح التعبير

    اولاً: انت بحاجة لتعريف او تحديد الستوب قبل تحريكه الى البريك ايفن والافضل، ولكي يعمل هذا الاكسبيرت - واي اكسبيرت قادم - بشكل جيد على اي بروكر خصوصاً على شركات ECN او حتى احياناً اوقات الذروة، فالافضل هو ان تضع قيمة صفر سواء للستوب او التيك بروفت في امر OrderSend ثم تقوم بتعديل القيم بالقيم المطلوبة من خلال امر OrderModify.

    ثانياً: لابد من اضافة بعض شروط التحقق قبل تعديل قيمة الستوب وتحريكها سواء الى نقطة البريك ايفن او التريلينج والا ستحدث اخطاء .. مثال في امر البيع
    كود PHP:
    if((OrderOpenPrice()<OrderStopLoss()) || OrderStopLoss()==0)
    if(
    OrderOpenPrice()-Ask> ..... * pips2double
    بالمناسبة هذا خطأ شائع لمن تعمل معه وظيفة البريك ايفن او التريلر في اتجاه الشراء ولا تعمل في اتجاه البيع ان كان قيمة الستوب الافتراضية هي 0 والحل هو اضافة هذا الشرط ضمن شروط التحقق في اتجاه البيع
    كود PHP:
    OrderStopLoss()==
    ثالثاً: لتحريك الستوب الى نقطة البريك ايفن، تحتاج الى حلقة جديدة تبدأ ان كان هناك اكثر من اوردر مفتوح بخلاف حلقة تعديل قيم الستوب والهدف ولذلك ستحتاج الي وظيفة جديدة لحساب الاوردرات المفتوحة.

    رابعاً: لا يمكن فعلياً "إلغاء الهدف عند الوصول اليه" لانه عند الوصول الى الهدف سيتم الغاؤه من البروكر بشكل تلقائي .. ممكن الغاء الهدف قبل الوصول اليه بكذا نقطة مثلا ولكن ليس عند الوصول اليه ..

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

    سادساً واخيراً تحتاج الى آلية تعتمد على استراتيجة عند وضع الخطوط وبناء عليها نبدأ في وضع الاوامر المعلقة.

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

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

    تحياتي واحترامي ..
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    سُبْحَانَكَ لاَ عِلْمَ لَنَا إِلاَّ مَا عَلَّمْتَنَا إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

  12. #12
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    أسأل الله أن يتقبل منك ما تبذل من زكاة

    كما استفدت كثيرا من هذه الملاحظات


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


    ولله يا اخي .. الوظيفة بها بعض الاخطاء البرمجية وبعض الاخطاء المنطقية ان صح التعبير

    اولاً: انت بحاجة لتعريف او تحديد الستوب قبل تحريكه الى البريك ايفن والافضل، ولكي يعمل هذا الاكسبيرت - واي اكسبيرت قادم - بشكل جيد على اي بروكر خصوصاً على شركات ECN او حتى احياناً اوقات الذروة، فالافضل هو ان تضع قيمة صفر سواء للستوب او التيك بروفت في امر OrderSend ثم تقوم بتعديل القيم بالقيم المطلوبة من خلال امر OrderModify.
    فكرة رائعة وجديرة بالتأمل .. لا اذكر اني رأيتها بأي اكسبيرت




    اقتباس المشاركة الأصلية كتبت بواسطة awran5 مشاهدة المشاركة
    رابعاً: لا يمكن فعلياً "إلغاء الهدف عند الوصول اليه" لانه عند الوصول الى الهدف سيتم الغاؤه من البروكر بشكل تلقائي .. ممكن الغاء الهدف قبل الوصول اليه بكذا نقطة مثلا ولكن ليس عند الوصول اليه ..

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

    الغاء هدف البيع عند وصول Bid إليه .. فلم يتفعل الهدف حتى الان وبقي فارق السبريد

    ثم نضع تريلينج نقطتين + السبريد

    استفيد ضمان اغلاق الصفقة + قد يوجد ربح اضافي

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

    صدقا هذه الجزئية اتعبتني كثيرا جدا وتتكرر باستمرار ان يلمس السعر الهدف ثم يعكس بدون تنفيذ (https://forum.arabictrader.com/t235234.html)

    ومع الشراء سنقوم بالعكس ايضا ...

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

    ولا ارغب في اوامر معلقة الا في جزئيات

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

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


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


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


    طيب لماذا ؟ وما الحل ؟


    منطقيا نحن قلنا اذا اصبح سعر البيد مساوي لسعر الخط نفذ ماركت بسعر السوق ..

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

    أو ربما نعود إلى (NormalizeDouble) فسعر الخط قد يكون من خانات بعد الفاصلة لا تساوي البيد أبدا ؟؟

    في الميتا يقبل بـ 6 خانات بعد الفاصلة الدولار ين (113.000006) اليورو (1.111116) جرب الأرقام على المنصة

    ---

    جميع الخطوط أفقية

    بعضها يعتمد على قمم وقيعان .. وبعضها نتيجة معادلات (مثلا 50% من طول الموجة) .. وبعضها على هاي أو للو شمعة

    لكن في التنفيذ أوامر الشراء التي( فوق السعر الحالي) تختلف عن أوام الشراء تحت السعر الحالي <<< بسبب السبريد

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



    ------------


    اشكرك أخي الحبيبب جزيل الشكر على وقتك والذي اقتطعته من وقت راحتك وجهدك الكبير معي
    آخر تعديل بواسطة أبو نـاصر ، 20-02-2016 الساعة 09:07 AM

  13. #13
    الصورة الرمزية awran5
    awran5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2008
    الإقامة
    مصر
    المشاركات
    106

    افتراضي

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

    الغاء هدف البيع عند وصول Bid إليه .. فلم يتفعل الهدف حتى الان وبقي فارق السبريد

    ثم نضع تريلينج نقطتين + السبريد

    استفيد ضمان اغلاق الصفقة + قد يوجد ربح اضافي

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

    صدقا هذه الجزئية اتعبتني كثيرا جدا وتتكرر باستمرار ان يلمس السعر الهدف ثم يعكس بدون تنفيذ (https://forum.arabictrader.com/t235234.html)

    ومع الشراء سنقوم بالعكس ايضا ...
    ولله يا اخي مازلت اظن ان هذه المشكلة بسبب الاعتماد على سعر Bid او Ask في الدخول وقد تكون ايضاً مشكلة بروكر كما تفضل الاخوة

    جرب يا اخي تستعمل RefreshRates

    اقتباس المشاركة الأصلية كتبت بواسطة أبو نـاصر مشاهدة المشاركة
    طيب لماذا ؟ وما الحل ؟

    منطقيا نحن قلنا اذا اصبح سعر البيد مساوي لسعر الخط نفذ ماركت بسعر السوق ..

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

    أو ربما نعود إلى (NormalizeDouble) فسعر الخط قد يكون من خانات بعد الفاصلة لا تساوي البيد أبدا ؟؟

    في الميتا يقبل بـ 6 خانات بعد الفاصلة الدولار ين (113.000006) اليورو (1.111116) جرب الأرقام على المنصة
    انا شخصياً لم استعمل NormalizeDouble اطلاقاً ودائماً ما كنت أقرا لبعض من محترفي برمجة mql في منتدى الميتا تريدر، انها وظيفة لا فائدة والافضل الاستغناء عنها .. بل واستخدامها قد يسبب مشاكل في الكود .. كما وأنه خطأ شائع استخدامها مع سعر Bid او Ask لان القيم بالفعل معدلة تلقائياً ..


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

    بعضها يعتمد على قمم وقيعان .. وبعضها نتيجة معادلات (مثلا 50% من طول الموجة) .. وبعضها على هاي أو للو شمعة

    لكن في التنفيذ أوامر الشراء التي( فوق السعر الحالي) تختلف عن أوام الشراء تحت السعر الحالي <<< بسبب السبريد

    امر شراء فوق قمة وفوق السعر لا اريد أن ينفذ لي بسبب السبريد بدون اختراق فعلي .. فتكون خسارة .. بخلاف امر تحت السعر عند منتصف الموجة إن لم ينفذ تكون فرصة ولم تحصل
    لا اعتقد انها مشكلة سبريد .. حدثت المشكلة معى ايضاً حتى بعد ان وضعت قيمة صغيرة (15) ثابتة للسبريد في التسيتر .. كما انه يمكن بسهولة اضافة قيمة السبريد المتغيرة دائماً الى اوامر الدخول .. ممكن مثلاً للاختراق استعمال هاي لو الشموع بدلاً من السعر مثلاً
    كود PHP:
    High[1] > value && Low[1] < value 
    او جرب تستعمل < > مع السعر .. مثلاً

    كود PHP:
    if(Ask >= value 20 *pips2double
    توقيع العضو
    سُبْحَانَكَ لاَ عِلْمَ لَنَا إِلاَّ مَا عَلَّمْتَنَا إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

  14. #14
    الصورة الرمزية أبو نـاصر
    أبو نـاصر غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Jun 2013
    الإقامة
    السعودية
    المشاركات
    3,189

    افتراضي

    أهلا بك حبيبي

    طيب سؤال أنت كمبرمج تريد انشاء صفقة ماركت (بسعر السوق) .. وذلك عند تحقق شرط معين

    لنعرف هل مشكلتنا من كود الشرط أو من كود التنفيذ

    سأجرب كافة الاحتمالات مع افتتاح السوق حيث تجاربي على الديمو



    ---------

    سؤال جانبي مع ذكرك الباكتيست

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

    اضغط على الصورة لعرض أكبر

الاســـم:	6888.jpg
المشاهدات:	48
الحجـــم:	114.1 كيلوبايت
الرقم:	452725

  15. #15
    الصورة الرمزية awran5
    awran5 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2008
    الإقامة
    مصر
    المشاركات
    106

    افتراضي

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

    طيب سؤال أنت كمبرمج تريد انشاء صفقة ماركت (بسعر السوق) .. وذلك عند تحقق شرط معين

    لنعرف هل مشكلتنا من كود الشرط أو من كود التنفيذ

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

    اقتباس المشاركة الأصلية كتبت بواسطة أبو نـاصر مشاهدة المشاركة
    سؤال جانبي مع ذكرك الباكتيست

    ما سبب كون الصفقة تنفذ على الهدف وتكون نتيجة الربح بالسالب
    ولله يا اخي ايضاً لم افهم جيداً من الصورة .. الصورة لزوج الدولار/ ين ولكن بسعر قديم جداً .. اظنه 2012 ؟ هل يا اخي قمت بتحميل وتحديث الاسعار لكل هذه الفترة؟ لا اظن في هذه الحالة ان الباك تسيت سيعمل بشكل سليم لان الاسعار ستكون وهمية ..

    قد يكون ايضاً بسبب الفيفو FIFO فإن لم اكن مخطئاً، فهذا الحساب من شركة forex.com ؟
    توقيع العضو
    سُبْحَانَكَ لاَ عِلْمَ لَنَا إِلاَّ مَا عَلَّمْتَنَا إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

صفحة 1 من 4 1234 الأخيرةالأخيرة

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