سوالات برنامه نویسی

سوال بپرسید, جواب بگیرید و با انجمن های ما در سرتاسر دنیا در ارتباط باشید.

آکادمی ایران ام کیو ال انجمن سوالات MQL5 آبجکت گرافیکی در کتابخانه استاندارد mql5

برچسب زده شده: 

  • آبجکت گرافیکی در کتابخانه استاندارد mql5

    نوشته شده توسط بهزاد در 2024-02-09 در 3:12 ب.ظ
    سلام 
    من میخوام با استفاده از کلاس CChartObjectVLine یک خط عمودی روی چارت بندازم . فکر میکنم کد ها رو درست استفاده کردم اما چیزی روی چارت نمایش داده نمیشه . ممنون میشم اگر راهنمایی کنید .
    کدهای برنامه به این شکل هستن : 

    //+------------------------------------------------------------------+

    //| test_c++.mq5 |

    //| Copyright 2023, MetaQuotes Ltd. |

    //| https://www.mql5.com |

    //+------------------------------------------------------------------+

    #property copyright "Copyright 2023, MetaQuotes Ltd."

    #property link "https://www.mql5.com"

    #property version "1.00"

    //+------------------------------------------------------------------+

    //| Script program start function |

    //+------------------------------------------------------------------+

    #include <ChartObjects\ChartObjectsLines.mqh>

    //+------------------------------------------------------------------+

    datetime line_time = TimeCurrent(); // set the time for the line

    string line_name = "MyLine"; // set the name for the line

    // create the line object

    CChartObjectVLine my_line;

    //CChartObject ChartObject ;

    //+------------------------------------------------------------------+

    //| |

    //+------------------------------------------------------------------+

    void OnStart()

    {

    //---

    // check if the line object was created successfully

    if(! my_line.Create(0, line_name, 0, line_time))

    {

    Print("Failed to create the line object!");

    }

    my_line.SetInteger(OBJPROP_HIDDEN, 0, false) ;

    my_line.SetInteger(OBJPROP_BACK, 0, true) ;

    my_line.SetInteger(OBJPROP_SELECTABLE, 0, true) ;

    my_line.SetInteger(OBJPROP_SELECTED, 0, false) ;

    my_line.SetInteger(OBJPROP_ZORDER, 0, true) ;

    }

    نتیجه پرینت :

    2024.02.09 13:33:19.259 test_c++ (XAUUSD.i,H1) OBJPROP_TIME; 2024.02.09 12:03:19

    2024.02.09 13:33:19.259 test_c++ (XAUUSD.i,H1) OBJPROP_CHART_ID; 0

    2024.02.09 13:33:19.259 test_c++ (XAUUSD.i,H1) OBJPROP_COLOR: clrRed

    2024.02.09 13:33:19.259 test_c++ (XAUUSD.i,H1) OBJPROP_STYLE; 0

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_WIDTH; 1

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_BACK; true

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_SELECTABLE; true

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_SELECTED; false

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_RAY; true

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_HIDDEN; false

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_ZORDER; true

    2024.02.09 13:33:19.260 test_c++ (XAUUSD.i,H1) OBJPROP_Time; 2024.02.09 12:03:19

    =======================================================

    حسین پاسخ داد 2 ماه پیش 2 اعضا · 7 پاسخ ها
  • 7 پاسخ ها
  • بهزاد

    عضو
    2024-02-09 در 3:14 ب.ظ

    متاسفانه کد ها راست چین ثبت شدن . ظاهرا راهی هم برای چپ چین کردنش وجود نداره

  • حسین

    مدیر کل
    2024-02-10 در 3:18 ب.ظ

    کدتون مشکلی نداره ، اگر دارید از این کد در اسکریپ استفاده میکنید ، وقتی از کلاس ها استفاده میشه بعد از پایان برنامه خط پاک میشه ،در اسکریپ چون زود برنامه پاک میشه ممکنه خط رو نبینید

  • بهزاد

    عضو
    2024-02-18 در 10:49 ب.ظ

    ممنون از پاسختون . مشکل ایجاست که وقتی تابع ترسیم خط رو مستقیم می نویسم خط ایجاد میشه ولی زمانی که از کتابخانه استفاده میکنم خطی نمیبینم . مثال زیر رو ببینید :

    #property link "https://www.mql5.com"

    #property version "1.00"

    #include <ChartObjects\ChartObjectsLines.mqh>

    //+------------------------------------------------------------------+

    //| Script program start function |

    //+------------------------------------------------------------------+

    CChartObjectVLine ChartObjectVLine ;

    //+------------------------------------------------------------------+

    //| |

    //+------------------------------------------------------------------+

    void OnStart()

    {

    //--''

    ChartObjectVLine.Create (0,"line1",0, D'2024.02.15 05:00:00' ) ;

    ObjectCreate(0,"line2",OBJ_VLINE,0, D'2024.02.15 05:00:00',0.0);

    }

    روی چارت خط line2 رو میتونم ببینم ولی line1 رو نه .

  • بهزاد

    عضو
    2024-02-18 در 10:52 ب.ظ

    ساعت رو تغییر دادم .(چون ممکن بود خطها روی هم بیفتن )توی کدی که اجرا کردم ساعت یکی 8 و دیگری 5 هست . امام باز فرقی نداره

  • بهزاد

    عضو
    2024-02-19 در 4:17 ق.ظ

    استاد احمدی عزیز من به قدری خسته بودم که درست پاسختون رو متوجه نشده بودم . میشه بفرمایید چیکار باید کرد که موقع استفاده از کلاس آبجکت از روی چارت پاک نشه؟ من اصرار دارم برای نوشتن اکسپرتم از کلاس ها استفاده کنم

  • بهزاد

    عضو
    2024-02-19 در 9:23 ق.ظ

    استاد خیلی خیلی ممنون از پاسختون . نمیدونید چه کمک بزرگی کردین . نزدیک یک ماهه روزی متوسط 5 ساعت دارم توی سایت های خارجی و فرومها و و گوگلل و هوش مصنوعی و… دنبال جواب اون سوال می گشتم . واقعا ممنونم از نکته ای که فرمودین . واقعا دیگه نمیدونستم باید چیکار کنم . هیچ جا ندیدم این نکته رو گفته باشن.

    کد ها رو وارد اندیکاتور و یک اکسپرت کردم آبجکت رو برام ترسیم کرد . باز هم ممنونم

  • حسین

    مدیر کل
    2024-02-23 در 3:57 ب.ظ

    خواهش میکنم ، در کل محتوا برای این موضوع کم هست
    ولی شما توجه نمیکند ،مشکلتون رو گفته بودم ،ولی درست نخونده بودید بعدا متوجه شدید
    خوبه که حل شد

برای پاسخ دادن وارد سایت شوید.