메타에디터 빌드 1463 - 페이지 14

 
Renat Fatkhullin :

지금까지, 아무데도.

ArrayPrint - 유사합니다.
 
문제
void OrderSend ( int ) {}   // no problem
void Print ( MqlTick & ) {} // 'Print' - override system function

저것들. 외부 클래스 "::"는 오버로딩을 허용하지 않으며 내부 클래스는 문제 없이 허용됩니다.

따라서 목발로 제한을 우회해야합니다

class PRINTCLASS
{
public :  
   template < typename T>
   static void MyPrint( const T &Value )
  {
    T Array[ 1 ];
    
    Array[ 0 ] = Value;
    
    ::ArrayPrint(Array);
  }
  
   template < typename T>
   static void MyPrint( const T Value )
  {
    :: Print (Value);
  }
};

#define Print (A) PRINTCLASS::MyPrint(A)

void OnStart ()
{
   MqlTick Tick;
  
   SymbolInfoTick ( _Symbol , Tick);

   Print (Tick);
  
   int i = 5 ;
  
   Print (i);
}
사이트의 Threat ArrayPrint 는 강조 표시되지 않습니다.
 
1467 빌드가 이미 릴리스되었습니다. 변경 사항은 무엇입니까?
 
그래서 그들은 결정하지 않았다
 

테스터에서 내 표시기에 문제가 있음을 발견했습니다. 빌드 1463부터 시작 직후 에 표시기를 테스트 할 때 테스터가 자발적으로 멈춥니다. 그것은 표시기가 아니라 테스터의 중단입니다. 이전 컴파일러나 새 컴파일러로 컴파일할 때 문제가 남아 있지만 이전 테스터에서는 모든 것이 잘 테스트되기 때문입니다.

중단으로 이어지는 코드의 위치를 찾을 수 없습니다. 다른 코드 줄에서 주석을 만들려고 했지만 항상 다른 위치에 멈춥니다. 일반적으로 테스터의 일종의 내부 오류입니다.

 
Alexey Navoykov :

테스터에서 내 표시기에 문제가 있음을 발견했습니다. 빌드 1463부터 시작 직후 에 표시기를 테스트 할 때 테스터가 자발적으로 멈춥니다. 그것은 표시기가 아니라 테스터의 중단입니다. 이전 컴파일러나 새 컴파일러로 컴파일할 때 문제가 남아 있지만 이전 테스터에서는 모든 것이 잘 테스트되기 때문입니다.

중단으로 이어지는 코드의 위치를 찾을 수 없습니다. 다른 코드 줄에서 주석을 만들려고 했지만 항상 다른 위치에 멈춥니다. 일반적으로 테스터의 일종의 내부 오류입니다.

그래서 여전히 멈추나요 아니면 테스터에 최대 테스트 속도가 설정되어 있습니까?

추가됨: 나는 이것을 만난 적이 없으므로 귀하의 코드를 검토하는 것이 매우 바람직합니다.

 
Alexey Navoykov :

중단으로 이어지는 코드의 위치를 찾을 수 없습니다.

전체 화면을 영구적으로 녹화하도록 설정합니다. 버그가 발생하면 녹화를 중지하고 비디오에서 필요하지 않은 모든 것을 잘라냅니다.
 
Vladimir Karputov :

그래서 여전히 멈추나요 아니면 테스터에 최대 테스트 속도가 설정되어 있습니까?

추가됨: 나는 이것을 만난 적이 없으므로 귀하의 코드를 검토하는 것이 매우 바람직합니다.

어떤 속도로든 멈춥니다. StrategyTestVisualization 창이 응답하지 않습니다. 전체 코드를 보여주는 것은 불가능합니다. 불행히도 이것은 상용 제품입니다.

또한 테스트 모드 및 시간 프레임에 의존하지 않습니다.

 
Alexey Navoykov :

어떤 속도로든 멈춥니다. StrategyTestVisualization 창이 응답하지 않습니다. 전체 코드를 보여주는 것은 불가능합니다. 불행히도 이것은 상용 제품입니다.

그런 다음 ServiceDesk에서만 코드를 표시할 수 있습니다. 표시기에서 루핑이 의심되지만(예: 무한 While 루프...
 
fxsaber :
2016.11 . 10 11 : 07 : 42.764 Test (EURUSD,M1)                         [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]
2016.11 . 10 11 : 07 : 42.764 Test (EURUSD,M1)        [ 0 ] 2016.11 . 10 11 : 10 : 11 1.09207 1.09217 1.09207    500000 1478776211595        2

누락된 유일한 것은 명백한 ArrayToString입니다. 그런 다음 출력을 수정할 수 있습니다. 예: time_msc 및 플래그.

MqlTick 을 다음으로 변경하십시오.
struct MqlTick
  {
   datetime      time;           // Время последнего обновления цен
   double        bid;           // Текущая цена Bid
   double        ask;           // Текущая цена Ask
   double        last;           // Текущая цена последней сделки (Last)
   ulong         volume;         // Объем для текущей цены Last
   datetime_msc time_msc;       // Время последнего обновления цен в миллисекундах
   uint          flags           // Флаги тиков
  };
저것들. 새로운 datetime_msc 유형을 소개합니다.