오류, 버그, 질문 - 페이지 1878

 
Sergey Dzyublik :

이 작업의 이름은 무엇입니까?

이 작업은 더 이상 (1589+) 호출되지 않습니다. 경고가 어디에서 왔는지 알 때 생각합니다.

 template < typename T>
T Func(){
  T Res;
   return (Res);
}

template < typename T>
void Func( T Value ){
  T Res = ( int )Value; // implicit conversion from 'number' to 'string'
}

void OnStart ()
{
  Func< string >(); 

  Func( 0 );
}

그러면 문제가 무엇인지 이해하게 될 것입니다.

 

옵티마이저 로그에 최적화된 매개변수의 범위와 단계를 표시하도록 요청합니다.

또한 에이전트의 로그에는 이러한 라인이 있습니다.

NS       0        14 : 11 : 00.853     Tester   756 : passed in 0 : 00 : 04.789
MJ       0        14 : 11 : 03.447     Tester   757 : passed in 0 : 00 : 02.574
RM       0        14 : 11 : 05.860     Tester   758 : passed in 0 : 00 : 02.340

해당 실행에 대한 정보와 함께 제공됩니다 - 고문의 이름 및 입력 매개 변수.

 
여기서 줄을 지우면
 #define TYPETOBYTES_FULL_SLOW

그런 다음 새 공용체가 포함되어 컴파일 시간이 두 배로 늘어납니다.

'TypeToBytes_ExampleScript.mq5' TypeToBytes_ExampleScript.mq5
'TypeToBytes.mqh'       TypeToBytes.mqh
0 error(s), 0 warning(s), compile time: 3195 msec

작은 코드의 경우 3초 - 정상입니까?

이 경우 디버그 버전

 0 error(s), 0 warning(s), compile time: 108 msec

30배 빠르게 준비합니다.

디버그 버전으로 빠르게 컴파일할 수 있지만 자체 검사를 위해 디버그 자체를 실행하지 않을 수 있습니까?

 

어떻게 된 건지 모르겠지만 결과는 다음과 같았습니다.


 
Комбинатор :

어떻게 된 건지 모르겠지만 결과는 다음과 같았습니다.

누군가에게 편지를 써야 합니다. 난 그냥해야, 그렇지 않으면 아무것도))))
 
Andrey Khatimlianskii :
누군가에게 편지를 써야 합니다. 난 그냥해야, 그렇지 않으면 아무것도))))
충분하지 않다. 이 후에는 결혼해야합니다. 그렇지 않으면 결혼해야합니다.)))
 
오늘날의 현실에서 이것이 정상입니까?
 void OnStart ()
{
   MqlTick Tick;
  
  Tick = ( MqlTick )Tick; // cannot cast 'MqlTick' to 'MqlTick'
}
 

절대적으로 환영합니다!

문제를 해결하는 데 도움이 됩니다.

그러한 코드가 있습니다. 새로운 시장 리뷰 차트를 열고 그 위에 개체를 그립니다.

리뷰에 티커가 거의 없지만 문제는 없습니다.

그런 다음 더 많은 창이 열릴수록 다음 창이 더 느리게 열립니다.

차트 오픈 시간이 3000ms에 도달하면!! = 3s , ChartOpen은 차트가 결국 열리지만 0을 반환하지만 !! 새 차트에 개체를 그리는 조건이 있습니다. ChartOpen이 0을 반환하면 차트가 결국 열렸음에도 불구하고 개체를 그리기 위해 차트 ID를 가져올 수 없습니다. ID.

어리석게도 Sleep 4c를 켜서 Vasyan 방식으로 문제를 해결하려고 시도했지만 여전히 약 60개의 차트가 있는 경우에도 저장되지 않습니다. 그리고 처음에 계획했던대로 칠면조와 템플릿의 첨부 파일도 톱질했습니다.

Sleep을 주석 처리하면 쓰레기, 광란 및 남색이 훨씬 더 일찍 시작됩니다.

 2017.04 . 29 12 : 50 : 12.563 открытие множества чартов с созданием объектов (EURUSD,H1)      Чарт 131379294082473728 открывался = 2480.0
2017.04 . 29 12 : 50 : 12.563 открытие множества чартов с созданием объектов (EURUSD,H1)      Раз тут открылся чарт #Wheat_N7 должен нарисовать объект 
2017.04 . 29 12 : 50 : 12.673 открытие множества чартов с созданием объектов (EURUSD,H1)      На символе номер = 57 #Wheat_N7 создано объектов = 1
2017.04 . 29 12 : 50 : 12.673 открытие множества чартов с созданием объектов (EURUSD,H1)      На символе номер = 57 #Wheat_N7 на самом деле создано объектов = 1
2017.04 . 29 12 : 50 : 19.753 открытие множества чартов с созданием объектов (EURUSD,H1)       Не удалось открыть чарт № = 58 тикер = #AUS200 за время = 3003.0
2017.04 . 29 12 : 50 : 26.623 открытие множества чартов с созданием объектов (EURUSD,H1)      Чарт 131379294223977200 открывался = 2794.0
2017.04 . 29 12 : 50 : 26.623 открытие множества чартов с созданием объектов (EURUSD,H1)      Раз тут открылся чарт #Belgium20 должен нарисовать объект 

터미널은 약 700MB의 메모리를 소비하고 다른 1300MB는 무료입니다. 그것은 자원에 관한 것이 아닙니다. 차트의 막대 수는 5000개입니다.

Не удалось открыть чарт № = 58 тикер = #AUS200

그러나 차트는 열렸지만 ID는 알 수 없습니다.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict
#property script_show_inputs
input string nametemplate= "zz.tpl" ;
input int     limit= 1000 ;
int symopen,objquant;
double close[];
datetime time[];
string namesym;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   ArrayInitialize (time, 0 );
   ArrayInitialize (close, 0 );
   long chart_id= ChartFirst (),chart_id_prev;
   for ( int c2= 0 ; c2< SymbolsTotal ( true )- 1 ; c2++)
     {
       int Q= 0 ;
      objquant= 0 ;
      chart_id_prev=chart_id;
       ArrayFree (close);
       ArrayFree (time);
       ArrayResize (close,limit);
       ArrayResize (time,limit);
       int время= CopyTime (namesym, 0 , 1 ,limit,time);
       int цена= CopyClose (namesym, 0 , 1 ,limit,close);
      namesym= SymbolName (c2, true );
       ulong start= GetMicrosecondCount ();
      chart_id= ChartOpen (namesym, 0 );
       ulong finish= GetMicrosecondCount ();
       Sleep ( 4000 );
       if ( chart_id== 0 )
        {
         Print ( "Не удалось открыть чарт № = " ,c2, " тикер = " ,namesym, " за время = " ,
               NormalizeDouble ((finish-start)/ 1000 , 3 ));
         continue ;
        }
       Print ( "Чарт " ,chart_id, " открывался = " , NormalizeDouble ((finish-start)/ 1000 , 3 ));
      symopen= 1 ;
       //      ChartApplyTemplate(chart_id,nametemplate);
       Print ( "Раз тут открылся чарт " ,namesym, " должен нарисовать объект " );
       //Sleep(100);
       ResetLastError ();
       bool objcreated= ObjectCreate (chart_id, "name" +namesym+ string (c2), OBJ_RECTANGLE , 0 ,time[ 5 ],close[ 5 ],time[ 15 ],close[ 15 ]);
       if (objcreated== true ) objquant++;
       else Print ( "Ошибка создания объекта = " , GetLastError ());
       Print ( "На символе номер = " ,c2, " " ,namesym, " создано объектов = " ,objquant);
       int total= ObjectsTotal (chart_id, 0 ,- 1 );
       Print ( "На символе номер = " ,c2, " " ,namesym, " на самом деле создано объектов = " ,total);
     }
   return ;
  }

//+------------------------------------------------------------------+
 
kaus_bonus :

문제를 해결하는 데 도움이 됩니다.

GetNewChartID()를 작성합니다.
 
fxsaber :
GetNewChartID()를 작성합니다.


이것이 ChartOpen 의 용도이며 새 차트의 ID를 반환해야 하지만 반환하지 않습니다.

아이디어를 개발하여 도움을 줄 수 있습니까?