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

 

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

비주얼 테스터에서는 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