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 );
         }
      }
//-----------------------------------------------------------------------------+   

질문 없이 표시기 창에 수직 추세선을 표시합니다(디버깅하는 동안 표시기 포인트의 시각적 인식을 용이하게 하기 위해 0 막대를 표시함).


다음과 같이 코드의 다른 위치에서 동일한 함수를 호출할 때:

   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 );
            }
         }
      }

보류 중인 설정 수준이 계산되는 막대를 차트에 표시한 다음 이상하게도 전달된 매개변수가 실제 올바른 값을 표시하고 막대 시간이 추세선의 이름으로 입력되지만 라인 자체는 값이 모두 0이고 심지어 "Ray"로 표시되지만 이 옵션을 담당하는 함수 매개변수에 false를 전달하지만 광선이 아닙니다.


코드에 오류가 표시되지 않습니다. 어쩌면 결함?
 
그래픽이 완전히 죽인 것 같습니다... 화면에 버튼이 표시되지 않습니다. 아무 것도 하지 않고 터미널을 다시 시작하기만 하면 차트에 매달리고 일반적으로 모든 그래픽 개체를 렌더링하는 Expert Advisors가 죽었습니다. 그래픽 개체 수정을 위해 며칠을 기다렸습니다 .... 흠 .... 기다렸습니다 .... 무엇을 위해 싸웠는지, 그들은 그것에 부딪쳤습니다. :) 우리는 새로운 빌드를 기다려야 할 것입니다.
 
새 빌드로 프로그램을 다시 컴파일했습니까?
 
artmedia70 :

그래픽 개체의 출력에 문제가 생기기 시작했습니다. 코드의 한 위치에서 함수

다음과 같이 호출됩니다.

질문 없이 표시기 창에 수직 추세선을 표시합니다(디버깅하는 동안 표시기 포인트의 시각적 인식을 용이하게 하기 위해 0 막대를 표시함).


다음과 같이 코드의 다른 위치에서 동일한 함수를 호출할 때:

보류 중인 설정 수준이 계산되는 막대를 차트에 표시한 다음 이상하게도 전달된 매개변수가 실제 올바른 값을 표시하고 막대 시간이 추세선의 이름으로 입력되지만 라인 자체는 값이 모두 0이고 심지어 "Ray"로 표시되지만 이 옵션을 담당하는 함수 매개변수에 false를 전달하지만 광선이 아닙니다.


코드에 오류가 표시되지 않습니다. 어쩌면 결함?
SetTLine 함수 내에서 모든 매개변수의 출력물을 추가하십시오.
 

그리고 다시, 문제는 타이밍에 관한 것입니다 ... 시장은 언제 완전히 출시됩니까 ??? 글로벌 업데이트는 언제인가요???

11월 말에 시험의 달을 이야기했는데 벌써 12월이 한창입니다....

 

레나트,

새로운 ME4 지원에서 가까운 장래에 계획되어 있습니까?

ENUM_ANCHOR_POINT 및 ENUM_LINE_STYLE ?

고맙습니다.

 
Wahoo :

레나트,

새로운 ME4 지원에서 가까운 장래에 계획되어 있습니까?

ENUM_ANCHOR_POINT 및 ENUM_LINE_STYLE ?

응 그들은 그럴거야. 그래픽 모델은 MQL5와 동일합니다.

빌드할 때마다 그래픽 기능을 추가하고 개선합니다.

 

중개자 중 하나(최소 한 명)는 특히 중대한 혁신으로 새로운 것을 출시할 때 MT4 빌드를 먼저 데모에서 실행한 다음 실생활에서 구현합니다.

일부 베타 테스터가 관찰한 인접 터미널의 비자발적 사정 과 관련하여 데모와 실제가 있는 동일한 컴퓨터(또는 VPS) 터미널에 있는 경우 이러한 변경 사항을 구현하는 동안 이 전술을 따를 것이라고 확신할 수 있습니까? 또는 시스템의 모든 터미널 업데이트가 제어되고 위에서 "방지하기 위해" 삭제하도록 권장되는 한 폴더는 모두 또는 없음 의 두 가지 선택만 남깁니다.

 

터미널의 작업 복사본을 사용하는 컴퓨터에서 테스트 또는 업데이트를 실행하지 마십시오.

모두 자동으로 업데이트됩니다. 컴퓨터에서 최소한 하나의 복사본이 업데이트를 받는 즉시.