Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 98

 
evillive:
Ужасы какие тут пишутся, воздержусь пока от обновления выше 553...

У меня начались проблемы с выводом графических объектов. В одном месте кода функция

//+----------------------------------------------------------------------------+
void SetTLine(color cl, int wnd, string nm="",
              datetime t1=0, double p1=0, datetime t2=0, double p2=0,
              bool ry=False, int st=0, int wd=1) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TREND, wnd, 0,0, 0,0);
   ObjectSet(nm, OBJPROP_TIME1 , t1);
   ObjectSet(nm, OBJPROP_PRICE1, p1);
   ObjectSet(nm, OBJPROP_TIME2 , t2);
   ObjectSet(nm, OBJPROP_PRICE2, p2);
   ObjectSet(nm, OBJPROP_COLOR , cl);
   ObjectSet(nm, OBJPROP_RAY   , ry);
   ObjectSet(nm, OBJPROP_STYLE , st);
   ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//+----------------------------------------------------------------------------+

вызываемая таким образом:

//==============================================================================
// --------------------------------- Данные -----------------------------------+
//==============================================================================
   if(DrawGraphics) {                           // если рисуем графические объекты
      wnd=WindowFind("i_StdDev("+sdperiod+")"); // номер окна индикатора
      if(wnd>0) {                               // если индикатор на графике, нарисуем метку
         nm=Prefix+"_Текущий бар";
         p1=WindowPriceMax(wnd); p2=WindowPriceMin(wnd);
         SetTLine(Blue,wnd,nm,Time[0],p1,Time[0],p2,false,2);
         }
      }
//-----------------------------------------------------------------------------+   

без вопросов выводит вертикальную трендовую линию в окне индикатора (помечаю нулевой бар для облегчения визуального восприятия точек индикатора при отладке):


Когда же вызываю эту же функцию из другого места кода таким вот образом:

   if(op==OP_SELLSTOP) {
      pp=MathMin(Low[x],Low[x-1])-distanceSetOrders*PointX;
      b=iLowest(sy,tf,MODE_LOW,2,(x-1));
      if(pb-level*Point>pp) {
         ll=LotsS;
         if(StopLoss==0) sl=0;
         else sl=NormalizeDouble(MathMax(pp+StopLoss*PointX, pp+(level+1)*Point),dg);
         if(TakeProfit==0) tp=0;
         else tp=NormalizeDouble(MathMin(pp-TakeProfit*PointX, pp-(level+1)*Point),dg);
         co="Отложенный";
         Message("Кто звал? Чё..., ставить? Ставлю SellStop относительно бара "+b+
                 ", от "+DoubleToStr(pp,dg)+" до "+DoubleToStr(Low[b],dg)+" рисую линию");
         SetOrder(sy, OP_SELLSTOP, ll, pp, sl, tp, mn1, co);
         if(DrawGraphics) {
            nm=Prefix+"_Наименьшая цена_"+TimeToStr(Time[b]);
            SetTLine(FireBrick,0,nm,Time[b],Low[b],Time[b],pp,false,3);
            }
         }
      }

, чтобы она мне отметила на графике бар, от которого рассчитывается уровень установки отложки, то, как ни странно, передаваемые параметры в неё показывают истинные верные значения, в имени трендовой линии вписано время бара, но сама линия имеет все значения по нулям, да ещё и отображение как "Луч", хотя в параметр функции, отвечающий за эту опцию передаю false - не луч:


Ошибку в коде не вижу. Может-таки глюк?
 
Кажется графику совсем убили... никакие кнопки не ввыводятся на экран. Ничего не делал, просто перезагрузил терминал, и советники висевшие на графиках и нормально отрисовывавшие все графические объекты умерли. Несколько дней жду исправление графических объектов.... хммм.... дождался.... Называется, за что боролись, на то и напоролись. :) Придется ждать нового билда.
 
А вы перекомпилировали программы новым билдом?
 
artmedia70:

У меня начались проблемы с выводом графических объектов. В одном месте кода функция

вызываемая таким образом:

без вопросов выводит вертикальную трендовую линию в окне индикатора (помечаю нулевой бар для облегчения визуального восприятия точек индикатора при отладке):


Когда же вызываю эту же функцию из другого места кода таким вот образом:

, чтобы она мне отметила на графике бар, от которого рассчитывается уровень установки отложки, то, как ни странно, передаваемые параметры в неё показывают истинные верные значения, в имени трендовой линии вписано время бара, но сама линия имеет все значения по нулям, да ещё и отображение как "Луч", хотя в параметр функции, отвечающий за эту опцию передаю false - не луч:


Ошибку в коде не вижу. Может-таки глюк?
Добавьте распечатку всех параметров внутри функции SetTLine.
 

И в новь вопрос по срокам ... Когда будет полностью запущен Маркет ??? Когда будет глобальное обновление ???

В конце ноября говорили о месяце тестов, но уже декабрь в разгаре ....

 

Ренат,

а планируется ли в ближайшем будущем в новом МЕ4 поддержка

ENUM_ANCHOR_POINT и ENUM_LINE_STYLE ?

Спасибо.

 
Wahoo:

Ренат,

а планируется ли в ближайшем будущем в новом МЕ4 поддержка

ENUM_ANCHOR_POINT и ENUM_LINE_STYLE ?

Да, будут. Графическая модель будет такая же как в MQL5.

Мы с каждым билдом добавляем и улучшаем графические функции.

 

Один из брокеров (как минимум один) при выпуске новых, особенно с значительными новшествами, билдов МТ4 сначала обкатывает их на демо, а потом уже внедряет на реале.

В связи с наблюдающимся у некоторых бета-тестеров непроизвольным семяизверж обновлением соседних терминалов можно ли быть уверенным, что при нахождении на одном компьютре (или VPS) терминалов с демо и с реалом эту тактику удастся соблюсти во время внедрения этих изменений? Или одна папка, из которой осуществляется управление обновлением всех терминалов в системе и которую выше рекомендуют удалять "во избежание", оставляет только два выбора: всё или ничего?

 

Не запускайте тесты или обновления на компьютерах, где используются рабочие копии терминалов.

Они все обновятся автоматически. как только хотя бы одна копия на компе получит обновления.

Причина обращения: