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

 
sergey1294 :
먼저 정수를 이것으로 나누고 정수를 얻습니다. 유형 캐스팅 https://www.mql5.com/en/docs/basis/types/casting에 대해 읽어보십시오.
예, 하지만 이것은 이전에 발생한 적이 없습니다. 나는 귀찮게하지도 않았다.
 
ivandurak :
예, 하지만 이것은 이전에 발생한 적이 없습니다. 나는 귀찮게하지도 않았다.

예전에 4위였나? 처음부터 상위 5위 안에 들었고 앞으로도 계속 그럴 것이기 때문입니다(1/2=0; 1./2.=0.5).

명시적으로 중복을 지정하려면 점을 추가하십시오.

 // Script program start function                                    
void OnStart ()
  {
   int i;
   double    a,b ;
   for (i= 0 ;i< 10 ;i++)
      {
         a= 1 ./ 2 .;
         b= 1 ./ 2 .;
         Print ( "a=" ,a, " " , "b=" ,b) ;
      }   
  }
 
Urain :

예전에 4위였나? 처음부터 5위 안에 들었기 때문이다.

명시적으로 중복을 지정하려면 점을 추가하십시오.

이것은 4번이나 5번에서 일어난 적이 없습니다.

정수 산술(그리고 순수한 정수 상수 형태의 경우에도)은 단일 값입니다.

 

테스터와 데모 계정 간에 다음과 같은 불일치가 발생했습니다.

성공적인 거래 작업 후 거래 서버 응답 구조의 가격 필드는 다르게 채워집니다. 데모 계정에서 모든 것이 가격 필드에 있어야 하는 대로입니다. 거래가 이루어진 가격, 테스터에서 이 필드는 0으로 유지됩니다.

확인하기 위해 각 틱을 구매하고 로그에 반환 코드와 가격을 표시하는 어드바이저를 스케치했습니다.

 //+------------------------------------------------------------------+
//|                                                  test-expert.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
{
return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
         MqlTradeRequest trade_request;
         MqlTradeResult   trade_result;
         ZeroMemory (trade_request);
         ZeroMemory (trade_result);
         trade_request.action= TRADE_ACTION_DEAL ; 
         trade_request.volume= 0.1 ; 
         trade_request.type= ORDER_TYPE_BUY ; 
         trade_request.price= SymbolInfoDouble ( _Symbol , SYMBOL_ASK ); 
         trade_request.symbol= _Symbol ;
         OrderSend (trade_request,trade_result);
         Print (trade_result.retcode, "купили по цене " ,trade_result.price);
  }
//+------------------------------------------------------------------+

데모 계정에서 실행하면 로그에 다음 줄이 나타납니다.

2012.01.16 12:48:29 테스트 전문가(EURUSD,H1) 100091.266의 가격으로 구입

시각화 도우미에서 실행하면 다음과 같습니다.

2012.01.16 12:49:12 2011.12.30 00:00:11 100090.0의 가격으로 구입

이것은 버그입니까, 기능입니까, 아니면 제가 뭔가를 잘못하고 있습니까?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

테스터에서 히스토리를 관리하는 방법이 있습니까?

그런 다음 2011년 1월 1일부터 오늘까지 1시간 동안 테스트하면 막대가 6000개만 로드됩니다. 설정에서 - 최대 막대 무제한입니다. 전체 이야기는 1971년부터 1분 만에 로드되었습니다.

 

이 질문은 예기치 않게 발생했습니다.

표시기가 iCustom 을 통해 Expert Advisor에 로드되면 표시기가 로드되고 올바르게 작동합니다. 유일한 것은 OnTimer 함수가 여기서 호출되지 않는다는 것입니다.

이것은 의도된 것입니까 아니면 버그입니까?

차트에 방금 던진 동일한 지표가 완벽하게 작동합니다.

빌드 574.

 
Dima_S :

이 질문은 예기치 않게 발생했습니다.

표시기가 iCustom 을 통해 Expert Advisor에 로드되면 표시기가 로드되고 올바르게 작동합니다. 유일한 것은 OnTimer 함수가 여기서 호출되지 않는다는 것입니다.

이것은 의도된 것입니까 아니면 버그입니까?

그래서 의도했다.
 
antt :
그래서 의도했다.
매우 독창적임)
 
Dima_S :
매우 독창적임)

차트에 대해 타이머 이벤트가 생성되고 거기에서 차트에서 작동하는 프로그램(위에 던짐)이 생성됩니다. 이것이 이념 이다 - 프로그램의 실행 :

클라이언트 터미널은 새로운 이벤트를 해당 공개 차트로 보냅니다. 이벤트는 차트( 차트 이벤트 ) 또는 mql5 프로그램( 사용자 이벤트 )에 의해 생성될 수도 있습니다. 차트에서 그래픽 개체를 생성 및 삭제하기 위한 이벤트 생성은 차트 속성 CHART_EVENT_OBJECT_CREATECHART_EVENT_OBJECT_DELETE 를 설정하여 활성화 및 비활성화할 수 있습니다. 각 mql5 프로그램과 각 차트에는 새로 도착하는 모든 이벤트가 추가되는 자체 이벤트 대기열이 있습니다.

프로그램은 실행 중인 차트에서만 이벤트를 수신합니다. 모든 이벤트는 수신된 순서대로 하나씩 처리됩니다.

따라서 Expert Advisor에서 호출되는 표시기는 타이머 이벤트를 허용하지 않습니다. Expert Advisor의 ChartIndicatorAdd 기능을 사용하여 이 지표를 차트에 추가하려고 합니다. 변경되는 사항이 있습니까?

 
Dima_S :
매우 독창적임)
처음에 이 이벤트는 전문가를 대상으로 했으며 실제로는 차트 이벤트였습니다. 표시기의 이벤트 사용은 나중에 추가되었으며 제한 사항이 있습니다. 표시기는 차트에 추가해야 합니다.