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

 
Kisolen :
MT5에서 Windows 10의 대기 모드(어느 집이 현대인지 기억이 나지 않고 interprise ltsb 1607(오래된))에 들어갈 때 MT5에서 고문이 차트에 첨부되지 않고 트랜잭션이 중단되지만 일부 기능 계속 작동합니다(작동하는 그래픽 자체 작성 창의 출력). 이것은 MT 버그입니까 아니면 EA의 문제입니까? 고맙습니다.

대기 모드 - 컴퓨터가 거의 꺼져 있습니다. 모든 프로그램이 중지됩니다.

 
이전 댓글에 대한 답변 감사합니다. 질문이 하나 더 있습니다. MT5. 차트에 "그리드"가 없는 인터페이스 템플릿을 만들고 이 템플릿을 "기본값"이라고 하여 기본적으로 켜지고 모든 것이 MT 자체에서 작동하지만 고문의 시각화 창에서는 작동하지 않습니다. 고맙습니다.
 
Kisolen :
이전 댓글에 대한 답변 감사합니다. 질문이 하나 더 있습니다. MT5. 차트에 "그리드"가 없는 인터페이스 템플릿을 만들고 이 템플릿을 "기본값"이라고 하여 기본적으로 켜지고 모든 것이 MT 자체에서 작동하지만 고문의 시각화 창에서는 작동하지 않습니다. 고맙습니다.

터미널에서 새 차트를 열 때 차트 템플릿 "default.tpl"이 적용되고, 비주얼 모드에서 전략 테스터를 실행할 때 차트 템플릿 "tester.tpl"이 적용됩니다.

도움말: 템플릿 및 프로필 - 추가 기능 - 견적 차트, 기술 및 기본 분석

 

안녕하세요.

MT5(빌드 2006)의 다음 버그에 개발자의 관심을 끌었습니다. 속성 식별자 CHART_WIDTH_IN_BARS 또는 CHART_VISIBLE_BARS 를 사용하여 ChartGetInteger 함수를 호출할 때 이 호출 중에 동일한 기호이지만 더 작은 시간 프레임이 있는 다른 창이 활성화되어 있으면 함수가 잘못된 값을 반환합니다. 최대 차트 스케일링(5)에서 반환된 값은 실제보다 5만큼 작습니다. 스케일링이 4이면 반환 값은 10만큼 작습니다. 스케일링이 3이면 각각 20만큼, 등 . 글리치를 재현하기 위한 테스트 인디케이터의 코드는 아래와 같습니다. D1 TF와 RTS-3.19 악기에서 이 글리치를 안정적으로 재현했습니다. 또한 명확성을 위해 버그를 시연하는 비디오를 녹화했습니다. 빌드 274( 이력으로 판단 )에서 유사한 결함이 이미 수정되었지만 완전히는 아닌 것 같습니다. :)

 //+------------------------------------------------------------------+
//|                                                     DBS_Bug2.mq5 |
//|                                            Copyright © 2019, DBS |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1                                          //количество индикаторных буферов
#property indicator_plots    1                                          //количество графических построений
//+------------------------------------------------------------------+ 
//| Функция инициализации индикатора                                 | 
//+------------------------------------------------------------------+
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+ 
//| Функция расчёта индикатора                                       | 
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,                                 //количество истории в барах на текущем тике
                 const int prev_calculated,                             //количество истории в барах на предыдущем тике
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---Debug
   int chart_bars= int ( ChartGetInteger ( 0 , CHART_WIDTH_IN_BARS ));     //к-во баров на экране
   int vis_bars= int ( ChartGetInteger ( 0 , CHART_VISIBLE_BARS ));         //к-во баров видимых на экране
   PrintFormat ( "%s: Debug #2! rates_total=%i chart_bars=%i vis_bars=%i" , __FUNCTION__ ,rates_total,chart_bars,vis_bars);
   return (rates_total);
  }
//+------------------------------------------------------------------+

종종 나는 이 함수에 대해 더 재미있는 반환 값을 가지고 있었습니다(특히 터미널을 로드할 때). 최대 차트 배율(5)에서 반환 값은 5입니다(차트의 실제 막대 수에 관계없이). 배율이 4이면 반환 값 = 10입니다. 스케일링이 3이면 각각 =20 등입니다. 불행히도, 이 결함을 비디오로 캡처하는 것은 불가능했습니다. 그러나 그 때문에 나는 내 표시기가 D1에서 올바르게 작동하지 않는 이유를 이해하기 위해 하루 종일 죽었습니다. 그러나 다른 시간대에서는 잘 작동합니다.


몇 시간 후(연결이 끊어진 후) 동일한 차트(RTS-3.19,D1)의 PS 로그. 실제로 차트에는 55개의 막대가 표시됩니다. 그리고 로그의 MT5는 화면에 딱 5개만 표시되고 눈에 보이는 것은 전혀 없다고 말합니다 :) 스크린샷

 2019.02 . 24 21 : 27 : 09.692 DBS_Volume (RTS- 3.19 ,D1)        DBS Volume ( VOLUME_REAL ): SetVolScale: Debug # 1 ! max_vol_idx= 3 max_vol= 402550 time= 2019.02 . 19 00 : 00 rates_total= 220 chart_bars= 5 vis_bars= 0
MetaTrader 5 Client Terminal build 274
MetaTrader 5 Client Terminal build 274
  • 2010.05.15
  • MetaQuotes Software Corp.
  • www.metatrader5.com
Terminal: Исправлено отображение истории торговли на чарте. Terminal: Исправлена ошибка в навигации чарта (при отключеном сдвиге и автоскроле). Terminal: Исправления по сообщениям на форуме и крешлогам. Terminal: В файл помощи добавлено описание Тестера Стратегий MetaTester: Исправлена ошибка в загрузке параметров тестирования при смене...
 
Dmitriy Burlachenko :

안녕하세요 개발자입니다.

MQL5 표준 라이브러리 도움말에 WindowHandle 함수가 있지만, 그것을 사용할 때 컴파일러는 'WindowHandle' - 함수가 정의되지 않았습니다." 질문: 도움말이나 컴파일러를 도청하는 사람은 누구인가요? :)

에스비입니다.

 int CChart:: WindowHandle ( void ) const ;
 
Dmitriy Burlachenko :

안녕하세요 개발자입니다.

MQL5 표준 라이브러리 도움말에 WindowHandle 함수가 있지만, 그것을 사용할 때 컴파일러는 'WindowHandle' - 함수가 정의되지 않았습니다." 질문: 도움말이나 컴파일러를 도청하는 사람은 누구인가요? :)


도움말을 잘못 사용하고 있습니다.

자세히 보기: MQL5 참조 표준 라이브러리 가격 차트 창 핸들

한 걸음 물러서서 가격 차트 섹션을 읽으십시오.


추가됨:

사용 예( 먼저 Attach 메서드를 실행해야 함 ) 그 다음에 객체로 작업해야 합니다.

 //+------------------------------------------------------------------+
//|                       Gets window handle of the chart (HWND).mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property description "Gets window handle of the chart (HWND)"
//---
#include <Charts\Chart.mqh>
CChart   m_chart;                       // CChart object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {

   m_chart. Attach (); // assigns the current chart to the class instance

   Print ( "CChart.WindowHandle: " ,m_chart. WindowHandle ());
   Print ( "CChart.ChartId: " ,m_chart.ChartId());
  }
//+------------------------------------------------------------------+

결과:

 2019.02 . 25 16 : 01 : 32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart. WindowHandle : 13830128
2019.02 . 25 16 : 01 : 32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.ChartId: 131571247244850547
 
Dmitriy Burlachenko :

안녕하세요 개발자입니다.

MQL5 표준 라이브러리 도움말에 WindowHandle 함수가 있지만, 그것을 사용할 때 컴파일러는 'WindowHandle' - 함수가 정의되지 않았습니다." 질문: 도움말이나 컴파일러를 도청하는 사람은 누구인가요? :)

사용:

 ChartGetInteger ( 0 , CHART_WINDOW_HANDLE , 0 );
 
Vladimir Karputov :

도움말을 잘못 사용하고 있습니다.

자세히 보기: MQL5 참조 표준 라이브러리 가격 차트 창 핸들

한 걸음 물러서서 가격 차트 섹션을 읽으십시오.


추가됨:

사용 예( 먼저 Attach 메서드를 실행해야 함 ) 그 다음에 객체로 작업해야 합니다.

결과:

고맙습니다.

 
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2019.02.21
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

MQL5 ME 2006

 #property strict

class A
 { 
public :
   int f();
 };

void OnStart ()
  {
   A a;
   a.f();
  }

MQL4에서 " 함수 'f'에는 본문이 있어야 함"과 동일한 코드