MetaTrader 5 플래폼 업데이트 3280: 트레이더들의 피드백을 반영한 개선 사항과 수정 사항 - 페이지 2

 

개선을 제안해도 될까요... 다음과 같습니다. 다음 스크립트 코드를 실행할 때

 //+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart () 
{ 
  
         ENUM_TIMEFRAMES time = PERIOD_D1 ;
         string szSymbol = "EURUSD" ;
         long id = ChartOpen (szSymbol, time);
         ChartRedraw (id);

         ChartIndicatorAdd (id, 0 , iCustom (szSymbol, time, "Media Movel.ex5" ));
}

모든 창에서 EURUSD 기호가 있는 새 창이 열리며 새로 생성된 창에 사용자 지정 표시기를 추가할 수 있습니다. .... PERFECT ... 그러나 이 동일한 스크립트를 표시된 대로 서비스로 전환하면 아래에:

 #property service
//+------------------------------------------------------------------+
void OnStart ()
{
         ENUM_TIMEFRAMES time = PERIOD_D1 ;
         string szSymbol = "EURUSD" ;
         long id = ChartOpen (szSymbol, time);
         ChartRedraw (id);

         ChartIndicatorAdd (id, 0 , iCustom (szSymbol, time, "Media Movel.ex5" ));
}

동작은 이미 다르며 창은 예상대로 생성되지만 창 ID 값이 있어도 창에 표시기를 추가할 수 없었습니다 . 오류 4802 가 반환됩니다....

서비스에서 지표를 추가할 수 있다면 매우 좋을 것입니다. 예를 들어 EA에 과부하를 가하지 않고 서비스를 사용하여 추가 작업을 수행할 수 있기 때문입니다. 하지만 이것이 불가능하더라도 아는 사람들의 제안입니다. , 서비스가 스크립트를 실행할 수 있도록 허용하려면 어쨌든 많은 도움이 될 것입니다 ...

그리고 그것이 너무 많이 남용되지 않는다면... MQL5 언어 가 실패를 생성할 때 재귀 코드를 종료하는 빠른 방법을 허용하는 EXIT() 함수를 가지고 있다면 매우 좋을 것입니다. , 우리는 EXIT() 호출을 통해 오류를 처리하고 프로그램 실행을 완전히 종료할 수 있습니다 ... ExpertRemove()를 호출하여 EA를 종료할 때처럼 ... 어쨌든 감사합니다 ... 😁👍

 

/portbale 모드에 대해 MT5를 여러 번 설치했습니다. 3개는 현재 병렬로 실행되고 있으며 2개는 거래 시 릴리스 채널에, 1개는 베타 채널에 있습니다.

불행히도 지금 업데이트할지 아니면 나중에 업데이트할지 묻는 새 업데이트를 묻는 창에는 업데이트할 수 있는 버전 이 표시되지 않습니다. 릴리스 또는 베타:


이 창이 단순히 " 릴리스 업데이트 (또는 베타 업데이트 )가 다운로드되었습니다. 적시에..."라고 표시되면 좋을 것입니다.

그러면 사용자는 업데이트를 주중(FX가 열려 있음) 또는 주말에만 수행할지 여부를 알 수 있습니다.

출시 업데이트나 베타 업데이트 는 색상으로 구분될 수 있습니다. 이것은 실수를 피하는 데 도움이 될 수 있습니다.

 
MetaQuotes :

2022년 4월 29일 금요일, MetaTrader 5 플랫폼의 업데이트 버전이 출시될 예정이며, 여기에는 버전 3270 출시 이후 받은 피드백을 기반으로 몇 가지 작은 추가 및 수정 사항이 있습니다.

업데이트에는 다음 변경 사항이 포함되어 있습니다.

  1. 터미널: 열린 주문 및 포지션의 컨텍스트 메뉴에서 표준 트레일링 스톱 레벨 채우기를 수정했습니다.
  2. 터미널: 업데이트된 UI 번역.
  3. 충돌 로그 수정.

업데이트는 라이브 업데이트 시스템을 통해 제공됩니다.

이러한 "작은" 수정 사항이 있으므로 다음 릴리스에 이러한 버그에 대한 수정 사항을 포함시켜 주시기 바랍니다. MT5 플랫폼의 표준 기능.

이것은 작지만 매우 성가신 버그입니다. 이 버그로 인해 MT5에 구축된 사용자 지정 "지속적인" 선물에서 거래소 틱 기록과 함께 작동하는 지표를 사용할 수 없기 때문입니다!

연속 NQ

 
컴파일러 경고 가 중복됩니까?
 void OnStart ()
{
   Print ( DEAL_REASON_TP == ORDER_REASON_TP ); // implicit conversion from 'enum ENUM_ORDER_REASON' to 'enum ENUM_DEAL_REASON'
}
 

열거형 변환 시 컴파일러 오류입니다.

 ENUM_DEAL_REASON Reason() { return ( DEAL_REASON_CLIENT ); }

void OnStart ()
{
   ENUM_ORDER_REASON Reason1 = Reason();                     // 'Reason' - cannot convert enum
   ENUM_ORDER_REASON Reason2 = ( ENUM_ORDER_REASON )Reason(); // OK
}

검색 문자열 : Osibka 040.

 
fxsaber # :

열거형 변환 시 컴파일러 오류입니다.

검색 문자열 : Osibka 040.

오류는 없는 것 같습니다. 각 열거형은 고유한 유형입니다. 하나는 명시적 캐스트에 의해서만 다른 캐스트로 캐스트될 수 있습니다. 암시적으로 컴파일러는 맹세합니다.

 
Stanislav Korotky # :

오류는 없는 것 같습니다. 각 열거형은 고유한 유형입니다. 하나는 명시적 캐스트에 의해서만 다른 캐스트로 캐스트될 수 있습니다. 암시적으로 컴파일러는 맹세합니다.

경고 대신 오류입니다.

'Reason' - cannot convert enum
1 errors , 0 warnings            
 
fxsaber # :

경고 대신 오류입니다.

그래서 무엇?

 
Stanislav Korotky # :

그래서 무엇?

그럼 그런 코드는 컴파일하지 말자.

 void OnStart ()
{
   double d = 0 ;
   int i = d;
}
 
fxsaber # :

경고 대신 오류입니다.

문서에 따르면: enum   일부 제한된 데이터 세트를 참조하십시오. 이러한 의미에서 비교와 할당은 근본적으로 다르지 않습니다. 두 경우 모두 경고 또는 오류가 있어야 합니다. 그리고 비교할 수는 있어도 할당할 수 없다는 건 넌센스