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

 

히스토리를 불러오는 데 문제가 있는 것 같아요.

어제 30분을 기다렸다가 계정을 변경했고 오늘 다시 확인하기로 결정했습니다.


  1. 루블 계정 RUR을 엽니다.
  2. 테스터의 EURUSD 쌍에 대한 테스트 실행
  3. 터미널이 EURRUR 따옴표를 로드하려고 합니다.
  4. 따옴표가 없습니다. 테스터가 동결되었습니다.



뭔가 괴로워하다가 다시 존재하지 않는 이야기를 다운로드하기로 결정

 2018.02 . 21 15 : 58 : 48.244 Tester  EURRUR: history data begins from 2018.02 . 21 00 : 00
2018.02 . 21 15 : 58 : 48.344 Tester  USDRUR: preliminary downloading of M1 history started
2018.02 . 21 15 : 58 : 49.244 Tester  USDRUR: 20 % history downloaded
2018.02 . 21 15 : 58 : 49.544 Tester  USDRUR: 30 % history downloaded
2018.02 . 21 15 : 58 : 49.844 Tester  USDRUR: 40 % history downloaded
2018.02 . 21 15 : 58 : 50.144 Tester  USDRUR: 51 % history downloaded
2018.02 . 21 15 : 58 : 50.444 Tester  USDRUR: 61 % history downloaded
2018.02 . 21 15 : 58 : 50.657 Tester  USDRUR: 71 % history downloaded
2018.02 . 21 15 : 58 : 51.057 Tester  USDRUR: 81 % history downloaded
2018.02 . 21 15 : 58 : 51.357 Tester  USDRUR: 91 % history downloaded
2018.02 . 21 15 : 58 : 51.657 Tester  USDRUR: preliminary downloading of M1 history completed in 0 : 03.417
2018.02 . 21 15 : 58 : 51.657 Tester  USDRUR: history data begins from 2016.12 . 26 00 : 00
2018.02 . 21 15 : 58 : 51.661 Core 1   agent process started
2018.02 . 21 15 : 58 : 52.095 Core 1   connecting to 127.0 . 0.1 : 3000
2018.02 . 21 15 : 58 : 52.095 Core 1   connected
2018.02 . 21 15 : 58 : 52.103 Core 1   authorized (agent build 1755 )
2018.02 . 21 15 : 58 : 52.105 Tester  EURUSD,H1 (Alpari-MT5-Demo): testing of Experts\Exp - TickSniper PRO FULL v36 20180220 .ex5 from 2018.01 . 01 00 : 00 to 2018.02 . 10 00 : 00
2018.02 . 21 15 : 58 : 52.891 Core 1   common synchronization completed
2018.02 . 21 15 : 58 : 53.064 Tester  quality of analyzed history is 100 %
2018.02 . 21 15 : 58 : 54.393 Core 1   EURRUR: history synchronization started



USDJPY에서는 모든 것이 정상입니다.

 

사용자 정의 기호 막대가 있는 어리석은 상황이 나타납니다. 내가 원하는 만큼 막대를 기록(CustomRatesReplace)에 쓸 수 있지만 바로 거기에서 읽을 수 없습니다(CopyRates)(TERMINAL_MAXBARS).

우리는 이 잘못된 상황을 어떻게든 해결해야 합니다. 를 통해 지역 역사의 시작을 명확하게 볼 수 있습니다.

 SeriesInfoInteger ( _Symbol , PERIOD_M1 , SERIES_SERVER_FIRSTDATE );

하지만 그녀에게 다가가

MQL을 통해 TERMINAL_MAXBARS를 변경할 수 있습니까? 아니면 MaxBars 제한 없이 CopyRates를 오버로드하시겠습니까?

 

MT5의 이러한 동작을 오래전부터 지적했지만 이제야 작성하게 되었습니다.

저는 ME와 MT5+테스터에서 일합니다. 에이전트에 연결할 수 없고 터미널을 다시 시작해야 하는 경우가 있습니다. 나는 이 버그에 익숙하므로 그에 관한 것이 아닙니다.

그래서 터미널을 닫고 ME에서 F4 키를 눌러 터미널을 엽니다. 그리고 여기에서 약간의 넌센스가 시작됩니다.

ME는 응답 없음 상태로 여러 번 떨어집니다. 터미널이 시작되지 않습니다. 몇 초 후 F4 키를 다시 누릅니다. 반응은 이전과 동일합니다.

결과적으로 약하지 않은 머신(많은 메모리, SSD, 95% CPU 여유 공간)에서 20초(최소) 후에 터미널이 계속 시작됩니다.

MT4와 비교 - 하늘과 땅. MT4는 ME의 F4에서 거의 즉시 실행됩니다. MT5 - 일종의 super-raw 애플리케이션이 시작되는 것과 같습니다.

 
fxsaber :

사용자 정의 기호 막대가 있는 어리석은 상황이 나타납니다. 내가 원하는 만큼 막대를 기록(CustomRatesReplace)에 쓸 수 있지만 바로 거기에서 읽을 수 없습니다(CopyRates)(TERMINAL_MAXBARS).

우리는 이 잘못된 상황을 어떻게든 해결해야 합니다. 를 통해 지역 역사의 시작을 명확하게 볼 수 있습니다.

하지만 그녀에게 다가가

MQL을 통해 TERMINAL_MAXBARS를 변경할 수 있습니까? 아니면 MaxBars 제한 없이 CopyRates를 오버로드하시겠습니까?

SD는 MaxBars 이상으로 시세 내역을 얻을 수 없을 때 문제가 없다고 생각합니다. 이러한 예(원하는 기록이 로컬 시스템에 이미 존재하는 많은 시나리오 중 하나)

리소스를 절약하기 위해 제한이 설정되어 있다고 가정합니다. 그리고 맞습니다!

통계를 계산하도록 설계된 시장 제품을 상상해보십시오. 자기자본 라인 데이터.

사용자는 이 제품을 적용하기 전에 강제로 UnlimitBars를 수행해야 합니다. 그리고 사용 후 - 다시 돌아갑니다.

감동하지 않습니다. 목발은 살아있다!

 

터미널을 시작할 때 표시기가 항상 ACCOUNT_LOGIN을 반환하는 것은 아닙니다.

0 11:00:01.880 사용자 지정 표시기 테스터 EURUSD,H1: 성공적으로 로드됨
0 11:00:01.887 테스터 EURUSD,H1: OnInit 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)가 0을 반환했습니다.
0 11:00:01.887 테스터 EURUSD,H1: 초기화됨
0 11:00:01.887 테스터 EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)가 0을 반환했습니다.
0 11:00:05.980 테스터 EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)가 0을 반환했습니다.
0 11:00:06.654 테스터 EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)가 0을 반환했습니다.
0 11:00:07.030 테스터 EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) 반환된 계정 번호
0 11:00:07.040 테스터 EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) 반환된 계정 번호

원천

 //+------------------------------------------------------------------+
//|                                                       tester.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   string text= IntegerToString ( AccountInfoInteger ( ACCOUNT_LOGIN ));
   Print ( "OnInit " +text);

   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   string text= IntegerToString ( AccountInfoInteger ( ACCOUNT_LOGIN ));
   Print ( "OnCalculate " +text);
   return (rates_total);
  }
//+------------------------------------------------------------------+

제가 틀릴 수도 있겠지만 제 생각에는 계좌번호를 모르면 어떤 프로그램도 작동이 안될 것 같아요.....

 
Vladimir Pastushak :

제가 틀릴 수도 있겠지만 제 생각에는 계좌번호를 모르면 어떤 프로그램도 작동이 안될 것 같아요.....

나는 Report 케이스를 제외하고 Expert Advisors 및 지표에서 계정 번호 를 사용하지 않습니다.

그러나 오프라인에서도 계정 번호(터미널을 끄기 전 마지막 연결)는 항상 사용할 수 있어야 한다는 데 동의합니다.

 
fxsaber :

나는 Report 케이스를 제외하고 Expert Advisors 및 지표에서 계정 번호 를 사용하지 않습니다.

그러나 오프라인에서도 계정 번호(터미널을 끄기 전 마지막 연결)는 항상 사용할 수 있어야 한다는 데 동의합니다.

같은 온라인. 어떤 계정에서 어떤 시점에 무슨 일이 일어났는지 항상 알고 이해해야 합니다.

어떤 계정에 대해 무언가가 수행되고 있는지 정의되지 않은 경우 프로그램을 어떻게 실행할 수 있습니까?

이것은 "sharash montash"가 아닙니다. 여기 사람들은 자신의 계정에 수백만 달러를 보유할 수 있습니다.

 
Vladimir Pastushak :

같은 온라인. 어떤 계정에서 어떤 시점에 무슨 일이 일어났는지 항상 알고 이해해야 합니다.

어떤 계정에 대해 무언가가 수행되고 있는지 정의되지 않은 경우 프로그램을 어떻게 실행할 수 있습니까?

이것은 "sharash montash"가 아닙니다. 여기 사람들은 자신의 계정에 수백만 달러를 보유할 수 있습니다.

어드바이저의 99% 는 계좌번호 를 분석하지 않습니다.

 
fxsaber :

어드바이저의 99% 는 계좌번호 를 분석하지 않습니다.

어드바이저의 99.99%가 "샤라쉬 몬타쉬"이기 때문에....

나는 모든 고품질 어드바이저가 작업 과정에서 또는 어드바이저를 언로드할 때 자신의 작업 로그를 유지해야 한다고 확신합니다. 사용자는 선택적으로 작업 로그를 수신해야 합니다. 치명적인 오류의 경우, 반드시!

치명적인 오류란 연결 해제, 인용, 느린 코드 작업을 의미합니다.

 
Vladimir Pastushak :

어드바이저의 99.99%가 "샤라쉬 몬타쉬"이기 때문에....

나는 정확히 그러한 조언자를 씁니다.