ارسم vline في أول يوم تداول من الشهر
Results 1 to 7 of 7

Thread: ارسم vline في أول يوم تداول من الشهر

  1. #1
    1 مرفق (مرفقات) أحاول ترميز مؤشر يمكنه عرض vline في أول يوم تداول من الشهر (في بعض الأشهر ، يكون أول يوم تداول هو الشهر الآخر هو الثاني أو الثالث. )

    هذا ما حاولت

    الرمز المُدرج #property copyright #property link #property Indior_chart_window/ ------------------------------------ ------------------------------ /| وظيفة تهيئة المؤشر المخصص |/ ----------------------------------------------- ------------------- int init () {return (0)؛ }/ ---------------------------------------------- -------------------- /| وظيفة إلغاء التهيئة من مؤشر الكاستر |/ ----------------------------------------------- ------------------- int deinit () {ObjectsDeleteAll ()؛ عودة (0) ؛ }/ ---------------------------------------------- -------------------- /| وظيفة تكرار المؤشر المخصص |/ ----------------------------------------------- ------------------- int start () {int Day1Exist، Day2Exist، Day3Exist = 0؛ int LookBack = 1000 ؛/عدد الأيام التي تريد الرجوع إليها (int i = 0؛ ilt؛ = LookBack؛ i ) {datetime dailyTime = iTime (Symbol ()، 1440، i)؛ اسم السلسلة = Time_Vertical_Line i ؛ if (TimeDay (dailyTime) == 1) {if (! ObjectCreate (0، name، OBJ_VLINE، 0، dailyTime، 0)) اطبع (فشل في رسم كود الخطأ: GetLastError ()) ؛ مجموعة الكائنات (الاسم ، OBJPROP_WIDTH، 3) ؛ مجموعة الكائنات (الاسم ، OBJPROP_COLOR ، أحمر) ؛ ObjectSet (الاسم ، OBJPROP_BACK ، صحيح) ؛ Day1Exist = Day1Exist 1 ؛ } else if (TimeDay (dailyTime) == 2 Day1Exist lt؛ 1) {if (! ObjectCreate (0، name، OBJ_VLINE، 0، dailyTime، 0)) اطبع (فشل في رسم الخط ERROR CODE:، GetLastError ()) ؛ مجموعة الكائنات (الاسم ، OBJPROP_WIDTH، 3) ؛ مجموعة الكائنات (الاسم ، OBJPROP_COLOR ، أخضر) ؛ ObjectSet (الاسم ، OBJPROP_BACK ، صحيح) ؛ Day2Exist = Day2Exist 1 ، } else if (TimeDay (dailyTime) == 3 (Day1Exist lt؛ 1) || (Day2Exist lt؛ 1)) {if (! ObjectCreate (0، name، OBJ_VLINE، 0، dailyTime، 0)) اطبع (فشل الرسم كود خطأ السطر: GetLastError ()) ؛ مجموعة الكائنات (الاسم ، OBJPROP_WIDTH، 3) ؛ مجموعة الكائنات (الاسم ، OBJPROP_COLOR ، أزرق) ؛ ObjectSet (الاسم ، OBJPROP_BACK ، صحيح) ؛ Day1Exist = 0 ؛ Day2Exist = 0 ؛ } }/للبداية
    المشكلة: لا يرسم خطاً في الأيام التي يكون فيها اليوم هو الثاني أو الثالث




    لقد جربت عددًا قليلاً من جزر الهند ، لكنهم رسموا vline في اليوم الأخير من الشهر وأريده في اليوم الأول من الشهر.

  2. #2

    Quote Originally Posted by ;
    يجب أن يكون هناك العديد من الطرق للقيام بذلك. وإليك طريقة: int j = TimeMonth (Time [Bars-1])؛ اسم السلسلة التاريخ والوقت د ؛ لـ (int i = Bars-1؛ igt؛ 0؛ i -) {d = Time [i] ؛ إذا (TimeMonth (d)! = j) {j = TimeMonth (d) ؛ الاسم = vline IntegerToString (i) ، ObjectDelete (الاسم) ؛ ObjectCreate (الاسم ، OBJ_VLINE ، 0 ، د ، 0) ؛ }}
    اللعنة ، أحيانًا يكون الأمر بسيطًا جدًا. شكرا!

  3. #3
    تحتاج فقط إلى رسم vLine في الوقت المقابل لفتح شريط الشهر. تم إدراج الكود #define PREFIX __vline_month_start_ #include lt؛ arrayslist.mqhgt؛ # تضمين lt ؛ مخططاتمخطط مخطط. int OnInit () {return (INIT_SUCCEEDED) ، } int OnCalculate (const int rate_total، const int prev_calculated، const datetime time # 91؛ # 93 ؛، const double open # 91؛ # 93 ؛، const double high # 91؛ # 93 ؛، const double low # 91؛ # 93 ؛، const double close # 91؛ # 93 ؛، const long tick_volume # 91؛ # 93 ؛، const long volume # 91؛ # 93 ؛، const int spread # 91؛ # 93؛) {static CList gc؛ ثابت التاريخ والوقت recent_calc = 0 ؛ datetime check_delta = recent_calc فترة الثواني (PERIOD_MN1) ، إذا (TimeCurrent () gt؛ check_delta) {مرات التاريخ والوقت # 91؛ # 93 ؛؛ ArraySetAsSeries (مرات ، صحيح) ؛ عدد_العدد_العدد = 0 ؛ فعل {num_bars = Bars (_Symbol، PERIOD_MN1) ؛ } while (num_bars lt؛ = 0) ؛ int x = CopyTime (_Symbol، PERIOD_MN1،0، gc.Total ()؟ 1: num_bars، times) ؛ لـ (int i = 0؛ ilt؛ x؛ i ) {CChartObjectVLine * line = new CChartObjectVLine () ؛ إضافة (سطر) ؛ اسم السلسلة = PREFIX سلسلة (مرات # 91 ؛ أنا # 93 ؛) ؛ إنشاء (ChartID () ، الاسم ، 0 ، مرات # 91 ؛ i # 93 ؛) ؛ } recent_calc = مرات # 91 ؛ 0 # 93 ؛؛ } return (rate_total)؛ }

  4. #4
    يجب أن يكون هناك العديد من الطرق للقيام بذلك ، وإليك طريقة: رمز مُدرج int j = TimeMonth (الوقت # 91 ؛ Bars-1 # 93 ؛) ؛ اسم السلسلة التاريخ والوقت د ؛ لـ (int i = Bars-1؛ igt؛ 0؛ i -) {d = Time # 91؛ i # 93 ؛؛ إذا (TimeMonth (d)! = j) {j = TimeMonth (d) ؛ الاسم = vline IntegerToString (i) ، ObjectDelete (الاسم) ؛ ObjectCreate (الاسم ، OBJ_VLINE ، 0 ، د ، 0) ؛ }}

  5. #5

    Quote Originally Posted by ;
    أحاول ترميز مؤشر يمكنه إظهار vline في أول يوم تداول من الشهر (في شهر ما يكون أول يوم تداول هو الشهر الثاني أو الثالث.) لقد جربت #property copyright #property link #property index_chart_window/ ------------------------------------ ------------------------------ /| وظيفة تهيئة المؤشر المخصص |/ ----------------------------------------------- ------------------- int init () {return (0)؛ }/ ---------------------------------------------- -------------------- ...
    افعل ذلك يدويًا.

  6. #6

    Quote Originally Posted by ;
    {quote} افعل ذلك يدويًا.
    هذا ليس سوى جزء مما أريد أن يفعله الإندي. إذا كانت vlines فقط نعم ، فسيكون من الأسهل القيام بذلك يدويًا.

  7. #7

    Quote Originally Posted by ;
    تحتاج فقط إلى رسم vLine في الوقت المقابل لفتح شريط الشهر. #define PREFIX __vline_month_start_ #include lt؛ صفائفlist.mqhgt؛ # تضمين lt ؛ مخططاتمخطط مخطط. int OnInit () {return (INIT_SUCCEEDED) ، } int OnCalculate (const int rate_total، const int prev_calculated، const datetime time [] ، const double double open [] ، const double high [] ، const double low [] ، const double double close [] ، const long tick_volume [] ، const long حجم [] ، انتشار ثابت []) {ثابت CList gc؛ ثابت التاريخ والوقت recent_calc = 0 ؛ check_delta التاريخ والوقت ...
    شكرا لك!

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز BB مفعل
  • الابتسامات مفعلة
  • رمز[IMG] مفعل
  • رمز [VIDEO] مفعل
  • رمز HTML غير مفعل
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.