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

 

테스트를 시작할 때 나는 지속적으로 다음을 관찰합니다.

2014.03.28 17:12:28 코어 1 127.0.0.1:3000에 연결
2014.03.28 17:12:38 코어 1 테스터 에이전트 인증 오류
2014.03.28 17:12:38 코어 1 연결 닫힘

테스트 기회는 예외로 제공됩니다. 원격 에이전트가 비활성화되고 바이러스 백신이 없습니다.
어떻게 치료됩니까?

 
cDan :

테스트를 시작할 때 나는 지속적으로 다음을 관찰합니다.

2014.03.28 17:12:28 코어 1 127.0.0.1:3000에 연결
2014.03.28 17:12:38 코어 1 테스터 에이전트 인증 오류
2014.03.28 17:12:38 코어 1 연결 닫힘

테스트 기회는 예외로 제공됩니다. 원격 에이전트가 비활성화되어 있고 바이러스 백신이 없습니다.
어떻게 치료됩니까?

안티바이러스 아님?
 
바이러스 백신 없음
 

Perepsot, 하지만 아마도 그들은 여기에서 더 빨리 대답할 것입니다:

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초보자의 질문

다-4 , 2014.03.28 13:23

위의 코드가 테스터에서는 작동하지 않는데 실시간으로 작동하는 이유를 누가 설명해주실 수 있나요!!? 왜 HistoryOrderGetInteger... 속성이 HistorySelect(0, TimeCurrent()) 이후에 테스터에서 사용할 수 없는지 특히 관심이 있습니다.

 #include <Trade\Trade.mqh>

CTrade trade;

int OnInit ()
{
   trade.LogLevel(LOG_LEVEL_NO);
   return INIT_SUCCEEDED ;
}
void OnTick ()
{
   if (!DetectNewBar()) return ;
   trade.Sell( 0.1 );
   HistorySelect ( 0 , TimeCurrent ());
   for (; dealsCount < HistoryDealsTotal (); dealsCount++)
   {
       ulong ticket = HistoryDealGetTicket (dealsCount);
      RecalcDeal(ticket);
   }
}

bool DetectNewBar( void )
{
   MqlRates bars[ 1 ];
   CopyRates ( Symbol (), PERIOD_M1 , 0 , 1 , bars);
   if (bars[ 0 ].time != timeLastBar)
   {
      timeLastBar = bars[ 0 ].time;
       //printf(expertName + " new bar detected: " + TimeToString(bars[0].time));
       return true ;
   }
   return false ;
}

void RecalcDeal( ulong ticketDeal)
{
   //History is selected in OnTick()!
   ulong ticketOrder = HistoryDealGetInteger (ticketDeal, DEAL_ORDER );
   //if(!HistoryOrderSelect(ticketOrder))
   //   printf("order not select.");
   ENUM_ORDER_TYPE type = ( ENUM_ORDER_TYPE ) HistoryOrderGetInteger (ticketOrder, ORDER_TYPE );
   datetime time = HistoryOrderGetInteger (ticketOrder, ORDER_TIME_SETUP ); 
   ulong time_msc = HistoryOrderGetInteger (ticketOrder, ORDER_TIME_SETUP_MSC ); 
   printf ( "Order: " + ( string )ticketOrder + " Type: " + EnumToString (type) + " Time: " + ( string )time +
           " Time msc: " + ( string )time_msc + " Total Orders: " + HistoryOrdersTotal ());
}

int dealsCount;

datetime timeLastBar;

전략 테스터의 스크린샷:

데모의 실시간 스크린샷:

ps 흥미롭게도 테스터의 첫 번째 주문은 올바르게 처리되지만 나머지는 그렇지 않습니다. 그러나 HistroryOrderSelect(ticketOrder)의 주석을 해제하면 실시간으로 주문이 선택되지 않았다는 메시지가 표시되고 반대로 전략 테스터에서는 첫 번째 주문을 제외한 모든 것이 작동하기 시작합니다.


 

애플리케이션 설명 화면 #986216

 

기본 제공 문자열 함수 StringSplit이 올바르게 작동 합니까?

 void OnStart ()
{
         string str = "|A|B|" ;
         string result[];
         int n = StringSplit ( str, '|' , result );
         Print ( "количество полученных подстрок=" , n );
         for ( int i = 0 ; i < n; i++ )
                 Print ( "подстрока(" , i, ")=" , result[ i ] );
}

다음 결과를 생성합니다.

문자 '|' "|A"의 경우 빈 문자열과 A를 분리하고 "B|"의 경우 - B와 빈 문자열을 구분하지 않습니다. 그러나 구분 기호인 경우 무언가를 구분해야 합니다. 그렇지 않으면 "|A|B|" 간에 차이가 없습니다. "|A|B"와 동시에 "|A|B|" 사이에 차이가 있습니다. "A|B|" . 그리고 한 경우에 빈 문자열이 허용되면 다른 경우에도 허용되어야 합니다.

 

정확하게 분리되지만 완전히 분리되지는 않습니다. 마지막에는 빈 토큰도 발행해야 합니다.

서비스 데스크에 두십시오.

 

내 평가에 문제가 있습니다. 코드 다운로드 카운터가 날아간 것 같습니다.

앗, 이건 실수가 아니네요... 등급에 MQL4가 붙은 코드가 추가되었나요?

 

예, 우리는 MQL4 코드 베이스를 새로운 MQL5 사이트 엔진으로 이식하는 작업을 하고 있습니다.

플랫폼 통합 작업을 진행하고 있습니다.

 
A100 :

기본 제공 문자열 함수 StringSplit이 올바르게 작동합니까?

다음 결과를 생성합니다.

문자 '|' "|A"의 경우 빈 문자열과 A를 분리하고 "B|"의 경우 - B와 빈 문자열을 구분하지 않습니다. 그러나 구분 기호인 경우 무언가를 구분해야 합니다. 그렇지 않으면 "|A|B|" 간에 차이가 없습니다. "|A|B"와 동시에 "|A|B|" 사이에 차이가 있습니다. "A|B|" . 그리고 한 경우에 빈 문자열이 허용되면 다른 경우에도 허용되어야 합니다.

메시지를 보내주셔서 감사합니다. 4번째 및 5번째 터미널에서 수정되었습니다.