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

 
Alexey Viktorov :

거기에 gif가 있는지도 몰랐습니다 ... 지금 보니 모든 것이 너무 빨라서 이해할 시간이 없습니다. 기록에서 별도로 고려되는 "스왑" 열이 표시되지 않는 것으로 나타났습니다. 또는 숫자로 말로 설명하십시오.

비활성화된 스왑 열을 직접 확인하지 못했다는 사실에 놀랐습니다.

감사합니다. 문제가 해결되었습니다.

 
Andrey Khatimlianskii :

비활성화된 스왑 열을 직접 확인하지 못했다는 사실에 놀랐습니다.

감사합니다. 문제가 해결되었습니다.

만세" 우리가 이겼습니다.

 
ChartSetSymbolPeriod를 사용할 때 OnDeinit 함수는 1을 반환합니다. 프로그램이 차트에서 제거되었으며 논리적으로 3 Symbol 또는   차트 기간   바뀌었다
 

버그는 if(...) 조건이 충족되면 루프를 중단할 수 없다는 것입니다.

 if ( (vm + vs * ( double )i) * tvp * 250.0 < ml ) { cv = vm + vs * ( double )i; Print (i, ": L/ML - " ,cv, " / " ,ml); };


여기 동영상이 있습니다



스크립트의 전체 코드는 다음과 같습니다.

 void OnStart ()
  {
//---
   
   double tvp  = SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE_LOSS ),
          vm   = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN ),
          vs   = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP ),
          ml   = AccountInfoDouble ( ACCOUNT_EQUITY ) * 0.015 ,
          cv   = - 1.0 ,
          loss = 0.0 ;
   
   for ( int i = 0 ; i < 20000 ; i++)
     {
       Print (i);
       //if( (vm + vs * (double)i) * tvp * 250.0 < ml ) { cv = vm + vs * (double)i; Print(i,": L/ML - ",cv," / ",ml); };
       /*loss = cv * tvp * 250.0;
      Print(NormalizeDouble(loss,2));
      Print(NormalizeDouble(ml,2)); Print(" ");
     */ };
   
  }
 
Alexandr Sokolov :

버그는 if(...) 조건이 충족되면 루프를 중단할 수 없다는 것입니다.

귀하의 코드는 이것과 유사합니다

 double a = 3 ;

for ( int i = 0 ; a > 300 ; i++)
{
 if (a != 3 )
   Print ( "Никогда такого не будет" );
}
 

어떤 이유로 내 표시기가 그래픽 개체를 잃기 시작하고 삭제하지 않습니다. 클래스 소멸자에서 자동 삭제를 사용합니다. 나는 전화한다:

 ObjectDelete (chartID, name);

결과적으로 나는 거짓을 얻는다. GetLastError()를 호출하고 오류 4101("잘못된 차트 ID ")을 얻습니다. 예를 들어... 제거된 그래픽 개체의 chartID를 ChartID() 함수의 결과와 비교했는데 정확히 동일합니다. 차트에서 개체를 삭제하지 않는 이유는 무엇이며 어떻게 우회할 수 있습니까?

 
Mihail Matkovskij :

어떤 이유로 내 표시기가 그래픽 개체를 잃기 시작하고 삭제하지 않습니다. 클래스 소멸자에서 자동 삭제를 사용합니다. 나는 전화한다:

결과적으로 나는 거짓을 얻는다. GetLastError()를 호출하고 오류 4101("잘못된 차트 ID ")을 얻습니다. 예를 들어... 제거된 그래픽 개체의 chartID를 ChartID() 함수의 결과와 비교했는데 정확히 동일합니다. 차트에서 개체를 삭제하지 않는 이유는 무엇이며 어떻게 우회할 수 있습니까?

비슷한 문제가 누적되고 있습니다 https://www.mql5.com/en/forum/1111/page2785#comment_17002122

아마도 제작자가 뭔가를 할 것입니다)

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2020.06.22
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

여기에 피드백이 없으면 다른 불쾌한 발견에서 부정적인 것을 버리기 위해서만 주제가 필요하다고 말합니다)


 #include <Arrays\ArrayObj.mqh>

class CPosition: public CObject
{
   public :
       string       meTicket;
      CPosition::CPosition( string inT)
      { this .meTicket = inT;}         
};

class CColl: public CArrayObj
{
public :
   string    meWrongProperty;
CPosition  * operator []( const int index) const { return (CPosition*)At(index);} 
};

class CCollOfColl: public CArrayObj
{
public :
CColl  * operator []( const int index) const { return (CColl*)At(index);} 
};



void OnStart ()
{
   CCollOfColl lCOC;
   CColl       *lC;
   
   lC = new CColl();
   lC.Add( new CPosition( "00" ));
   lC.Add( new CPosition( "01" ));
   lCOC.Add(lC);
   
   lC = new CColl();
   lC.Add( new CPosition( "10" ));
   lC.Add( new CPosition( "11" ));
   
   lCOC.Add(lC);
   
   for ( int i= 0 ;i<lCOC.Total();i++)
     {
       for ( int j= 0 ;j<lCOC[i].Total();j++)
         {
           printf (lCOC[i][j].meTicket);
          lCOC[i][j].me
         }
     }
}


제 생각에는 meWrongProperty 대신에 에디터가 meTicket을 제안했어야 했습니다)

 

빌드 2530

세 번째 구조 중첩에서는 지능이 나타나지 않습니다.

 //+------------------------------------------------------------------+
//|                                                   TestStruct.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

//----------------------------------------------------
struct STRUCT_TIME_IN_FORCE
{
   string GTC; 
   string IOC;  
   string FOK; 
}; 
//----------------------------------------------------
struct STRUCT_SYMBOLS  
{
   string                symbol;                
   STRUCT_TIME_IN_FORCE timeInForce;            
};

//----------------------------------------------------
struct STRUCT_EXCH_INFO  
{
   string          timeZone;      
   long            serverTime;     
   STRUCT_SYMBOLS symbols[];  
};


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
{
   STRUCT_EXCH_INFO Info;
   ArrayResize (Info.symbols, 10 );
   
   Info.symbols[ 0 ].timeInForce. //??? На третьем вложении не появляется интеллесенс

}
//+------------------------------------------------------------------+
 
Dmytryi Voitukhov :

어드바이저의 마켓에서 확인할 때 로트 계산에 오류가 있었습니다.

테스터에 오류가 없습니다.

코드는 이보다 쉬울 수 없습니다. 어떻게 틀릴 수 있습니까?

마켓에 게시되기 전에 거래 로봇이 통과해야 하는 검사 항목 읽기

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку, так как небольшая ошибка в логике советника или индикатора может привести к убыткам на торговом счете. Именно поэтому нами разработана серия базовых проверок, призванных обеспечить необходимый уровень качества продуктов Маркета. Если в процессе проверки...