У меня есть этот код, и он работает нормально, но я хотел бы, чтобы он мог перемещать текст, поэтому он составляет 10 пипсов в верхней части диаграммы, и в то же время я хотел бы иметь возможность центрировать текст на дневной период сепараторы, поэтому он всегда находится в середине
Как я могу это сделать?
Вот код, который у меня есть
Введенный код/ --------------------------------------------- --------------------- /| Week_Days.mq4 |/ ----------------------------------------------- ------------------- #property indior_chart_window input int Days = 100;/Days Boxs/ввод bool OpenCloseBox = true;/Open Close Boxs input bool DrawBox = правда; datetime T; string mql_name; int a, Bar;/ ----------------------------------------------- ------------------- /| Пользовательская функция инициализации indior |/ ----------------------------------------------- ------------------- int OnInit () {//--- mql_name = MQLInfoString (MQL_PROGRAM_NAME);/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Экспертная деинициализация |/ ----------------------------------------------- ------------------- void OnDeinit (const int reason) {//--- ObjectsDeleteAll (0, mql_name);/---}/ ----------------------------------------- ------------------------- /| Пользовательская итерационная функция indior |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_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;) {//--- if (iTime (NULL, PERIOD_D1,0)! = T) {T = iTime (NULL, PERIOD_D1,0); DrawWeekDays (); }/--- return (rates_total); }/ ---------------------------------------------- -------------------- void DrawWeekDays () {if (a == 0) {Bar = Days;} else {Bar = 1;} for (int i = 0; ilt; Bar; i ) {string tname = TimeToString (iTime (NULL, PERIOD_D1, i)); datetime t = iTime (NULL, PERIOD_D1, i); double high = iHigh (NULL, PERIOD_D1, i); double low = iLow (NULL, PERIOD_D1, i); double open = iOpen (NULL, PERIOD_D1, i); double close = iClose (NULL, PERIOD_D1, i); color clr = clrDimGray; строка TXT = понедельник; if (TimeDayOfWeek (iTime (NULL, PERIOD_D1, i)) == 2) {clr = clrDimGray; TXT = вторник;} if (TimeDayOfWeek (iTime (NULL, PERIOD_D1, i)) == 3) {clr = clrDimGray; TXT = Среда;} if (TimeDayOfWeek (iTime (NULL, PERIOD_D1, i)) == 4) {clr = clrDimGray; TXT = Thursday;} if (TimeDayOfWeek (iTime (NULL, PERIOD_D1, i)) == 5) {clr = clrDimGray; TXT = Friday;} DrawTXT (TXT tname, TXT, t, высокий 10 * Point, clr); }}/---------------------------------------------- --------------------- void DrawTXT (имя строки, текст строки, время datetime, двойная цена, цвет clr, ENUM_ANCHOR_POINT ANCHOR_ = ANCHOR_LEFT_LOWER, int size = 16) {name = mql_name имя; if (ObjectFind (0, name) lt; 0) {ObjectCreate (0, имя, OBJ_TEXT, 0, время, цена);ObjectSetString (0, имя, OBJPROP_TEXT, текст); ObjectSetInteger (0, имя, OBJPROP_BACK, правда); ObjectSetString (0, имя, OBJPROP_FONT, Arial); ObjectSetInteger (0, имя, OBJPROP_FONTSIZE, размер); ObjectSetInteger (0, имя, OBJPROP_ANCHOR, ANCHOR_); ObjectSetInteger (0, имя, OBJPROP_COLOR, CLR); ObjectSetInteger (0, имя, OBJPROP_SELECTABLE, ложь); ObjectSetInteger (0, имя, OBJPROP_SELECTED, ложь); ObjectSetInteger (0, имя, OBJPROP_HIDDEN, правда); } else {ObjectMove (0, имя, 0, время, цена); ObjectSetInteger (0, имя, OBJPROP_COLOR, CLR); ObjectSetString (0, имя, OBJPROP_TEXT, текст); ObjectSetInteger (0, имя, OBJPROP_FONTSIZE, размер); }}/---------------------------------------------- ----------------------