النتائج 1 إلى 4 من 4
  1. #1
    الصورة الرمزية turkm
    turkm غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    المشاركات
    1,626

    افتراضي الاستاذ العزيز مستر دولار رجاءا المساعدة

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

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

    افتراضي

    يوجد أكثر من كود في المؤشر يمكن تعديله لزيادة سرعته

    الجزء الأول هو الحلقه المسئوله عن العمليه الحسابيه
    كود PHP:
      for (int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++) ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
          
    ld_20 ld_12 NumBars;
          
    ld_12 0;
          
          for (
    l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++) ld_12 += High[l_index_36] - Low[l_index_36];
          
    ld_28 0.2 * (ld_12 NumBars); 
    فيمكن بدلا من إستخدام حلقتين for نجعل العمليه الحسابيه في حلقه واحده لكن سنحتاج إلى متغير إضافي
    بدلا من ld_12

    فيصبح الكود
    كود PHP:
     for (int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++)
          {
           
    ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
           
    ld_13 += High[l_index_36] - Low[l_index_36];
          }
           
    ld_20 ld_12 NumBars;
           
    ld_28 0.2 * (ld_13 NumBars); 
    الجزء الثانيه الكود المسئول عن رسم الخطوط على الشارت
    كود PHP:
     for (l_index_36 0l_index_36 <= Barsl_index_36++) {
          
    l_name_44 "TimingHL" l_index_36;
          
    ObjectCreate(l_name_44OBJ_TRENDli_8Time[l_index_36], g_ibuf_80[l_index_36], Time[l_index_36], g_ibuf_92[l_index_36]);
          
    ObjectSet(l_name_44OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_44OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_44OBJPROP_WIDTH1);
          
    l_name_52 "TimingOC" l_index_36;
          
    ObjectCreate(l_name_52OBJ_TRENDli_8Time[l_index_36], g_ibuf_84[l_index_36], Time[l_index_36], g_ibuf_88[l_index_36]);
          
    ObjectSet(l_name_52OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_52OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_52OBJPROP_WIDTH3);
          if (
    Open[l_index_36] <= Close[l_index_36]) {
             
    ObjectSet(l_name_44OBJPROP_COLORGreen);
             
    ObjectSet(l_name_52OBJPROP_COLORGreen);
          } else {
             
    ObjectSet(l_name_44OBJPROP_COLORRed);
             
    ObjectSet(l_name_52OBJPROP_COLORRed);
          }
       } 
    فبدلا من إستخدام حلقه for أخرى للبحث في المصفوفه ورسم الخطوط يمكن مباشرة رسم الخطوط بعد إخراج النتيجه في الحلقة الأولى
    كود PHP:
      for (int l_index_40 0l_index_40 Barsl_index_40++) {
          
    ld_12 0ld_13 0;
          for (
    int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++)
          {
           
    ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
           
    ld_13 += High[l_index_36] - Low[l_index_36];
          }
           
    ld_20 ld_12 NumBars;
           
    ld_28 0.2 * (ld_13 NumBars);
          
          
    g_ibuf_80[l_index_40] = (High[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_92[l_index_40] = (Low[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_84[l_index_40] = (Open[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_88[l_index_40] = (Close[l_index_40] - ld_20) / ld_28;
          
          
    l_name_44 "TimingHL" l_index_40;
          
    ObjectCreate(l_name_44OBJ_TRENDli_8Time[l_index_40], g_ibuf_80[l_index_40], Time[l_index_40], g_ibuf_92[l_index_40]);
          
    ObjectSet(l_name_44OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_44OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_44OBJPROP_WIDTH1);
          
    l_name_52 "TimingOC" l_index_40;
          
    ObjectCreate(l_name_52OBJ_TRENDli_8Time[l_index_40], g_ibuf_84[l_index_40], Time[l_index_40], g_ibuf_88[l_index_40]);
          
    ObjectSet(l_name_52OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_52OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_52OBJPROP_WIDTH3);
          if (
    Open[l_index_36] <= Close[l_index_40]) {
             
    ObjectSet(l_name_44OBJPROP_COLORGreen);
             
    ObjectSet(l_name_52OBJPROP_COLORGreen);
          } else {
             
    ObjectSet(l_name_44OBJPROP_COLORRed);
             
    ObjectSet(l_name_52OBJPROP_COLORRed);
          }
          
       } 

    ولا يوجد داعي لإستخدام الداله sleep والداله الخاصة بحذف جميع الخطوط في كل مره وإعادة وضعها من جديد
    كود PHP:
     Sleep(1000);
       
    ObjectsDeleteAll(li_8); 
    في الكود المسئول عن رسم خطوط actual_VCharte
    سوف تضع شرط لرسم الخط عندما تكون القيمه للخط المرسوم مختلفه عن المعطيات الحاليه فقط
    كود PHP:
     if(ObjectGet("actual_VCharte",OBJPROP_PRICE1)!=g_ibuf_88[0]){
        
    ObjectDelete("actual_VCharte");
        
    ObjectCreate("actual_VCharte"OBJ_HLINEli_80g_ibuf_88[0]);
        
    ObjectSet("actual_Vcharte"OBJPROP_COLORBlue);
       } 
    آخر جزء وهو الحلقه الرئيسيه
    كود PHP:
    for (int l_index_40 0l_index_40 Barsl_index_40++) { 
    فبدلا من البحث في كل مره عن جميع الشموع على الشارت فيكفي أن تبحث عن الشموع الجديده فقط التي تكونت والشمعه الحاليه أما الشموع السابقه فطبيعي أن قيمتها لن تتغير لأنها أغلقت

    كود PHP:
     int limit=Bars-IndicatorCounted();
      
       for (
    int l_index_40 0l_index_40 limitl_index_40++) { 
    المؤشر في المرفقات بعد التعديل
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  3. #3
    الصورة الرمزية turkm
    turkm غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    المشاركات
    1,626

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    يوجد أكثر من كود في المؤشر يمكن تعديله لزيادة سرعته

    الجزء الأول هو الحلقه المسئوله عن العمليه الحسابيه
    كود PHP:
      for (int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++) ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
          
    ld_20 ld_12 NumBars;
          
    ld_12 0;
          
          for (
    l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++) ld_12 += High[l_index_36] - Low[l_index_36];
          
    ld_28 0.2 * (ld_12 NumBars); 
    فيمكن بدلا من إستخدام حلقتين for نجعل العمليه الحسابيه في حلقه واحده لكن سنحتاج إلى متغير إضافي
    بدلا من ld_12

    فيصبح الكود
    كود PHP:
     for (int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++)
          {
           
    ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
           
    ld_13 += High[l_index_36] - Low[l_index_36];
          }
           
    ld_20 ld_12 NumBars;
           
    ld_28 0.2 * (ld_13 NumBars); 
    الجزء الثانيه الكود المسئول عن رسم الخطوط على الشارت
    كود PHP:
     for (l_index_36 0l_index_36 <= Barsl_index_36++) {
          
    l_name_44 "TimingHL" l_index_36;
          
    ObjectCreate(l_name_44OBJ_TRENDli_8Time[l_index_36], g_ibuf_80[l_index_36], Time[l_index_36], g_ibuf_92[l_index_36]);
          
    ObjectSet(l_name_44OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_44OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_44OBJPROP_WIDTH1);
          
    l_name_52 "TimingOC" l_index_36;
          
    ObjectCreate(l_name_52OBJ_TRENDli_8Time[l_index_36], g_ibuf_84[l_index_36], Time[l_index_36], g_ibuf_88[l_index_36]);
          
    ObjectSet(l_name_52OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_52OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_52OBJPROP_WIDTH3);
          if (
    Open[l_index_36] <= Close[l_index_36]) {
             
    ObjectSet(l_name_44OBJPROP_COLORGreen);
             
    ObjectSet(l_name_52OBJPROP_COLORGreen);
          } else {
             
    ObjectSet(l_name_44OBJPROP_COLORRed);
             
    ObjectSet(l_name_52OBJPROP_COLORRed);
          }
       } 
    فبدلا من إستخدام حلقه for أخرى للبحث في المصفوفه ورسم الخطوط يمكن مباشرة رسم الخطوط بعد إخراج النتيجه في الحلقة الأولى
    كود PHP:
      for (int l_index_40 0l_index_40 Barsl_index_40++) {
          
    ld_12 0ld_13 0;
          for (
    int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++)
          {
           
    ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
           
    ld_13 += High[l_index_36] - Low[l_index_36];
          }
           
    ld_20 ld_12 NumBars;
           
    ld_28 0.2 * (ld_13 NumBars);
          
          
    g_ibuf_80[l_index_40] = (High[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_92[l_index_40] = (Low[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_84[l_index_40] = (Open[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_88[l_index_40] = (Close[l_index_40] - ld_20) / ld_28;
          
          
    l_name_44 "TimingHL" l_index_40;
          
    ObjectCreate(l_name_44OBJ_TRENDli_8Time[l_index_40], g_ibuf_80[l_index_40], Time[l_index_40], g_ibuf_92[l_index_40]);
          
    ObjectSet(l_name_44OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_44OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_44OBJPROP_WIDTH1);
          
    l_name_52 "TimingOC" l_index_40;
          
    ObjectCreate(l_name_52OBJ_TRENDli_8Time[l_index_40], g_ibuf_84[l_index_40], Time[l_index_40], g_ibuf_88[l_index_40]);
          
    ObjectSet(l_name_52OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_52OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_52OBJPROP_WIDTH3);
          if (
    Open[l_index_36] <= Close[l_index_40]) {
             
    ObjectSet(l_name_44OBJPROP_COLORGreen);
             
    ObjectSet(l_name_52OBJPROP_COLORGreen);
          } else {
             
    ObjectSet(l_name_44OBJPROP_COLORRed);
             
    ObjectSet(l_name_52OBJPROP_COLORRed);
          }
          
       } 

    ولا يوجد داعي لإستخدام الداله sleep والداله الخاصة بحذف جميع الخطوط في كل مره وإعادة وضعها من جديد
    كود PHP:
     Sleep(1000);
       
    ObjectsDeleteAll(li_8); 
    في الكود المسئول عن رسم خطوط actual_VCharte
    سوف تضع شرط لرسم الخط عندما تكون القيمه للخط المرسوم مختلفه عن المعطيات الحاليه فقط
    كود PHP:
     if(ObjectGet("actual_VCharte",OBJPROP_PRICE1)!=g_ibuf_88[0]){
        
    ObjectDelete("actual_VCharte");
        
    ObjectCreate("actual_VCharte"OBJ_HLINEli_80g_ibuf_88[0]);
        
    ObjectSet("actual_Vcharte"OBJPROP_COLORBlue);
       } 
    آخر جزء وهو الحلقه الرئيسيه
    كود PHP:
    for (int l_index_40 0l_index_40 Barsl_index_40++) { 
    فبدلا من البحث في كل مره عن جميع الشموع على الشارت فيكفي أن تبحث عن الشموع الجديده فقط التي تكونت والشمعه الحاليه أما الشموع السابقه فطبيعي أن قيمتها لن تتغير لأنها أغلقت

    كود PHP:
     int limit=Bars-IndicatorCounted();
      
       for (
    int l_index_40 0l_index_40 limitl_index_40++) { 
    المؤشر في المرفقات بعد التعديل
    بارك الله بك استاذي العزيز واعزك الله في الدنيا والاخرة

  4. #4
    الصورة الرمزية turkm
    turkm غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    المشاركات
    1,626

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    يوجد أكثر من كود في المؤشر يمكن تعديله لزيادة سرعته

    الجزء الأول هو الحلقه المسئوله عن العمليه الحسابيه
    كود PHP:
      for (int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++) ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
          
    ld_20 ld_12 NumBars;
          
    ld_12 0;
          
          for (
    l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++) ld_12 += High[l_index_36] - Low[l_index_36];
          
    ld_28 0.2 * (ld_12 NumBars); 
    فيمكن بدلا من إستخدام حلقتين for نجعل العمليه الحسابيه في حلقه واحده لكن سنحتاج إلى متغير إضافي
    بدلا من ld_12

    فيصبح الكود
    كود PHP:
     for (int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++)
          {
           
    ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
           
    ld_13 += High[l_index_36] - Low[l_index_36];
          }
           
    ld_20 ld_12 NumBars;
           
    ld_28 0.2 * (ld_13 NumBars); 
    الجزء الثانيه الكود المسئول عن رسم الخطوط على الشارت
    كود PHP:
     for (l_index_36 0l_index_36 <= Barsl_index_36++) {
          
    l_name_44 "TimingHL" l_index_36;
          
    ObjectCreate(l_name_44OBJ_TRENDli_8Time[l_index_36], g_ibuf_80[l_index_36], Time[l_index_36], g_ibuf_92[l_index_36]);
          
    ObjectSet(l_name_44OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_44OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_44OBJPROP_WIDTH1);
          
    l_name_52 "TimingOC" l_index_36;
          
    ObjectCreate(l_name_52OBJ_TRENDli_8Time[l_index_36], g_ibuf_84[l_index_36], Time[l_index_36], g_ibuf_88[l_index_36]);
          
    ObjectSet(l_name_52OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_52OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_52OBJPROP_WIDTH3);
          if (
    Open[l_index_36] <= Close[l_index_36]) {
             
    ObjectSet(l_name_44OBJPROP_COLORGreen);
             
    ObjectSet(l_name_52OBJPROP_COLORGreen);
          } else {
             
    ObjectSet(l_name_44OBJPROP_COLORRed);
             
    ObjectSet(l_name_52OBJPROP_COLORRed);
          }
       } 
    فبدلا من إستخدام حلقه for أخرى للبحث في المصفوفه ورسم الخطوط يمكن مباشرة رسم الخطوط بعد إخراج النتيجه في الحلقة الأولى
    كود PHP:
      for (int l_index_40 0l_index_40 Barsl_index_40++) {
          
    ld_12 0ld_13 0;
          for (
    int l_index_36 l_index_40l_index_36 NumBars l_index_40l_index_36++)
          {
           
    ld_12 += (High[l_index_36] + Low[l_index_36]) / 2.0;
           
    ld_13 += High[l_index_36] - Low[l_index_36];
          }
           
    ld_20 ld_12 NumBars;
           
    ld_28 0.2 * (ld_13 NumBars);
          
          
    g_ibuf_80[l_index_40] = (High[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_92[l_index_40] = (Low[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_84[l_index_40] = (Open[l_index_40] - ld_20) / ld_28;
          
    g_ibuf_88[l_index_40] = (Close[l_index_40] - ld_20) / ld_28;
          
          
    l_name_44 "TimingHL" l_index_40;
          
    ObjectCreate(l_name_44OBJ_TRENDli_8Time[l_index_40], g_ibuf_80[l_index_40], Time[l_index_40], g_ibuf_92[l_index_40]);
          
    ObjectSet(l_name_44OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_44OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_44OBJPROP_WIDTH1);
          
    l_name_52 "TimingOC" l_index_40;
          
    ObjectCreate(l_name_52OBJ_TRENDli_8Time[l_index_40], g_ibuf_84[l_index_40], Time[l_index_40], g_ibuf_88[l_index_40]);
          
    ObjectSet(l_name_52OBJPROP_STYLESTYLE_SOLID);
          
    ObjectSet(l_name_52OBJPROP_RAYFALSE);
          
    ObjectSet(l_name_52OBJPROP_WIDTH3);
          if (
    Open[l_index_36] <= Close[l_index_40]) {
             
    ObjectSet(l_name_44OBJPROP_COLORGreen);
             
    ObjectSet(l_name_52OBJPROP_COLORGreen);
          } else {
             
    ObjectSet(l_name_44OBJPROP_COLORRed);
             
    ObjectSet(l_name_52OBJPROP_COLORRed);
          }
          
       } 

    ولا يوجد داعي لإستخدام الداله sleep والداله الخاصة بحذف جميع الخطوط في كل مره وإعادة وضعها من جديد
    كود PHP:
     Sleep(1000);
       
    ObjectsDeleteAll(li_8); 
    في الكود المسئول عن رسم خطوط actual_VCharte
    سوف تضع شرط لرسم الخط عندما تكون القيمه للخط المرسوم مختلفه عن المعطيات الحاليه فقط
    كود PHP:
     if(ObjectGet("actual_VCharte",OBJPROP_PRICE1)!=g_ibuf_88[0]){
        
    ObjectDelete("actual_VCharte");
        
    ObjectCreate("actual_VCharte"OBJ_HLINEli_80g_ibuf_88[0]);
        
    ObjectSet("actual_Vcharte"OBJPROP_COLORBlue);
       } 
    آخر جزء وهو الحلقه الرئيسيه
    كود PHP:
    for (int l_index_40 0l_index_40 Barsl_index_40++) { 
    فبدلا من البحث في كل مره عن جميع الشموع على الشارت فيكفي أن تبحث عن الشموع الجديده فقط التي تكونت والشمعه الحاليه أما الشموع السابقه فطبيعي أن قيمتها لن تتغير لأنها أغلقت

    كود PHP:
     int limit=Bars-IndicatorCounted();
      
       for (
    int l_index_40 0l_index_40 limitl_index_40++) { 
    المؤشر في المرفقات بعد التعديل
    بارك الله بك استاذي العزيز واعزك الله في الدنيا والاخرة


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