Skip to content

Ashkanbm1990/mt4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

//+------------------------------------------------------------------+ //| BoxIndicator.mq4 | //| Modified by GPT | //+------------------------------------------------------------------+ #property indicator_chart_window

// ورودی‌های عمومی

input int DaysBack = 0; input string STOP = "خط استاپ"; input bool ShowLineStopLevel = FALSE; input int LineStopLevel = 51; input string BreakEven = "خط بریک ایون"; input bool ShowLinebreakEven = true; input int LinebreakEven = 88; input color BoxColorBreakEven = Yellow; input string TPPOSITION = "تی پی"; input bool ShowTP = FALSE; input int TP = 138; input color BoxTP = Red;

// تنظیمات سشن‌ها input string StartENDBOX = "ساعت شروع و پایان پیش سشن"; input string StartTimeAsia = "02:00"; input string EndTimeAsia = "02:59"; input string StartTimeOuro = "09:00"; input string EndTimeOuro = "09:59"; input string StartTimeUsa1 = "14:00"; input string EndTimeUsa1 = "14:59"; input string StartTimeUsa2 = "14:30"; input string EndTimeUsa2 = "15:29";

// تنظیمات هر سشن برای باکس‌های 1 ساعته و 4 ساعته آسیا input string Asia =" تنظیمات باکس آسیا"; input int DistanceFromTopfor1hoursAsia = 149; input int DistanceFromBottomfor1hoursAsia = 149; input int BoxThicknessfor1hoursAsia = 130; input color BoxColor1hoursAsia = DeepSkyBlue; input color MiddleBoxColor1hoursAsia = DodgerBlue; input int DistanceFromTopfor4hoursAsia = 299; input int DistanceFromBottomfor4hoursAsia = 299; input int BoxThicknessfor4hoursAsia = 280; input color BoxColor4hoursAsia = DeepSkyBlue; input color MiddleBoxColor4hoursAsia = DodgerBlue;

// تنظیمات هر سشن برای باکس‌های 1 ساعته و 4 ساعته اروپا (Ouro) input string Uoro =" تنظیمات باکس اروپا"; input int DistanceFromTopfor1hoursOuro = 149; input int DistanceFromBottomfor1hoursOuro = 149; input int BoxThicknessfor1hoursOuro = 130; input color BoxColor1hoursOuro = DarkGray; input color MiddleBoxColor1hoursOuro = SlateGray; input int DistanceFromTopfor4hoursOuro = 299; input int DistanceFromBottomfor4hoursOuro = 299; input int BoxThicknessfor4hoursOuro = 280; input color BoxColor4hoursOuro = DarkGray; input color MiddleBoxColor4hoursOuro = SlateGray;

// تنظیمات هر سشن برای باکس‌های 1 ساعته و 4 ساعته آمریکا 1 input string Usa1 =" تنظیمات باکس امریکا 1 "; input int DistanceFromTopfor1hoursUsa1 = 149; input int DistanceFromBottomfor1hoursUsa1 = 149; input int BoxThicknessfor1hoursUsa1 = 130; input color BoxColor1hoursUsa1 = LimeGreen; input color MiddleBoxColor1hoursUsa1 = LightSeaGreen; input int DistanceFromTopfor4hoursUsa1 = 299; input int DistanceFromBottomfor4hoursUsa1 = 299; input int BoxThicknessfor4hoursUsa1 = 280; input color BoxColor4hoursUsa1 = LimeGreen; input color MiddleBoxColor4hoursUsa1 = LightSeaGreen;

// تنظیمات هر سشن برای باکس‌های 1 ساعته و 4 ساعته آمریکا 2 input string Usa2 =" تنظیمات باکس امریکا 2 "; input int DistanceFromTopfor1hoursUsa2 = 149; input int DistanceFromBottomfor1hoursUsa2 = 149; input int BoxThicknessfor1hoursUsa2 = 130; input color BoxColor1hoursUsa2 = Tan; input color MiddleBoxColor1hoursUsa2 = RosyBrown; input int DistanceFromTopfor4hoursUsa2 = 299; input int DistanceFromBottomfor4hoursUsa2 = 299; input int BoxThicknessfor4hoursUsa2 = 280; input color BoxColor4hoursUsa2 = Tan; input color MiddleBoxColor4hoursUsa2 = RosyBrown;

// ورودی‌های مربوط به هر روز و هر باکس (برای تمامی هشت باکس)

// دوشنبه input string Monday ="دوشنبه" ; input bool DisableMonday = false; // خاموش/روشن کردن دوشنبه input string MondayAsia = "یک ساعته و چهار ساعته آسیا"; input bool ShowMondayAsia1H_TopBox = true; input bool ShowMondayAsia1H_BottomBox = true; input bool ShowMondayAsia1H_MiddleUpBox = true; input bool ShowMondayAsia1H_MiddleDownBox = true; input bool ShowMondayAsia4H_TopBox = true; input bool ShowMondayAsia4H_BottomBox = true; input bool ShowMondayAsia4H_MiddleUpBox = true; input bool ShowMondayAsia4H_MiddleDownBox = true; input string MondayOuro = "یک ساعته و چهار ساعته اروپا" ; input bool ShowMondayOuro1H_TopBox = false; input bool ShowMondayOuro1H_BottomBox = false; input bool ShowMondayOuro1H_MiddleUpBox = true; input bool ShowMondayOuro1H_MiddleDownBox = true; input bool ShowMondayOuro4H_TopBox = true; input bool ShowMondayOuro4H_BottomBox = true; input bool ShowMondayOuro4H_MiddleUpBox = true; input bool ShowMondayOuro4H_MiddleDownBox = true; input string MondayUsa1 = "یک ساعته و چهار ساعته امریکا 1" ; input bool ShowMondayUsa1_1H_TopBox = true; input bool ShowMondayUsa1_1H_BottomBox = true; input bool ShowMondayUsa1_1H_MiddleUpBox = false; input bool ShowMondayUsa1_1H_MiddleDownBox = false; input bool ShowMondayUsa1_4H_TopBox = false; input bool ShowMondayUsa1_4H_BottomBox = false; input bool ShowMondayUsa1_4H_MiddleUpBox = false; input bool ShowMondayUsa1_4H_MiddleDownBox = false; input string MondayUsa2 = "یک ساعته و چهار ساعته امریکا 2" ; input bool ShowMondayUsa2_1H_TopBox = true; input bool ShowMondayUsa2_1H_BottomBox = true; input bool ShowMondayUsa2_1H_MiddleUpBox = true; input bool ShowMondayUsa2_1H_MiddleDownBox = true; input bool ShowMondayUsa2_4H_TopBox = false; input bool ShowMondayUsa2_4H_BottomBox = false; input bool ShowMondayUsa2_4H_MiddleUpBox = false; input bool ShowMondayUsa2_4H_MiddleDownBox = false;

// سه‌شنبه input string Tuesday ="سشنبه" ; input bool DisableTuesday = false; // خاموش/روشن کردن سه‌شنبه input string TuesdayAsia = "یک ساعته و چهار ساعته آسیا"; input bool ShowTuesdayAsia1H_TopBox = true; input bool ShowTuesdayAsia1H_BottomBox = true; input bool ShowTuesdayAsia1H_MiddleUpBox = true; input bool ShowTuesdayAsia1H_MiddleDownBox = true; input bool ShowTuesdayAsia4H_TopBox = true; input bool ShowTuesdayAsia4H_BottomBox = true; input bool ShowTuesdayAsia4H_MiddleUpBox = true; input bool ShowTuesdayAsia4H_MiddleDownBox = true; input string TuesdayOuro = "یک ساعته و چهار ساعته اروپا" ; input bool ShowTuesdayOuro1H_TopBox = false; input bool ShowTuesdayOuro1H_BottomBox = false; input bool ShowTuesdayOuro1H_MiddleUpBox = false; input bool ShowTuesdayOuro1H_MiddleDownBox = false; input bool ShowTuesdayOuro4H_TopBox = true; input bool ShowTuesdayOuro4H_BottomBox = true; input bool ShowTuesdayOuro4H_MiddleUpBox = true; input bool ShowTuesdayOuro4H_MiddleDownBox = true; input string TuesdayUsa1 = "یک ساعته و چهار ساعته امریکا 1" ; input bool ShowTuesdayUsa1_1H_TopBox = false; input bool ShowTuesdayUsa1_1H_BottomBox = false; input bool ShowTuesdayUsa1_1H_MiddleUpBox = true; input bool ShowTuesdayUsa1_1H_MiddleDownBox = true; input bool ShowTuesdayUsa1_4H_TopBox = true; input bool ShowTuesdayUsa1_4H_BottomBox = true; input bool ShowTuesdayUsa1_4H_MiddleUpBox = true; input bool ShowTuesdayUsa1_4H_MiddleDownBox = true; input string TuesdayUsa2 = "یک ساعته و چهار ساعته امریکا 2" ; input bool ShowTuesdayUsa2_1H_TopBox = false; input bool ShowTuesdayUsa2_1H_BottomBox = false; input bool ShowTuesdayUsa2_1H_MiddleUpBox = false; input bool ShowTuesdayUsa2_1H_MiddleDownBox = false; input bool ShowTuesdayUsa2_4H_TopBox = true; input bool ShowTuesdayUsa2_4H_BottomBox = true; input bool ShowTuesdayUsa2_4H_MiddleUpBox = false; input bool ShowTuesdayUsa2_4H_MiddleDownBox = false;

// چهارشنبه input string Wednesday ="چهارشنبه" ; input bool DisableWednesday = false; // خاموش/روشن کردن چهارشنبه input string WednesdayAsia = "یک ساعته و چهار ساعته آسیا"; input bool ShowWednesdayAsia1H_TopBox = true; input bool ShowWednesdayAsia1H_BottomBox = true; input bool ShowWednesdayAsia1H_MiddleUpBox = true; input bool ShowWednesdayAsia1H_MiddleDownBox = true; input bool ShowWednesdayAsia4H_TopBox = true; input bool ShowWednesdayAsia4H_BottomBox = true; input bool ShowWednesdayAsia4H_MiddleUpBox = true; input bool ShowWednesdayAsia4H_MiddleDownBox = true; input string WednesdayOuro = "یک ساعته و چهار ساعته اروپا" ; input bool ShowWednesdayOuro1H_TopBox = true; input bool ShowWednesdayOuro1H_BottomBox = true; input bool ShowWednesdayOuro1H_MiddleUpBox = false; input bool ShowWednesdayOuro1H_MiddleDownBox = false; input bool ShowWednesdayOuro4H_TopBox = false; input bool ShowWednesdayOuro4H_BottomBox = false; input bool ShowWednesdayOuro4H_MiddleUpBox = true; input bool ShowWednesdayOuro4H_MiddleDownBox = true; input string WednesdayUsa1 = "یک ساعته و چهار ساعته امریکا 1" ; input bool ShowWednesdayUsa1_1H_TopBox = false; input bool ShowWednesdayUsa1_1H_BottomBox = false; input bool ShowWednesdayUsa1_1H_MiddleUpBox = false; input bool ShowWednesdayUsa1_1H_MiddleDownBox = false; input bool ShowWednesdayUsa1_4H_TopBox = false; input bool ShowWednesdayUsa1_4H_BottomBox = false; input bool ShowWednesdayUsa1_4H_MiddleUpBox = false; input bool ShowWednesdayUsa1_4H_MiddleDownBox = false; input string WednesdayUsa2 = "یک ساعته و چهار ساعته امریکا 2" ; input bool ShowWednesdayUsa2_1H_TopBox = false; input bool ShowWednesdayUsa2_1H_BottomBox = false; input bool ShowWednesdayUsa2_1H_MiddleUpBox = false; input bool ShowWednesdayUsa2_1H_MiddleDownBox = false; input bool ShowWednesdayUsa2_4H_TopBox = true; input bool ShowWednesdayUsa2_4H_BottomBox = true; input bool ShowWednesdayUsa2_4H_MiddleUpBox = false; input bool ShowWednesdayUsa2_4H_MiddleDownBox = false;

// پنج شنبه input string Thursday ="پنج شنبه" ; input bool DisableThursday = false; // خاموش/روشن کردن پنج‌شنبه input string ThursdayAsia = "یک ساعته و چهار ساعته آسیا"; input bool ShowThursdayAsia1H_TopBox = true; input bool ShowThursdayAsia1H_BottomBox = true; input bool ShowThursdayAsia1H_MiddleUpBox = true; input bool ShowThursdayAsia1H_MiddleDownBox = true; input bool ShowThursdayAsia4H_TopBox = false; input bool ShowThursdayAsia4H_BottomBox = false; input bool ShowThursdayAsia4H_MiddleUpBox = false; input bool ShowThursdayAsia4H_MiddleDownBox = false; input string ThursdayOuro = "یک ساعته و چهار ساعته اروپا" ; input bool ShowThursdayOuro1H_TopBox = true; input bool ShowThursdayOuro1H_BottomBox = true; input bool ShowThursdayOuro1H_MiddleUpBox = true; input bool ShowThursdayOuro1H_MiddleDownBox = true; input bool ShowThursdayOuro4H_TopBox =false ; input bool ShowThursdayOuro4H_BottomBox = false; input bool ShowThursdayOuro4H_MiddleUpBox = false; input bool ShowThursdayOuro4H_MiddleDownBox = false; input string ThursdayUsa1 = "یک ساعته و چهار ساعته امریکا 1" ; input bool ShowThursdayUsa1_1H_TopBox = false; input bool ShowThursdayUsa1_1H_BottomBox = false; input bool ShowThursdayUsa1_1H_MiddleUpBox = false; input bool ShowThursdayUsa1_1H_MiddleDownBox = false; input bool ShowThursdayUsa1_4H_TopBox = false; input bool ShowThursdayUsa1_4H_BottomBox = false; input bool ShowThursdayUsa1_4H_MiddleUpBox = true; input bool ShowThursdayUsa1_4H_MiddleDownBox = true; input string ThursdayUsa2 = "یک ساعته و چهار ساعته امریکا 2" ; input bool ShowThursdayUsa2_1H_TopBox = false; input bool ShowThursdayUsa2_1H_BottomBox = false; input bool ShowThursdayUsa2_1H_MiddleUpBox = false; input bool ShowThursdayUsa2_1H_MiddleDownBox = false; input bool ShowThursdayUsa2_4H_TopBox = true; input bool ShowThursdayUsa2_4H_BottomBox = true; input bool ShowThursdayUsa2_4H_MiddleUpBox = false; input bool ShowThursdayUsa2_4H_MiddleDownBox = false;

// جمعه input string Friday ="جمعه " ; input bool DisableFriday = false; // خاموش/روشن کردن جمعه input string FridayAsia = "یک ساعته و چهار ساعته آسیا"; input bool ShowFridayAsia1H_TopBox = true; input bool ShowFridayAsia1H_BottomBox = true; input bool ShowFridayAsia1H_MiddleUpBox = true; input bool ShowFridayAsia1H_MiddleDownBox = true; input bool ShowFridayAsia4H_TopBox = TRUE; input bool ShowFridayAsia4H_BottomBox = TRUE; input bool ShowFridayAsia4H_MiddleUpBox = false; input bool ShowFridayAsia4H_MiddleDownBox = false; input string FridayOuro = "یک ساعته و چهار ساعته اروپا" ; input bool ShowFridayOuro1H_TopBox = true; input bool ShowFridayOuro1H_BottomBox = true; input bool ShowFridayOuro1H_MiddleUpBox = true; input bool ShowFridayOuro1H_MiddleDownBox = true; input bool ShowFridayOuro4H_TopBox = true; input bool ShowFridayOuro4H_BottomBox = true; input bool ShowFridayOuro4H_MiddleUpBox = false; input bool ShowFridayOuro4H_MiddleDownBox = false; input string FridayUsa1 = "یک ساعته و چهار ساعته امریکا 1" ; input bool ShowFridayUsa1_1H_TopBox = false; input bool ShowFridayUsa1_1H_BottomBox = false; input bool ShowFridayUsa1_1H_MiddleUpBox = true; input bool ShowFridayUsa1_1H_MiddleDownBox = true; input bool ShowFridayUsa1_4H_TopBox = false; input bool ShowFridayUsa1_4H_BottomBox = false; input bool ShowFridayUsa1_4H_MiddleUpBox = false; input bool ShowFridayUsa1_4H_MiddleDownBox = false; input string FridayUsa2 = "یک ساعته و چهار ساعته امریکا 2" ; input bool ShowFridayUsa2_1H_TopBox = false; input bool ShowFridayUsa2_1H_BottomBox = false; input bool ShowFridayUsa2_1H_MiddleUpBox = true; input bool ShowFridayUsa2_1H_MiddleDownBox = true; input bool ShowFridayUsa2_4H_TopBox = true; input bool ShowFridayUsa2_4H_BottomBox = true; input bool ShowFridayUsa2_4H_MiddleUpBox = false; input bool ShowFridayUsa2_4H_MiddleDownBox = false;

//+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); }

//+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if (reason == REASON_REMOVE) { ObjectsDeleteAll(0, "Box_"); } }

//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) {

if (rates_total == prev_calculated) return rates_total;

if (prev_calculated == 0) ObjectsDeleteAll(0, "Box_");

datetime today = TimeCurrent();
datetime dateStart = today - DaysBack * 86400;

for (int setIndex = 1; setIndex <= 4; setIndex++) {
    datetime currentDay;
    int dayOfWeek;

    for (int dayOffset = 0; dayOffset <= DaysBack; dayOffset++) {
        currentDay = dateStart + dayOffset * 86400;
        dayOfWeek = TimeDayOfWeek(currentDay);

        // تنظیم زمان شروع و پایان برای هر سشن
        string StartTime, EndTime;
        int DistanceFromTopfor1hours, DistanceFromBottomfor1hours, BoxThicknessfor1hours;
        color BoxColor1hours, MiddleBoxColor1hours;
        bool ShowTopBox1hours, ShowBottomBox1hours, ShowMiddleBoxUp1hours, ShowMiddleBoxDown1hours;

        int DistanceFromTopfor4hours, DistanceFromBottomfor4hours, BoxThicknessfor4hours;
        color BoxColor4hours, MiddleBoxColor4hours;
        bool ShowTopBox4hours, ShowBottomBox4hours, ShowMiddleBoxUp4hours, ShowMiddleBoxDown4hours;

        // تنظیمات برای هر سشن بر اساس اندیس setIndex
        switch (setIndex) {
            case 1: // سشن آسیا
                StartTime = StartTimeAsia;
                EndTime = EndTimeAsia;
                DistanceFromTopfor1hours = DistanceFromTopfor1hoursAsia;
                DistanceFromBottomfor1hours = DistanceFromBottomfor1hoursAsia;
                BoxThicknessfor1hours = BoxThicknessfor1hoursAsia;
                BoxColor1hours = BoxColor1hoursAsia;
                MiddleBoxColor1hours = MiddleBoxColor1hoursAsia;

                DistanceFromTopfor4hours = DistanceFromTopfor4hoursAsia;
                DistanceFromBottomfor4hours = DistanceFromBottomfor4hoursAsia;
                BoxThicknessfor4hours = BoxThicknessfor4hoursAsia;
                BoxColor4hours = BoxColor4hoursAsia;
                MiddleBoxColor4hours = MiddleBoxColor4hoursAsia;

                // بررسی وضعیت خاموش کردن دوشنبه
                if (dayOfWeek == 1 && DisableMonday) continue;

                // تعیین فعال یا غیرفعال بودن هر باکس برای دوشنبه
                if (dayOfWeek == 1) {
                    ShowTopBox1hours = ShowMondayAsia1H_TopBox;
                    ShowBottomBox1hours = ShowMondayAsia1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowMondayAsia1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowMondayAsia1H_MiddleDownBox;

                    ShowTopBox4hours = ShowMondayAsia4H_TopBox;
                    ShowBottomBox4hours = ShowMondayAsia4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowMondayAsia4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowMondayAsia4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای سه‌شنبه
                else if (dayOfWeek == 2) {
                    if (DisableTuesday) continue;
                    ShowTopBox1hours = ShowTuesdayAsia1H_TopBox;
                    ShowBottomBox1hours = ShowTuesdayAsia1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowTuesdayAsia1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowTuesdayAsia1H_MiddleDownBox;

                    ShowTopBox4hours = ShowTuesdayAsia4H_TopBox;
                    ShowBottomBox4hours = ShowTuesdayAsia4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowTuesdayAsia4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowTuesdayAsia4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای چهارشنبه
                else if (dayOfWeek == 3) {
                    if (DisableWednesday) continue;
                    ShowTopBox1hours = ShowWednesdayAsia1H_TopBox;
                    ShowBottomBox1hours = ShowWednesdayAsia1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowWednesdayAsia1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowWednesdayAsia1H_MiddleDownBox;

                    ShowTopBox4hours = ShowWednesdayAsia4H_TopBox;
                    ShowBottomBox4hours = ShowWednesdayAsia4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowWednesdayAsia4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowWednesdayAsia4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای پنج‌شنبه
                else if (dayOfWeek == 4) {
                    if (DisableThursday) continue;
                    ShowTopBox1hours = ShowThursdayAsia1H_TopBox;
                    ShowBottomBox1hours = ShowThursdayAsia1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowThursdayAsia1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowThursdayAsia1H_MiddleDownBox;

                    ShowTopBox4hours = ShowThursdayAsia4H_TopBox;
                    ShowBottomBox4hours = ShowThursdayAsia4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowThursdayAsia4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowThursdayAsia4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای جمعه
                else if (dayOfWeek == 5) {
                    if (DisableFriday) continue;
                    ShowTopBox1hours = ShowFridayAsia1H_TopBox;
                    ShowBottomBox1hours = ShowFridayAsia1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowFridayAsia1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowFridayAsia1H_MiddleDownBox;

                    ShowTopBox4hours = ShowFridayAsia4H_TopBox;
                    ShowBottomBox4hours = ShowFridayAsia4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowFridayAsia4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowFridayAsia4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای شنبه
               
                break;

            case 2: // سشن اروپا (Ouro)
                StartTime = StartTimeOuro;
                EndTime = EndTimeOuro;
                DistanceFromTopfor1hours = DistanceFromTopfor1hoursOuro;
                DistanceFromBottomfor1hours = DistanceFromBottomfor1hoursOuro;
                BoxThicknessfor1hours = BoxThicknessfor1hoursOuro;
                BoxColor1hours = BoxColor1hoursOuro;
                MiddleBoxColor1hours = MiddleBoxColor1hoursOuro;

                DistanceFromTopfor4hours = DistanceFromTopfor4hoursOuro;
                DistanceFromBottomfor4hours = DistanceFromBottomfor4hoursOuro;
                BoxThicknessfor4hours = BoxThicknessfor4hoursOuro;
                BoxColor4hours = BoxColor4hoursOuro;
                MiddleBoxColor4hours = MiddleBoxColor4hoursOuro;

                // بررسی وضعیت خاموش کردن دوشنبه
                if (dayOfWeek == 1 && DisableMonday) continue;

                // تعیین فعال یا غیرفعال بودن هر باکس برای دوشنبه
                if (dayOfWeek == 1) {
                    ShowTopBox1hours = ShowMondayOuro1H_TopBox;
                    ShowBottomBox1hours = ShowMondayOuro1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowMondayOuro1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowMondayOuro1H_MiddleDownBox;

                    ShowTopBox4hours = ShowMondayOuro4H_TopBox;
                    ShowBottomBox4hours = ShowMondayOuro4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowMondayOuro4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowMondayOuro4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای سه‌شنبه
                else if (dayOfWeek == 2) {
                    if (DisableTuesday) continue;
                    ShowTopBox1hours = ShowTuesdayOuro1H_TopBox;
                    ShowBottomBox1hours = ShowTuesdayOuro1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowTuesdayOuro1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowTuesdayOuro1H_MiddleDownBox;

                    ShowTopBox4hours = ShowTuesdayOuro4H_TopBox;
                    ShowBottomBox4hours = ShowTuesdayOuro4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowTuesdayOuro4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowTuesdayOuro4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای چهارشنبه
                else if (dayOfWeek == 3) {
                    if (DisableWednesday) continue;
                    ShowTopBox1hours = ShowWednesdayOuro1H_TopBox;
                    ShowBottomBox1hours = ShowWednesdayOuro1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowWednesdayOuro1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowWednesdayOuro1H_MiddleDownBox;

                    ShowTopBox4hours = ShowWednesdayOuro4H_TopBox;
                    ShowBottomBox4hours = ShowWednesdayOuro4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowWednesdayOuro4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowWednesdayOuro4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای پنج‌شنبه
                else if (dayOfWeek == 4) {
                    if (DisableThursday) continue;
                    ShowTopBox1hours = ShowThursdayOuro1H_TopBox;
                    ShowBottomBox1hours = ShowThursdayOuro1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowThursdayOuro1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowThursdayOuro1H_MiddleDownBox;

                    ShowTopBox4hours = ShowThursdayOuro4H_TopBox;
                    ShowBottomBox4hours = ShowThursdayOuro4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowThursdayOuro4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowThursdayOuro4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای جمعه
                else if (dayOfWeek == 5) {
                    if (DisableFriday) continue;
                    ShowTopBox1hours = ShowFridayOuro1H_TopBox;
                    ShowBottomBox1hours = ShowFridayOuro1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowFridayOuro1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowFridayOuro1H_MiddleDownBox;

                    ShowTopBox4hours = ShowFridayOuro4H_TopBox;
                    ShowBottomBox4hours = ShowFridayOuro4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowFridayOuro4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowFridayOuro4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای شنبه
                
                break;

            case 3: // سشن آمریکا 1
                StartTime = StartTimeUsa1;
                EndTime = EndTimeUsa1;
                DistanceFromTopfor1hours = DistanceFromTopfor1hoursUsa1;
                DistanceFromBottomfor1hours = DistanceFromBottomfor1hoursUsa1;
                BoxThicknessfor1hours = BoxThicknessfor1hoursUsa1;
                BoxColor1hours = BoxColor1hoursUsa1;
                MiddleBoxColor1hours = MiddleBoxColor1hoursUsa1;

                DistanceFromTopfor4hours = DistanceFromTopfor4hoursUsa1;
                DistanceFromBottomfor4hours = DistanceFromBottomfor4hoursUsa1;
                BoxThicknessfor4hours = BoxThicknessfor4hoursUsa1;
                BoxColor4hours = BoxColor4hoursUsa1;
                MiddleBoxColor4hours = MiddleBoxColor4hoursUsa1;

                // بررسی وضعیت خاموش کردن دوشنبه
                if (dayOfWeek == 1 && DisableMonday) continue;

                // تعیین فعال یا غیرفعال بودن هر باکس برای دوشنبه
                if (dayOfWeek == 1) {
                    ShowTopBox1hours = ShowMondayUsa1_1H_TopBox;
                    ShowBottomBox1hours = ShowMondayUsa1_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowMondayUsa1_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowMondayUsa1_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowMondayUsa1_4H_TopBox;
                    ShowBottomBox4hours = ShowMondayUsa1_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowMondayUsa1_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowMondayUsa1_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای سه‌شنبه
                else if (dayOfWeek == 2) {
                    if (DisableTuesday) continue;
                    ShowTopBox1hours = ShowTuesdayUsa1_1H_TopBox;
                    ShowBottomBox1hours = ShowTuesdayUsa1_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowTuesdayUsa1_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowTuesdayUsa1_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowTuesdayUsa1_4H_TopBox;
                    ShowBottomBox4hours = ShowTuesdayUsa1_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowTuesdayUsa1_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowTuesdayUsa1_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای چهارشنبه
                else if (dayOfWeek == 3) {
                    if (DisableWednesday) continue;
                    ShowTopBox1hours = ShowWednesdayUsa1_1H_TopBox;
                    ShowBottomBox1hours = ShowWednesdayUsa1_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowWednesdayUsa1_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowWednesdayUsa1_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowWednesdayUsa1_4H_TopBox;
                    ShowBottomBox4hours = ShowWednesdayUsa1_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowWednesdayUsa1_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowWednesdayUsa1_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای پنج‌شنبه
                else if (dayOfWeek == 4) {
                    if (DisableThursday) continue;
                    ShowTopBox1hours = ShowThursdayUsa1_1H_TopBox;
                    ShowBottomBox1hours = ShowThursdayUsa1_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowThursdayUsa1_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowThursdayUsa1_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowThursdayUsa1_4H_TopBox;
                    ShowBottomBox4hours = ShowThursdayUsa1_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowThursdayUsa1_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowThursdayUsa1_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای جمعه
                else if (dayOfWeek == 5) {
                    if (DisableFriday) continue;
                    ShowTopBox1hours = ShowFridayUsa1_1H_TopBox;
                    ShowBottomBox1hours = ShowFridayUsa1_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowFridayUsa1_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowFridayUsa1_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowFridayUsa1_4H_TopBox;
                    ShowBottomBox4hours = ShowFridayUsa1_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowFridayUsa1_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowFridayUsa1_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای شنبه
               
                break;

            case 4: // سشن آمریکا 2
                StartTime = StartTimeUsa2;
                EndTime = EndTimeUsa2;
                DistanceFromTopfor1hours = DistanceFromTopfor1hoursUsa2;
                DistanceFromBottomfor1hours = DistanceFromBottomfor1hoursUsa2;
                BoxThicknessfor1hours = BoxThicknessfor1hoursUsa2;
                BoxColor1hours = BoxColor1hoursUsa2;
                MiddleBoxColor1hours = MiddleBoxColor1hoursUsa2;

                DistanceFromTopfor4hours = DistanceFromTopfor4hoursUsa2;
                DistanceFromBottomfor4hours = DistanceFromBottomfor4hoursUsa2;
                BoxThicknessfor4hours = BoxThicknessfor4hoursUsa2;
                BoxColor4hours = BoxColor4hoursUsa2;
                MiddleBoxColor4hours = MiddleBoxColor4hoursUsa2;

                // بررسی وضعیت خاموش کردن دوشنبه
                if (dayOfWeek == 1 && DisableMonday) continue;

                // تعیین فعال یا غیرفعال بودن هر باکس برای دوشنبه
                if (dayOfWeek == 1) {
                    ShowTopBox1hours = ShowMondayUsa2_1H_TopBox;
                    ShowBottomBox1hours = ShowMondayUsa2_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowMondayUsa2_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowMondayUsa2_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowMondayUsa2_4H_TopBox;
                    ShowBottomBox4hours = ShowMondayUsa2_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowMondayUsa2_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowMondayUsa2_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای سه‌شنبه
                else if (dayOfWeek == 2) {
                    if (DisableTuesday) continue;
                    ShowTopBox1hours = ShowTuesdayUsa2_1H_TopBox;
                    ShowBottomBox1hours = ShowTuesdayUsa2_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowTuesdayUsa2_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowTuesdayUsa2_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowTuesdayUsa2_4H_TopBox;
                    ShowBottomBox4hours = ShowTuesdayUsa2_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowTuesdayUsa2_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowTuesdayUsa2_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای چهارشنبه
                else if (dayOfWeek == 3) {
                    if (DisableWednesday) continue;
                    ShowTopBox1hours = ShowWednesdayUsa2_1H_TopBox;
                    ShowBottomBox1hours = ShowWednesdayUsa2_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowWednesdayUsa2_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowWednesdayUsa2_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowWednesdayUsa2_4H_TopBox;
                    ShowBottomBox4hours = ShowWednesdayUsa2_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowWednesdayUsa2_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowWednesdayUsa2_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای پنج‌شنبه
                else if (dayOfWeek == 4) {
                    if (DisableThursday) continue;
                    ShowTopBox1hours = ShowThursdayUsa2_1H_TopBox;
                    ShowBottomBox1hours = ShowThursdayUsa2_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowThursdayUsa2_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowThursdayUsa2_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowThursdayUsa2_4H_TopBox;
                    ShowBottomBox4hours = ShowThursdayUsa2_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowThursdayUsa2_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowThursdayUsa2_4H_MiddleDownBox;
                }
                // تعیین فعال یا غیرفعال بودن هر باکس برای جمعه
                else if (dayOfWeek == 5) {
                    if (DisableFriday) continue;
                    ShowTopBox1hours = ShowFridayUsa2_1H_TopBox;
                    ShowBottomBox1hours = ShowFridayUsa2_1H_BottomBox;
                    ShowMiddleBoxUp1hours = ShowFridayUsa2_1H_MiddleUpBox;
                    ShowMiddleBoxDown1hours = ShowFridayUsa2_1H_MiddleDownBox;

                    ShowTopBox4hours = ShowFridayUsa2_4H_TopBox;
                    ShowBottomBox4hours = ShowFridayUsa2_4H_BottomBox;
                    ShowMiddleBoxUp4hours = ShowFridayUsa2_4H_MiddleUpBox;
                    ShowMiddleBoxDown4hours = ShowFridayUsa2_4H_MiddleDownBox;
                }
             
                break;
        }

        // تجزیه زمان شروع و پایان
        int StartHour, StartMinute;
        int EndHour, EndMinute;
        StringToTime(StartTime, StartHour, StartMinute);
        StringToTime(EndTime, EndHour, EndMinute);

        datetime startTime = StrToTime(TimeToString(currentDay, TIME_DATE) + " " + IntegerToString(StartHour) + ":" + IntegerToString(StartMinute));
        datetime endTime = StrToTime(TimeToString(currentDay, TIME_DATE) + " " + IntegerToString(EndHour) + ":" + IntegerToString(EndMinute));

        if (today < endTime) {
            continue; // اگر هنوز به زمان پایان نرسیده‌ایم، هیچ باکسی رسم نخواهد شد
        }

        double highestPrice = DBL_MIN;
        double lowestPrice = DBL_MAX;

        for (int i = 0; i < rates_total; i++) {
            if (time[i] >= startTime && time[i] <= endTime) {
                highestPrice = MathMax(highestPrice, high[i]);
                lowestPrice = MathMin(lowestPrice, low[i]);
            }
        }

        if (highestPrice != DBL_MIN && lowestPrice != DBL_MAX) {
            string boxBaseName = "Box_" + TimeToString(currentDay, TIME_DATE) + "_Set" + IntegerToString(setIndex);

            datetime boxStartTime = endTime + 60; // یک دقیقه بعد از زمان پایان
            datetime boxEndTime = StrToTime(TimeToString(currentDay, TIME_DATE) + " 23:59:00");

            // باکس‌های پایین
            if (ShowTopBox1hours) {
                ObjectCreate(0, boxBaseName + "پایین انتها یک ساعته" , OBJ_RECTANGLE, 0, boxStartTime, highestPrice - DistanceFromTopfor1hours * Point,boxStartTime+6*3600, highestPrice - BoxThicknessfor1hours * Point);
                ObjectSetInteger(0, boxBaseName + "پایین انتها یک ساعته", OBJPROP_COLOR, BoxColor1hours);
                ObjectSetInteger(0, boxBaseName + "پایین انتها یک ساعته" , OBJPROP_WIDTH, 1);
                 ObjectSetInteger(0, boxBaseName+ "پایین انتها یک ساعته", OBJPROP_BACK, False);
               if (ShowLineStopLevel) {
                // رسم خط در بالای باکس با فاصله تعیین‌شده
                ObjectCreate(0, boxBaseName + "استاپ پایین انتها یک ساعته" , OBJ_TREND, 0, boxStartTime, highestPrice - (DistanceFromTopfor1hours + LineStopLevel) * Point, boxStartTime+4*3600, highestPrice - (DistanceFromTopfor1hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName + "استاپ پایین انتها یک ساعته" , OBJPROP_COLOR, BoxColor1hours);
                ObjectSetInteger(0, boxBaseName + "استاپ پایین انتها یک ساعته" , OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "استاپ پایین انتها یک ساعته" , OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "استاپ پایین انتها یک ساعته" , OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین
                }
                  if (ShowLinebreakEven) {
                           //رسم خط بریک ایون
                ObjectCreate(0, boxBaseName + "بریک ایون یایین انتها یک ساعته"  , OBJ_TREND, 0, boxStartTime, highestPrice - (DistanceFromTopfor1hours - LinebreakEven) * Point, boxStartTime+4*3600, highestPrice - (DistanceFromTopfor1hours - LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName + "بریک ایون یایین انتها یک ساعته" , OBJPROP_COLOR, BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName + "بریک ایون یایین انتها یک ساعته" , OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "بریک ایون یایین انتها یک ساعته" , OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "بریک ایون یایین انتها یک ساعته" , OBJPROP_STYLE, STYLE_DASHDOTDOT);  // تنظیم به صورت نقطه‌چین
                }
                 if (ShowTP) {
                  //رسم خط TP
                ObjectCreate(0, boxBaseName + " تی پی یایین انتها یک ساعته"  , OBJ_TREND, 0, boxStartTime, highestPrice - (DistanceFromTopfor1hours - TP) * Point, boxStartTime+4*3600, highestPrice - (DistanceFromTopfor1hours - TP) * Point);
                ObjectSetInteger(0, boxBaseName + " تی پی یایین انتها یک ساعته" , OBJPROP_COLOR, BoxTP);
                ObjectSetInteger(0, boxBaseName +  " تی پی یایین انتها یک ساعته" , OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName +  " تی پی یایین انتها یک ساعته" , OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " تی پی یایین انتها یک ساعته" , OBJPROP_STYLE, STYLE_DASH);  // تنظیم به صورت نقطه‌چین
                    }
                     }

           
            // باکس‌های بالا
            if (ShowBottomBox1hours) {
                ObjectCreate(0, boxBaseName + "بالا انتها یک ساعته", OBJ_RECTANGLE, 0, boxStartTime, lowestPrice + DistanceFromBottomfor1hours * Point,boxStartTime+6*3600, lowestPrice + BoxThicknessfor1hours * Point);
                ObjectSetInteger(0, boxBaseName + "بالا انتها یک ساعته", OBJPROP_COLOR, BoxColor1hours);
                ObjectSetInteger(0, boxBaseName + "بالا انتها یک ساعته", OBJPROP_WIDTH,1);
                 ObjectSetInteger(0, boxBaseName + "بالا انتها یک ساعته", OBJPROP_BACK, False);
                  if (ShowLineStopLevel) {
                 //رسم خط پایین
                ObjectCreate(0, boxBaseName + " استاپ بالا انتها یک ساعته", OBJ_TREND, 0, boxStartTime,lowestPrice + (DistanceFromBottomfor1hours + LineStopLevel) * Point, boxStartTime+4*3600, lowestPrice +  (DistanceFromBottomfor1hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها یک ساعته", OBJPROP_COLOR, BoxColor1hours);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها یک ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها یک ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها یک ساعته", OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین
                }
                 if (ShowLinebreakEven) {
               //رسم خط بریک ایون
                ObjectCreate(0, boxBaseName + "بریک ایون بالا انتها یک ساعته", OBJ_TREND, 0, boxStartTime,lowestPrice + (DistanceFromBottomfor1hours - LinebreakEven) * Point, boxStartTime+4*3600, lowestPrice +  (DistanceFromBottomfor1hours - LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها یک ساعته", OBJPROP_COLOR, BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها یک ساعته" , OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها یک ساعته" , OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها یک ساعته" , OBJPROP_STYLE, STYLE_DASHDOTDOT);  // تنظیم به صورت نقطه‌چین
                }
                  if (ShowTP) {
                // TP
                ObjectCreate(0, boxBaseName + " تی پی بالا انتها یک ساعته", OBJ_TREND, 0, boxStartTime,lowestPrice + (DistanceFromBottomfor1hours - TP) * Point, boxStartTime+4*3600, lowestPrice +  (DistanceFromBottomfor1hours - TP) * Point);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها یک ساعته" , OBJPROP_COLOR, BoxTP);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها یک ساعته", OBJPROP_WIDTH,1);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها یک ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها یک ساعته", OBJPROP_STYLE, STYLE_DASH);  // تنظیم به صورت نقطه‌چین
            }
            }
            

            // محاسبه قیمت میانیی یکبار
            double middlePrice = (highestPrice + lowestPrice) / 2;

              // باکس‌های میانه بالا
            if (ShowMiddleBoxUp1hours) {
                ObjectCreate(0, boxBaseName + "بالا وسط یک ساعته" , OBJ_RECTANGLE, 0, boxStartTime, middlePrice + DistanceFromTopfor1hours * Point, boxStartTime+6*3600, middlePrice + BoxThicknessfor1hours * Point);
                ObjectSetInteger(0, boxBaseName + "بالا وسط یک ساعته" , OBJPROP_COLOR, MiddleBoxColor1hours);
                ObjectSetInteger(0, boxBaseName + "بالا وسط یک ساعته" ,  OBJPROP_WIDTH,1);
                 ObjectSetInteger(0, boxBaseName + "بالا وسط یک ساعته" , OBJPROP_BACK, False);
                  if (ShowLineStopLevel) {
                  // رسم خط میانه 
                ObjectCreate(0, boxBaseName + " استاپ بالا وسط یک ساعته", OBJ_TREND, 0, boxStartTime,  middlePrice + (DistanceFromTopfor1hours + LineStopLevel) * Point, boxStartTime+4*3600, middlePrice +(DistanceFromTopfor1hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط یک ساعته", OBJPROP_COLOR, MiddleBoxColor1hours);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط یک ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط یک ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط یک ساعته", OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین
                }
                 if (ShowLinebreakEven) {
                  // رسم خط بریک 
                ObjectCreate(0, boxBaseName + "بریک ایون بالا وسط یک ساعته" , OBJ_TREND, 0, boxStartTime,  middlePrice + (DistanceFromTopfor1hours - LinebreakEven) * Point, boxStartTime+4*3600, middlePrice +(DistanceFromTopfor1hours - LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط یک ساعته" , OBJPROP_COLOR, BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط یک ساعته" ,  OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط یک ساعته" , OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط یک ساعته" , OBJPROP_STYLE, STYLE_DASHDOTDOT);  // تنظیم به صورت نقطه‌چین
                }
                  if (ShowTP) {
                // TP
                ObjectCreate(0, boxBaseName + " تی پی بالا وسط یک ساعته" , OBJ_TREND, 0, boxStartTime,  middlePrice + (DistanceFromTopfor1hours - TP) * Point, boxStartTime+4*3600, middlePrice +(DistanceFromTopfor1hours - TP) * Point);
                 ObjectSetInteger(0, boxBaseName + " تی پی بالا وسط یک ساعته", OBJPROP_COLOR, BoxTP);
                ObjectSetInteger(0, boxBaseName +  " تی پی بالا وسط یک ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا وسط یک ساعته" , OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا وسط یک ساعته" , OBJPROP_STYLE, STYLE_DASH);  // تنظیم به صورت نقطه‌چین
           }
            }

            // باکس‌های میانه پایین
            if (ShowMiddleBoxDown1hours) {
                ObjectCreate(0, boxBaseName + "پایین وسط یک ساعته", OBJ_RECTANGLE, 0, boxStartTime, middlePrice - DistanceFromBottomfor1hours * Point, boxStartTime+6*3600, middlePrice - BoxThicknessfor1hours * Point);
                ObjectSetInteger(0, boxBaseName + "پایین وسط یک ساعته", OBJPROP_COLOR, MiddleBoxColor1hours);
                ObjectSetInteger(0, boxBaseName + "پایین وسط یک ساعته", OBJPROP_WIDTH, 1);
                 ObjectSetInteger(0, boxBaseName + "پایین وسط یک ساعته", OBJPROP_BACK, False);
                 if (ShowLineStopLevel) {
                // خط میانه
                ObjectCreate(0, boxBaseName + " استاپ پایین وسط یک ساعته", OBJ_TREND, 0, boxStartTime,middlePrice - (DistanceFromBottomfor1hours + LineStopLevel) * Point, boxStartTime+4*3600, middlePrice -  (DistanceFromBottomfor1hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین وسط یک ساعته", OBJPROP_COLOR,MiddleBoxColor1hours);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین وسط یک ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین وسط یک ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین وسط یک ساعته", OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین 
                }
                 if (ShowLinebreakEven) {
                      // خط بریک ایون
                ObjectCreate(0, boxBaseName + "بریک ایون پایین وسط یک ساعته", OBJ_TREND, 0, boxStartTime,middlePrice - (DistanceFromBottomfor1hours - LinebreakEven) * Point, boxStartTime+4*3600, middlePrice -  (DistanceFromBottomfor1hours - LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName +"بریک ایون پایین وسط یک ساعته", OBJPROP_COLOR,BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName + "بریک ایون پایین وسط یک ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "بریک ایون پایین وسط یک ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "بریک ایون پایین وسط یک ساعته", OBJPROP_STYLE, STYLE_DASHDOTDOT);  // تنظیم به صورت نقطه‌چین 
                }
                  if (ShowTP) {
                   // تی پی
                ObjectCreate(0, boxBaseName + " تی پی پایین وسط یک ساعته", OBJ_TREND, 0, boxStartTime,middlePrice - (DistanceFromBottomfor1hours - TP) * Point, boxStartTime+4*3600, middlePrice -  (DistanceFromBottomfor1hours - TP) * Point);
                 ObjectSetInteger(0, boxBaseName + " تی پی پایین وسط یک ساعته" , OBJPROP_COLOR, BoxTP);
                ObjectSetInteger(0, boxBaseName + " تی پی پایین وسط یک ساعته" , OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " تی پی پایین وسط یک ساعته" , OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName +  " تی پی پایین وسط یک ساعته" , OBJPROP_STYLE, STYLE_DASH);  // تنظیم به صورت نقطه‌چین
           }
            }
    // باکس‌های 4 ساعته
            // باکس‌های 4 ساعته
            if (ShowTopBox4hours) {
                ObjectCreate(0, boxBaseName + "پایین انتها چهار ساعته", OBJ_RECTANGLE, 0, boxStartTime, highestPrice - DistanceFromTopfor4hours * Point, boxStartTime+6*3600, highestPrice - BoxThicknessfor4hours * Point);
                ObjectSetInteger(0, boxBaseName + "پایین انتها چهار ساعته", OBJPROP_COLOR, BoxColor4hours);
                ObjectSetInteger(0, boxBaseName + "پایین انتها چهار ساعته", OBJPROP_WIDTH, 1);
                 ObjectSetInteger(0, boxBaseName + "پایین انتها چهار ساعته", OBJPROP_BACK, False);
                 if (ShowLineStopLevel) {
                  // رسم خط در بالای باکس با فاصله تعیین‌شده
                ObjectCreate(0, boxBaseName + " استاپ پایین انتها چهار ساعته", OBJ_TREND, 0, boxStartTime, highestPrice - (DistanceFromTopfor4hours + LineStopLevel) * Point, boxStartTime+4*3600, highestPrice - (DistanceFromTopfor4hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین انتها چهار ساعته", OBJPROP_COLOR, BoxColor4hours);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین انتها چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین انتها چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " استاپ پایین انتها چهار ساعته", OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین
                }
                if (ShowLinebreakEven) {
              
                 // رسم خط بریک
                ObjectCreate(0, boxBaseName + "بریک ایون پایین انتها چهار ساعته", OBJ_TREND, 0, boxStartTime, highestPrice - (DistanceFromTopfor4hours - LinebreakEven) * Point, boxStartTime+4*3600, highestPrice - (DistanceFromTopfor4hours - LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName + "بریک ایون پایین انتها چهار ساعته", OBJPROP_COLOR, BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName + "بریک ایون پایین انتها چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "بریک ایون پایین انتها چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "بریک ایون پایین انتها چهار ساعته", OBJPROP_STYLE, STYLE_DASHDOTDOT);
                }
                 if (ShowTP) {
                //تی پی
                ObjectCreate(0, boxBaseName + " تی پی پایین انتها چهار ساعته", OBJ_TREND, 0, boxStartTime, highestPrice - (DistanceFromTopfor4hours - TP) * Point, boxStartTime+4*3600, highestPrice - (DistanceFromTopfor4hours - TP) * Point);
                 ObjectSetInteger(0, boxBaseName + " تی پی پایین انتها چهار ساعته", OBJPROP_COLOR, BoxTP);
                ObjectSetInteger(0, boxBaseName + " تی پی پایین انتها چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " تی پی پایین انتها چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " تی پی پایین انتها چهار ساعته", OBJPROP_STYLE, STYLE_DASH); 
                } 
            }

             // باکس‌های پایین
            if (ShowBottomBox4hours) {
                ObjectCreate(0, boxBaseName +  "بالا انتها چهار ساعته", OBJ_RECTANGLE, 0, boxStartTime, lowestPrice + DistanceFromBottomfor4hours * Point, boxStartTime+6*3600,lowestPrice + BoxThicknessfor4hours * Point);
                ObjectSetInteger(0, boxBaseName +  "بالا انتها چهار ساعته", OBJPROP_COLOR, BoxColor4hours);
                ObjectSetInteger(0, boxBaseName +  "بالا انتها چهار ساعته", OBJPROP_WIDTH,1);
                 ObjectSetInteger(0, boxBaseName +  "بالا انتها چهار ساعته", OBJPROP_BACK, False);
                 if (ShowLineStopLevel) {
                //رسم خط 
                ObjectCreate(0, boxBaseName + " استاپ بالا انتها چهار ساعته", OBJ_TREND, 0, boxStartTime,lowestPrice + (DistanceFromBottomfor4hours + LineStopLevel) * Point, boxStartTime+4*3600, lowestPrice +  (DistanceFromBottomfor4hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها چهار ساعته", OBJPROP_COLOR, BoxColor4hours);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا انتها چهار ساعته", OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین
                }
               if (ShowLinebreakEven) {
                //رسم خط بریک
                ObjectCreate(0, boxBaseName + "بریک ایون بالا انتها چهار ساعته", OBJ_TREND, 0, boxStartTime,lowestPrice + (DistanceFromBottomfor4hours - LinebreakEven) * Point, boxStartTime+4*3600, lowestPrice +  (DistanceFromBottomfor4hours -LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها چهار ساعته", OBJPROP_COLOR, BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا انتها چهار ساعته", OBJPROP_STYLE, STYLE_DASHDOTDOT);  // تنظیم به صورت نقطه‌چین 
                }
                 if (ShowTP) {
                //tp
                ObjectCreate(0, boxBaseName + " تی پی بالا انتها چهار ساعته", OBJ_TREND, 0, boxStartTime,lowestPrice + (DistanceFromBottomfor4hours - TP) * Point, boxStartTime+4*3600, lowestPrice +  (DistanceFromBottomfor4hours -TP) * Point); 
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها چهار ساعته", OBJPROP_COLOR, BoxTP);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها چهار ساعته", OBJPROP_WIDTH,1);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " تی پی بالا انتها چهار ساعته", OBJPROP_STYLE, STYLE_DASH);  // تنظیم به صورت نقطه‌چین 
            }
            }

            // باکس‌های میانه بالا
                            if (ShowMiddleBoxUp4hours) {
                ObjectCreate(0, boxBaseName + "بالا وسط چهار ساعته", OBJ_RECTANGLE, 0, boxStartTime, middlePrice + DistanceFromTopfor4hours * Point, boxStartTime+6*3600, middlePrice + BoxThicknessfor4hours * Point);
                ObjectSetInteger(0, boxBaseName + "بالا وسط چهار ساعته", OBJPROP_COLOR, MiddleBoxColor4hours);
                ObjectSetInteger(0, boxBaseName + "بالا وسط چهار ساعته", OBJPROP_WIDTH,1);
                 ObjectSetInteger(0, boxBaseName + "بالا وسط چهار ساعته", OBJPROP_BACK, False);
                 if (ShowLineStopLevel) {
              // رسم خط
                ObjectCreate(0, boxBaseName + " استاپ بالا وسط چهار ساعته", OBJ_TREND, 0, boxStartTime,  middlePrice + (DistanceFromTopfor4hours + LineStopLevel) * Point, boxStartTime+4*3600, middlePrice +(DistanceFromTopfor4hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط چهار ساعته", OBJPROP_COLOR, MiddleBoxColor4hours);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + " استاپ بالا وسط چهار ساعته", OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین
                }
                // رسم خط بریک
                ObjectCreate(0, boxBaseName + "بریک ایون بالا وسط چهار ساعته", OBJ_TREND, 0, boxStartTime,  middlePrice + (DistanceFromTopfor4hours - LinebreakEven) * Point, boxStartTime+4*3600, middlePrice +(DistanceFromTopfor4hours - LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط چهار ساعته", OBJPROP_COLOR, BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName + "بریک ایون بالا وسط چهار ساعته", OBJPROP_STYLE, STYLE_DASHDOTDOT);  // تنظیم به صورت نقطه‌چین
                if (ShowTP) {
                // TP
                ObjectCreate(0, boxBaseName + " تی پی بالا وسط چهار ساعته", OBJ_TREND, 0, boxStartTime,  middlePrice + (DistanceFromTopfor4hours - TP) * Point, boxStartTime+4*3600, middlePrice +(DistanceFromTopfor4hours - TP) * Point);
                 ObjectSetInteger(0, boxBaseName +" تی پی بالا وسط چهار ساعته", OBJPROP_COLOR, BoxTP);
                ObjectSetInteger(0, boxBaseName +" تی پی بالا وسط چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName +" تی پی بالا وسط چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName +" تی پی بالا وسط چهار ساعته", OBJPROP_STYLE, STYLE_DASH);  // تنظیم به صورت نقطه‌چین
            }
            }

             // باکس‌های میانه پایین
            if (ShowMiddleBoxDown4hours) {
                ObjectCreate(0, boxBaseName + "پایین وسط چهار ساعته", OBJ_RECTANGLE, 0, boxStartTime, middlePrice - DistanceFromBottomfor4hours * Point, boxStartTime+6*3600, middlePrice - BoxThicknessfor4hours * Point);
                ObjectSetInteger(0, boxBaseName + "پایین وسط چهار ساعته", OBJPROP_COLOR, MiddleBoxColor4hours);
                ObjectSetInteger(0, boxBaseName + "پایین وسط چهار ساعته", OBJPROP_WIDTH, 1);
                 ObjectSetInteger(0, boxBaseName + "پایین وسط چهار ساعته", OBJPROP_BACK, False);
                 if (ShowLineStopLevel) {
               // رسم خط
                ObjectCreate(0, boxBaseName +" استاپ پایین وسط چهار ساعته", OBJ_TREND, 0, boxStartTime,middlePrice - (DistanceFromBottomfor4hours + LineStopLevel) * Point, boxStartTime+4*3600, middlePrice -  (DistanceFromBottomfor4hours + LineStopLevel) * Point);
                ObjectSetInteger(0, boxBaseName +" استاپ پایین وسط چهار ساعته", OBJPROP_COLOR,MiddleBoxColor1hours);
                ObjectSetInteger(0, boxBaseName +" استاپ پایین وسط چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName +" استاپ پایین وسط چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName +" استاپ پایین وسط چهار ساعته", OBJPROP_STYLE, STYLE_DOT);  // تنظیم به صورت نقطه‌چین
                }
                if (ShowLinebreakEven) {
                      // رسم خط بریک
                ObjectCreate(0, boxBaseName +"بریک ایون پایین وسط چهار ساعته", OBJ_TREND, 0, boxStartTime,middlePrice - (DistanceFromBottomfor4hours - LinebreakEven) * Point, boxStartTime+4*3600, middlePrice -  (DistanceFromBottomfor4hours - LinebreakEven) * Point);
                ObjectSetInteger(0, boxBaseName +"بریک ایون پایین وسط چهار ساعته", OBJPROP_COLOR,BoxColorBreakEven);
                ObjectSetInteger(0, boxBaseName +"بریک ایون پایین وسط چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName +"بریک ایون پایین وسط چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName +"بریک ایون پایین وسط چهار ساعته", OBJPROP_STYLE, STYLE_DASHDOTDOT);  // تنظیم به صورت نقطه‌چین
                }
                 if (ShowTP) {
                 //TP
                ObjectCreate(0, boxBaseName +" تی پی پایین وسط چهار ساعته", OBJ_TREND, 0, boxStartTime,middlePrice - (DistanceFromBottomfor4hours - TP) * Point, boxStartTime+4*3600, middlePrice -  (DistanceFromBottomfor4hours - TP) * Point);
                ObjectSetInteger(0, boxBaseName +" تی پی پایین وسط چهار ساعته", OBJPROP_COLOR,BoxTP);
                ObjectSetInteger(0, boxBaseName +" تی پی پایین وسط چهار ساعته", OBJPROP_WIDTH, 1);
                ObjectSetInteger(0, boxBaseName +" تی پی پایین وسط چهار ساعته", OBJPROP_RAY_RIGHT, FALSE);
                ObjectSetInteger(0, boxBaseName +" تی پی پایین وسط چهار ساعته", OBJPROP_STYLE, STYLE_DASH);  // تنظیم به صورت نقطه‌چین
                }
                }
        }
    }
}

return rates_total;

} // تابع برای تجزیه زمان به ساعت و دقیقه void StringToTime(string timeStr, int &hour, int &minute) { string hourStr = StringSubstr(timeStr, 0, 2); string minuteStr = StringSubstr(timeStr, 3, 2); hour = StringToInteger(hourStr); minute = StringToInteger(minuteStr); }

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors