صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 27
  1. #1
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي مؤشر بسيط المرجوا مساعدة في تحديد الخطأ

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

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

    افتراضي

    ما دامك قلت هنج

    عرفت انها مشكلة for


    كذا على السريع حتى يأتي اساتذه بالرد الشافي

    اكتبها هكذا
    كود:
       for(int i=1;i<=3;i++)
    آخر تعديل بواسطة أبو نـاصر ، 22-02-2016 الساعة 06:03 PM

  3. #3
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

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

    عرفت انها مشكلة for


    كذا على السريع حتى يأتي اساتذه بالرد الشافي

    اكتبها هكذا
    كود:
       for(int i=1;i<=3;i++)
    شكرا أخي على الجواب
    كتبتها بهذه الطريقة و لازال نفس المشكل
    المرجوا المساعدة

  4. #4
    الصورة الرمزية goldfile
    goldfile غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    سانت لوسيا
    المشاركات
    752

    افتراضي

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

    تحياتي ...
    الملفات المرفقة الملفات المرفقة

  5. #5
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

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

    تحياتي ...
    مشكوور أخي على الرد لكني لم أعرف أين الخطأ
    أنا لا أريد أن أرسم خط واحد، أريد أن أرسم مجموعة من الخطوط بين الهاي و اللو مثلا 50 خط أفقي بين الهاي و اللو
    عندما اضفت for إلى الكود لأرسم ما أردت ظهر لي نفس المشكل الأول
    المرجوا المساعدة و شكراااااا
    تحياتي

  6. #6
    الصورة الرمزية goldfile
    goldfile غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    سانت لوسيا
    المشاركات
    752

    افتراضي

    اخي الكريم اولا لديك خطا في المعادلة التالية
    كود PHP:
    A=(hight+low)/55
    لان الناتج قيمة صغيرة جدا غير متناسبة مع السعر على الشارت
    ساعطيك مثال كيف رسم خطوط افقية على Low و High اي شمعة الى غاية 55
    المتغيرات كما وضعتها انت اولا دالة رسم الخطوط الافقية
    كود PHP:
    void Draw(string name,datetime t1,double prc1,datetime t2,double prc2)
    {
     
             
    ObjectCreate(nameOBJ_TREND0t1,prc1,t2,prc2);
             
    ObjectSet(nameOBJPROP_COLORLineColor);
             
    ObjectSet(name,OBJPROP_WIDTH,4);
             
    ObjectSet(nameOBJPROP_RAY0);

    ثم بعد دلك اللوب في دالة اخرى يتم استدعائها او مباشرة في المين هكدا

    كود PHP:
        for(ObjCount 0;ObjCount<=DivisionNumber;ObjCount++){
        
    string objName "Hight_Low" ObjCount;    
            
    Draw(objName,Time[ObjCount], High[ObjCount],Time[ObjCount], Low[ObjCount]);
        } 
    لك خالص تحياتي

  7. #7
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة goldfile مشاهدة المشاركة
    اخي الكريم اولا لديك خطا في المعادلة التالية
    كود PHP:
    A=(hight+low)/55
    لان الناتج قيمة صغيرة جدا غير متناسبة مع السعر على الشارت
    ساعطيك مثال كيف رسم خطوط افقية على Low و High اي شمعة الى غاية 55
    المتغيرات كما وضعتها انت اولا دالة رسم الخطوط الافقية
    كود PHP:
    void Draw(string name,datetime t1,double prc1,datetime t2,double prc2)
    {
     
             
    ObjectCreate(nameOBJ_TREND0t1,prc1,t2,prc2);
             
    ObjectSet(nameOBJPROP_COLORLineColor);
             
    ObjectSet(name,OBJPROP_WIDTH,4);
             
    ObjectSet(nameOBJPROP_RAY0);

    ثم بعد دلك اللوب في دالة اخرى يتم استدعائها او مباشرة في المين هكدا

    كود PHP:
        for(ObjCount 0;ObjCount<=DivisionNumber;ObjCount++){
        
    string objName "Hight_Low" ObjCount;    
            
    Draw(objName,Time[ObjCount], High[ObjCount],Time[ObjCount], Low[ObjCount]);
        } 
    لك خالص تحياتي
    شكرااا أخي الكريم على الإجابة و المساعدة
    أولا أنا قمت بإدخال for على المؤشر الذي عدلته أنت و الذي به A=(hight+low)/2; و ليس A=(hight+low)/55; و لم تعمل
    ثانيا أنا لا أريد هاي و اللو لشمعة ما أنا أدخل هاي و لو تاريخي لزوج ما يعني الفارق بينهما كبير و أريد رسم عدد (أنا أحدده) من خطوط أفقية بينهما
    المرجوا المساعدة و شكرااا لك أخي الكريم
    تحياتي

  8. #8
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة goldfile مشاهدة المشاركة
    اخي الكريم اولا لديك خطا في المعادلة التالية
    كود PHP:
    A=(hight+low)/55
    لان الناتج قيمة صغيرة جدا غير متناسبة مع السعر على الشارت
    ساعطيك مثال كيف رسم خطوط افقية على Low و High اي شمعة الى غاية 55
    المتغيرات كما وضعتها انت اولا دالة رسم الخطوط الافقية
    كود PHP:
    void Draw(string name,datetime t1,double prc1,datetime t2,double prc2)
    {
     
             
    ObjectCreate(nameOBJ_TREND0t1,prc1,t2,prc2);
             
    ObjectSet(nameOBJPROP_COLORLineColor);
             
    ObjectSet(name,OBJPROP_WIDTH,4);
             
    ObjectSet(nameOBJPROP_RAY0);

    ثم بعد دلك اللوب في دالة اخرى يتم استدعائها او مباشرة في المين هكدا

    كود PHP:
        for(ObjCount 0;ObjCount<=DivisionNumber;ObjCount++){
        
    string objName "Hight_Low" ObjCount;    
            
    Draw(objName,Time[ObjCount], High[ObjCount],Time[ObjCount], Low[ObjCount]);
        } 
    لك خالص تحياتي
    شكرااا أخي الكريم على الإجابة و المساعدة
    أولا أنا قمت بإدخال for على المؤشر الذي عدلته أنت و الذي به A=(hight+low)/2; و ليس A=(hight+low)/55; و لم تعمل
    ثانيا أنا لا أريد هاي و اللو لشمعة ما أنا أدخل هاي و لو تاريخي لزوج ما يعني الفارق بينهما كبير و أريد رسم عدد (أنا أحدده) من خطوط أفقية بينهما
    المرجوا المساعدة و شكرااا لك أخي الكريم
    تحياتي

  9. #9
    الصورة الرمزية goldfile
    goldfile غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    سانت لوسيا
    المشاركات
    752

    افتراضي

    أخي الكريم اعتذر اني لم استطع تلبية طلبك لحد الساعة
    مافهمته ان تجعل المدخلات كالاتي
    الهاي - اللو - عدد الشموع التي تريد اختبارها ، ثم يرسم المؤشر خط افقي عند الهاي واخر عند اللو مثلا الهاي x واللو y و الشموع من 10 الى 50 ، اذا وجد القيمة x انطلاقا من الشمعة 10 الى 50 يرسم خط وكذلك بالنسبة للقيمة y
    هل هذا ماتريد ؟؟؟؟

  10. #10
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة goldfile مشاهدة المشاركة
    أخي الكريم اعتذر اني لم استطع تلبية طلبك لحد الساعة
    مافهمته ان تجعل المدخلات كالاتي
    الهاي - اللو - عدد الشموع التي تريد اختبارها ، ثم يرسم المؤشر خط افقي عند الهاي واخر عند اللو مثلا الهاي x واللو y و الشموع من 10 الى 50 ، اذا وجد القيمة x انطلاقا من الشمعة 10 الى 50 يرسم خط وكذلك بالنسبة للقيمة y
    هل هذا ماتريد ؟؟؟؟
    أهلا أخي
    أخي أنا أريد بكل بساطة أن أدخل الهي و اللو الذين اخترتهما ثم يرسم المؤشر خط افقي عند الهاي واخر عند اللو
    بعد ذلك يقوم المؤشر برسم خطوط أفقية بين الهاي و اللو بالفارق الذي أريده بين كل خط و خط
    مثلا بين الهاي و اللو 1000 نقطة , انا أريد فارق 100 نقط بين الخطوط يعني المؤشر لازم يرسم 10 خطوط انطلاقا من اللو إلى الهاي أو العكس ليس مهم
    و هذا ليس له علاقة بتاتا بالشموع
    أرجوا أن تكون الفكرة واضحة أخي و شكرااا جزيلا على المساعدة

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

    افتراضي

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

    كود:
          double A;
            double B=hight;
       A=(hight-low)/DivisionNumber;
       for(int i=A;i>=0;i--)
       {
       //string name = "L"+i;
       
       B=B-DivisionNumber;
       Draw("line"+i, B);
    
       }

  12. #12
    الصورة الرمزية goldfile
    goldfile غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    سانت لوسيا
    المشاركات
    752

    افتراضي

    المؤشر في المرفقات تدخل قييمة للهاي واخرى للو High و Low

    فيرسم عليهما خطين ثم عدد الخطوط التي تريد رسمها بين الهاي واللو

    في المتغير NumberDiv

    القيم الافتراضية هي على شارت GBP/USD

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


    كود PHP:
    //+------------------------------------------------------------------+
    //|                                  Copyright 2006, Driss M. Sliman |
    //|                                         Email: [email protected] |
    //+------------------------------------------------------------------+
     
     
    #property copyright "Copyright 2006, Driss M. Sliman "
    #property link      "[email protected]"
    #property indicator_chart_window
    #property indicator_buffers 0
     
    extern double high 1.49335 ;
    extern double low 1.38780 ;
    extern int   Numberdiv 20 ;
    extern color LineColor Green ;
    int ObjCount 0
    int current ;
     
    int init()
    {
        if (
    falseObjectsDeleteAll();  
        
    IndicatorShortName("High_Low");
        
    IndicatorDigits(Digits+1);
        
    IndicatorBuffers(0);
        
        
        return(
    0);
    }
     
    int deinit()
    {
        if (
    falseObjectsDeleteAll();
        return(
    0);
    }
     
    //+------------------------------------------------------------------+
    int start()
    {
      
    ObjectsDeleteAll();
       
    Process() ;
        return(
    0);
    }
     
    //+------------------------------------------------------------------+
     
    int Process()
    {
        
        
    int i;
        
    int counted_bars IndicatorCounted();
        if(
    counted_bars 0) return(-1);
        if(
    counted_bars 0counted_bars--;
        
    Bars counted_bars;
     
        while (
    >= 0)
        {
            
    current i;
            
    HLine1();
            
    HLine2();
            
    HLine3();
            
            
    i--;
        }
        return 
    ;
    }
     
    void HLine1()
    {
        
    ObjCount += 1;
        
    string objName "High" ObjCount;
        
    ObjectCreate(objNameOBJ_HLINE0Time[0], high);
        
    ObjectSet(objNameOBJPROP_COLORLineColor);
        
        
    }
     
    void HLine2()
    {
        
    double HL high low ;
        
    double step ;
        
    step = (HL/Numberdiv) ;
        for(
    double i low <= high ;i+=step ){
        
    string objName "Low" i;
        
    ObjectCreate(objNameOBJ_HLINE0Time[0],i);
        
    ObjectSet(objNameOBJPROP_COLORLineColor);
      }  
        
    }
     
    void HLine3()
    {
        
    ObjCount += 1;
        
    string objName "Lines" ObjCount;
        
    ObjectCreate(objNameOBJ_HLINE0Time[0], low);
        
    ObjectSet(objNameOBJPROP_COLORLineColor);  
        


  13. #13
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

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

    كود:
          double A;
            double B=hight;
       A=(hight-low)/DivisionNumber;
       for(int i=A;i>=0;i--)
       {
       //string name = "L"+i;
       
       B=B-DivisionNumber;
       Draw("line"+i, B);
    
       }
    شكراا جزيلا صديقي لقد حللته بنفس الطريقة تقريبا
    تحياتي لك

  14. #14
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة goldfile مشاهدة المشاركة
    المؤشر في المرفقات تدخل قييمة للهاي واخرى للو High و Low

    فيرسم عليهما خطين ثم عدد الخطوط التي تريد رسمها بين الهاي واللو

    في المتغير NumberDiv

    القيم الافتراضية هي على شارت GBP/USD

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


    كود PHP:
    //+------------------------------------------------------------------+
    //|                                  Copyright 2006, Driss M. Sliman |
    //|                                         Email: [email protected] |
    //+------------------------------------------------------------------+
     
     
    #property copyright "Copyright 2006, Driss M. Sliman "
    #property link      "[email protected]"
    #property indicator_chart_window
    #property indicator_buffers 0
     
    extern double high 1.49335 ;
    extern double low 1.38780 ;
    extern int   Numberdiv 20 ;
    extern color LineColor Green ;
    int ObjCount 0
    int current ;
     
    int init()
    {
        if (
    falseObjectsDeleteAll();  
        
    IndicatorShortName("High_Low");
        
    IndicatorDigits(Digits+1);
        
    IndicatorBuffers(0);
        
        
        return(
    0);
    }
     
    int deinit()
    {
        if (
    falseObjectsDeleteAll();
        return(
    0);
    }
     
    //+------------------------------------------------------------------+
    int start()
    {
      
    ObjectsDeleteAll();
       
    Process() ;
        return(
    0);
    }
     
    //+------------------------------------------------------------------+
     
    int Process()
    {
        
        
    int i;
        
    int counted_bars IndicatorCounted();
        if(
    counted_bars 0) return(-1);
        if(
    counted_bars 0counted_bars--;
        
    Bars counted_bars;
     
        while (
    >= 0)
        {
            
    current i;
            
    HLine1();
            
    HLine2();
            
    HLine3();
            
            
    i--;
        }
        return 
    ;
    }
     
    void HLine1()
    {
        
    ObjCount += 1;
        
    string objName "High" ObjCount;
        
    ObjectCreate(objNameOBJ_HLINE0Time[0], high);
        
    ObjectSet(objNameOBJPROP_COLORLineColor);
        
        
    }
     
    void HLine2()
    {
        
    double HL high low ;
        
    double step ;
        
    step = (HL/Numberdiv) ;
        for(
    double i low <= high ;i+=step ){
        
    string objName "Low" i;
        
    ObjectCreate(objNameOBJ_HLINE0Time[0],i);
        
    ObjectSet(objNameOBJPROP_COLORLineColor);
      }  
        
    }
     
    void HLine3()
    {
        
    ObjCount += 1;
        
    string objName "Lines" ObjCount;
        
    ObjectCreate(objNameOBJ_HLINE0Time[0], low);
        
    ObjectSet(objNameOBJPROP_COLORLineColor);  
        


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

    ها هو الكود الخاص بي
    كود:
    //+------------------------------------------------------------------+
    //|                                                      divisor.mq4 |
    //+------------------------------------------------------------------+
    #property copyright "Okitrinaw"
    #property link      "https://www.mql5.com"
    #property indicator_chart_window
    
    
    extern double hight=1.11111;
    extern double low=1.22222;
    extern int DivisionNumber=10;
    extern color LineColor=Red;
    //string line_name="L";
    
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int OnInit()
      {
        //if (false) ObjectsDeleteAll();
        return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start() { 
        
          double B = hight , A = low;
       double step = (B - A) / DivisionNumber;
       for(double i=A ; i<=B ; i+=step)
       {
       //string name = "L"+i;
       //B=B-DivisionNumber;
       Draw("line"+i, i);
     
       }
      
       return(0);
    }
            
       void Draw(string name, double price)
       {  
       //ObjectDelete(name);
       ObjectCreate(name, OBJ_HLINE, 0, Time[0], price);
       ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
       ObjectSet(name, OBJPROP_WIDTH, 1);
       ObjectSet(name, OBJPROP_COLOR, LineColor);
       }
    إن كان ممكن أن تشرح لي فائدة هذه الأكواد التي استعملتها
    كود:
     if (false) ObjectsDeleteAll();   
        IndicatorShortName("High_Low"); 
        IndicatorDigits(Digits+1); 
        IndicatorBuffers(0); 
     int counted_bars = IndicatorCounted(); 
        if(counted_bars < 0) return(-1); 
        if(counted_bars > 0) counted_bars--;
    و شكراااا جزيلااا
    تحياتي

  15. #15
    الصورة الرمزية okitrinaw
    okitrinaw غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    المشاركات
    54

    افتراضي

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

صفحة 1 من 2 12 الأخيرةالأخيرة

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