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

 
따라서 터미널 버그 또는 서버 기록 버그입니다. 하지만 오히려 단말이기 때문에 챔피언에 대한 보고가 서버 히스토리에서 복원되었을 가능성이 더 큽니다.
 

Urain :
Так что это или баг терминала, или серверной истории. Но скорее терминала, тк отчёты на чемпе скорее с серверной истории восстанавливались.

시원한. 주의를 기울이지 않았다. 명확하게 설명했습니다.
 
Yedelkin :
시원한. 주의를 기울이지 않았다. 명확하게 설명했습니다.
그럼 누가 쿨하고 2주 동안 버그를 잡아야 하는지:o)
 
나는 그것을 찾았습니다. 기본적으로 시간순으로 정렬되어 있지만 거래 번호별로 필요합니다. 그러면 모든 것이 맞습니다.
 
Urain :
나는 그것을 찾았습니다. 기본적으로 시간순으로 정렬되어 있지만 거래 번호별로 필요합니다. 그러면 모든 것이 맞습니다.

오류가 없다는 뜻인가요? 문제는 거래가 고려되어야 하고 / 시간이 아니라 티켓별로 정렬되어야 한다는 것입니다.

나는 보고서를 대충 훑어보았을 뿐, 직위의 상태는 계산하지 않았다.

 
Renat :

오류가 없다는 뜻인가요? 문제는 거래가 고려되어야 하고 / 시간이 아니라 티켓별로 정렬되어야 한다는 것입니다.

나는 보고서를 대충 훑어보았을 뿐, 직위의 상태는 계산하지 않았다.

예, 정확히 보고서를 저장할 때 이 프로세스의 자동화가 없으며 주의 깊게 모니터링해야 합니다. 나는 모든 사용자가 이것에 주의를 기울일 것이라고 생각하지 않으며 결과적으로 보고서를 구문 분석할 때 버그가 있을 것입니다.

ZY 보고서 구문 분석 후 정렬을 추가했습니다. 결과적으로 모든 것이 효과가 있었지만 한 명 이상의 프로그래머가 이 기능에 지칠 것으로 예상합니다.

 

최적화하는 동안 최적화 매개변수의 이름은 최적화 그래프의 오른쪽 상단 모서리에 표시됩니다 .


최적화를 관찰할 때 새로운 최대값 이 항상 이 비문 뒤에 숨겨져 있기 때문에 이 비문은 다소 성가십니다.

Renat, 왼쪽 상단 모서리로 이동합시다! 또는 오른쪽 하단. 아니면 왼쪽 아래로 ... 어딜가나 오른쪽 위에서 제거하면 됩니다. 물론이죠! :)

// 또는 최소한 창백 하게 만들고 정보를 가리지 않도록 배경에 넣습니다.

[삭제]  
MetaDriver :

최적화하는 동안 최적화 매개변수의 이름은 최적화 그래프의 오른쪽 상단 모서리에 표시됩니다 .

최적화를 관찰할 때 새로운 최대값 이 항상 이 비문 뒤에 숨겨져 있기 때문에 이 비문은 다소 성가십니다.

Renat, 왼쪽 상단 모서리로 이동합시다! 또는 오른쪽 하단. 아니면 왼쪽 아래로 ... 어딜가나 오른쪽 위에서 제거하면 됩니다. 물론이죠! :)

// 또는 최소한 창백 하게 만들고 정보를 가리지 않도록 배경에 넣습니다.

왼쪽 하단, 그리고 배경으로.
 

제가 어디서 잘못했는지 알려주세요. 현재 상품에 대한 포지션과 보류 중인 주문을 삭제하는 간단한 스크립트를 작성하려고 합니다. 여기:

 //+------------------------------------------------------------------+
//|                                                        clean.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link       "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   MqlTick current_tick;
   MqlTradeRequest close_request;
   MqlTradeResult   close_result;
   SymbolInfoTick ( _Symbol ,current_tick);
   int counter01;
   while (check_position()== true );
     {
       PositionSelect ( _Symbol );
      close_request.action= TRADE_ACTION_DEAL ; close_request.symbol= _Symbol ; close_request.volume= PositionGetDouble ( POSITION_VOLUME ); close_request.type_filling= ORDER_FILLING_AON ;
       if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY )
        {
         close_request.price=current_tick.bid; close_request.type= ORDER_TYPE_SELL ;
        }
       else
        {
         close_request.price=current_tick.ask; close_request.type= ORDER_TYPE_BUY ;
        }
       OrderSend (close_request,close_result);
     }
   do
     {
       for (counter01= 1 ; counter01<= OrdersTotal (); counter01++)
        {
         close_request.order= OrderGetTicket (counter01- 1 );
         if ( OrderGetString ( ORDER_SYMBOL )== _Symbol )
           {
            close_request.action= TRADE_ACTION_REMOVE ;
             OrderSend (close_request,close_result);
           }
        }
     }
   while (check_order()== true );
   if ( GetLastError ()!= 0 )
       Print ( "ошибка код " , GetLastError (), " функция " , __FUNCTION__ , " строка " , __LINE__ );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool check_position() // функция проверяет наличие позиции
  {
   int counter01;
   bool position_exsist= false ;
   for (counter01= 0 ; counter01< PositionsTotal (); counter01++)
     {
       if ( PositionGetSymbol (counter01)== _Symbol )
        {
         position_exsist= true ;
         break ;
        }
     }
   return (position_exsist);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool check_order() // функция проверяет наличие ордеров
  {
   int counter01;
   bool order_exsist= false ;
   for (counter01= 0 ; counter01< OrdersTotal (); counter01++)
     {
       OrderGetTicket (counter01);
       if ( OrderGetString ( ORDER_SYMBOL )== _Symbol )
        {
         order_exsist= true ;
         break ;
        }
     }
   return (order_exsist);
  }
//+------------------------------------------------------------------+
위치가 있을 때 스크립트가 중단됩니다. 디버깅 중에 위치가 있는지 확인할 때 중단이 발생하는 것으로 나타났습니다. while(check_position()==true) 루프 조건이 검사되기 시작하면 check_position() 함수에 제어권이 넘어가고 함수가 처음 정상적으로 실행되면 true를 반환한다. 하지만 이후 싸이클의 본문은 실행되지 않고 조건 검사가 다시 시작되고 컨트롤은 다시 check_position()으로 돌아가서 return(order_exsist) 연산자를 실행한 후 싸이클 조건으로 돌아가지 않고 처음으로 돌아간다. check_position() 함수의. 제가 어디서 잘못했는지 알려주세요.
Документация по MQL5: Основы языка / Операторы / Оператор возврата return
Документация по MQL5: Основы языка / Операторы / Оператор возврата return
  • www.mql5.com
Основы языка / Операторы / Оператор возврата return - Документация по MQL5
 
molotkovsm :

제가 어디서 잘못했는지 알려주세요. 현재 상품에 대한 포지션과 보류 중인 주문을 삭제하는 간단한 스크립트를 작성하려고 합니다. 여기:

위치가 있을 때 스크립트가 중단됩니다. 디버깅 중에 위치가 있는지 확인할 때 중단이 발생하는 것으로 나타났습니다. while(check_position()==true) 루프 조건이 검사되기 시작하면 check_position() 함수에 제어권이 넘어가고 함수가 처음 정상적으로 실행되면 true를 반환한다. 하지만 이후 싸이클의 본문은 실행되지 않고 조건 검사가 다시 시작되고 컨트롤은 다시 check_position()으로 돌아가서 return(order_exsist) 연산자를 실행한 후 싸이클 조건으로 돌아가지 않고 처음으로 돌아간다. check_position() 함수의. 제가 어디서 잘못했는지 알려주세요.

위치가 있으면 무한 루프가 발생합니다.

 while (check_order()== true );

에 상당하다

 while (check_order()== true )
{
 //  пустой оператор
}
연산자 본문에 중단이 없기 때문에 코드에서 루프를 벗어날 방법이 없습니다.