안녕하세요. 올바른 스레드를 선택했기를 바랍니다.

비주얼 테스터에서는 EA에서 사용하는 인디케이터의 윈도우가 거의 생성되지 않고 에러도 발생하지 않고 나머지는 동작합니다.

표시기는 EA 이니셜라이저에서 Sleep(1) 주석을 제거한 경우에만 나타나고 그려집니다.

무엇이 문제가 될 수 있습니까?

Sleep()이 작동하지 않기 때문에 사용자 지정 표시기의 ChartWindowFind (0, short_name)가 차트 왼쪽에서 작동을 멈춥니다.

다음은 문제가 있는 간단한 예입니다.

 int MACDHandle= INVALID_HANDLE ;
double macd_value[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   MACDHandle= iMACD ( _Symbol , 0 , 12 , 26 , 9 , PRICE_CLOSE );
//Sleep(1);
   ArraySetAsSeries (macd_value, true );
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if (MACDHandle< 0 )
     {
       Alert ( "Ошибка при создании индикатора MACD - номер ошибки: " , GetLastError (), "!!" );
       return (- 1 );
     }
   else
     {
       Print ( "MACD инициализирован, handle: " , MACDHandle);
       return ( INIT_SUCCEEDED );
     }
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- Освобождаем хэндлы индикаторов
   IndicatorRelease (MACDHandle);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick ()
  {
   CopyBuffer (MACDHandle, 0 , 0 , 1 , macd_value);
   Print ( "macd_value: " , macd_value[ 0 ]);
  }
//+------------------------------------------------------------------+
mt5 빌드 2572
fxsaber :

이 해결 방법을 고려했습니다. 감사합니다. 그래야만 하는 것 같습니다.

변경된 사항이 있는지는 모르겠지만 기사 를 작성하는 시점에서 다음 코드는 보편적인 방식으로 작동했습니다.

 FileOpen (filename, FILE_READ | FILE_TXT | FILE_ANSI , 0 , CP_UTF8 );
Синтаксический анализ MQL средствами MQL
Синтаксический анализ MQL средствами MQL
  • www.mql5.com
Суть программирования заключается в формализации и автоматизации неких процессов с помощью языков общего или специального назначения. Торговая платформа MetaTrader позволяет применять программирование для решения самых разных задач трейдера, благодаря встроенному языку MQL. И обычно процесс программирования строится на анализе и обработке...
테스트한 Expert Advisor에서 핵심 번호를 찾는 방법을 알려주세요. MQL API에는 그런 것이 없지만 누군가가 에이전트의 경로를 구문 분석한 것 같습니다. 테스터에서 폴더가 얼마나 통합되었는지는 분명하지 않습니다.
Stanislav Korotky :
테스트한 Expert Advisor에서 핵심 번호를 찾는 방법을 알려주세요. MQL API에는 그런 것이 없지만 누군가가 에이전트의 경로를 구문 분석한 것 같습니다. 테스터에서 폴더가 얼마나 통합되었는지는 분명하지 않습니다.

https://www.mql5.com/ru/forum/1111/page2660#comment_15183572

감사합니다. 사실, 포트 번호는 5자리(표준 서비스용으로 예약된 것으로 간주되지만 기술적으로 4자 미만)일 수 있으므로 추출 방법을 직접 수정하겠습니다.

안녕하세요!

예를 들어 Expert Advisor를 개발할 때 디버그 모드에서 실행합니다. 입력 변수 중 하나의 기본값이 코드에서 방금 변경되었습니다. 그러나 런타임 값은 전략 테스터 세트의 이전 입력에서 대체됩니다.

질문 : "도대체 무슨 일이 일어나고 있습니까?". 지옥에 동기화는 없지만 디버그 모드에서 세트가 우선 순위를 가지며 코드가 아닌 이유는 무엇입니까?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
Nikolai Karetnikov :

안녕하세요!

예를 들어 Expert Advisor를 개발할 때 디버그 모드에서 실행합니다. 입력 변수 중 하나의 기본값이 코드에서 방금 변경되었습니다. 그러나 런타임 값은 전략 테스터 세트의 이전 입력에서 대체됩니다.

질문 : "도대체 무슨 일이 일어나고 있습니까?". 지옥에 동기화는 없지만 디버그 모드에서 세트가 우선 순위를 가지며 코드가 아닌 이유는 무엇입니까?

간단히 말해서, 이 기능을 염두에 두십시오.

정보를 공유하십시오. 전투 거래 고문의 EX5 파일 크기는 얼마입니까?

명시적 및 암시적( 정적 배열 ) 리소스가 없고 GUI가 ~1250Kb(EX4 - 450Kb) 없는 ( 하나 의(비 지표) 거래 논리)가 있습니다. 동시에 테스터용 버전(바디 키트 없이 실제 연마됨) - ~ 250Kb.

fxsaber :

정보를 공유하십시오. 전투 거래 고문의 EX5 파일 크기는 얼마입니까?

표시기 없는 150kb