MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1030

 
Sabit Dosaev :
간단한 질문입니다. 올빼미는 컴파일되지 않습니다. 코드 끝에 오류가 있습니다. + __FUNCSIg__
+ ": "+Market_Err_To_Str(errIndex)
+ "; 주문 티켓 = " + (문자열)OrderTicket()
+ "; 주문 유형 = " + (문자열)OrderType()
+ "; 주문 손절매 = " + DoubleToStr(OrderStopLoss(), Digits())
+ "; 새로운 손절매 = " + DoubleToStr(newStopLoss, Digits())
+ "; 입찰가 = " + DoubleToStr(입찰가, 자릿수())
+ "; 묻기 = " + DoubleToStr(묻기, 숫자())
);
}
}
lastSetNonlosTryTime = TimeLocal();
}


컴파일할 때 오류가 발생합니다. 어렵지 않다면 도와주세요. 고맙습니다!

코드를 올바르게 붙여넣습니다.


그리고 ... 코드 조각에서 오류가 무엇인지 명확하지 않습니다. 코드는 재현 가능해야 합니다.

 
string LastComm( int a_magic_0)
  {
   int l_hist_total_4 = OrdersHistoryTotal();
   int l_datetime_8 = 0 ;
   int l_datetime_12 = 0 ;
   string ls_ret_16 = "0" ;
   for ( int l_pos_24 = 0 ; l_pos_24 < l_hist_total_4; l_pos_24++)
     {
       OrderSelect (l_pos_24, SELECT_BY_POS, MODE_HISTORY);
      l_datetime_8 = OrderCloseTime();
       if (l_datetime_8 > l_datetime_12 && OrderMagicNumber() == a_magic_0)
        {
         l_datetime_12 = l_datetime_8;
         ls_ret_16 = OrderComment();
        }
     }
   return (ls_ret_16);
  }

@Artyom 트리쉬킨

이 함수를 MQL4에서 MQL5로 어떻게 변환할 수 있습니까?

 

좋은 하루입니다.

연결 상태를 확인하기 위해 IsConnected() 함수를 삽입할 위치를 알려주시겠습니까?

OnTick() 함수 내에 삽입하면 항상 연결이 있습니다. OnTick() 및 이에 따라 결정 기능 연결 상태 IsConnected() )) 따라서 OnTick() 내에 IsConnected()를 삽입하는 것은 무의미합니다(몇 번이나 인터넷 연결을 끊지 않았는지, 여전히 파일에 약 연결 부족)

이 질문에 대해 IsConnected() 함수를 삽입하는 것이 올바른 위치 또는 연결 상태를 확인하는 다른 방법은 무엇입니까(MT4만 해당)

고맙습니다!

 
Roni Iron :

좋은 하루입니다.

연결 상태를 확인하기 위해 IsConnected() 함수를 삽입할 위치를 알려주시겠습니까?

OnTick() 함수 내에 삽입하면 항상 연결이 있습니다. OnTick() 및 이에 따라 결정 기능 연결 상태 IsConnected() )) 따라서 OnTick() 내에 IsConnected()를 삽입하는 것은 무의미합니다(몇 번이나 인터넷 연결을 끊지 않았는지, 여전히 파일에 약 연결 부족)

이 질문에 대해 IsConnected() 함수를 삽입하는 것이 올바른 위치 또는 연결 상태를 확인하는 다른 방법은 무엇입니까(MT4에만 해당)

고맙습니다!

OnTimer()

Документация по MQL5: Обработка событий / OnTimer
Документация по MQL5: Обработка событий / OnTimer
  • www.mql5.com
//|                                               OnTimer_Sample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Roman Shiredchenko :

변수와 함수에 대해 혼동이 있을 수 있습니다. 함수인 경우 다음을 시도하세요.

ALT + S를 통해 코드 붙여넣기

감사해요

로만 시레첸코 :

변수와 함수에 대해 혼동이 있을 수 있습니다. 함수인 경우 다음을 시도하세요.

ALT + S를 통해 코드 붙여넣기

예, 이것은 기능입니다.

감사합니다만 어떤 이유로 오류가 발생합니다

'}' - 모든 제어 경로가 값을 반환하는 것은 아닙니다.

대괄호는 내 코드와 빈 템플릿 모두에서 모든 것을 올바르게 확인한 것 같습니다.

ALT + S - 감사합니다. 참고하겠습니다.

 
wolder1 :

감사해요

예, 이것은 기능입니다.

감사합니다. 하지만 어떤 이유로 인해 오류가 발생합니다.

'}' - 모든 제어 경로가 값을 반환하는 것은 아닙니다.

대괄호는 내 코드와 빈 템플릿 모두에서 모든 것을 올바르게 확인한 것 같습니다.

ALT + S - 감사합니다. 참고하겠습니다.

좋은 질문에는 답변이 포함되어 있습니다(C).

 
wolder1 :

감사해요

예, 이것은 기능입니다.

감사하지만 어떤 이유로 오류가 발생합니다.

'}' - 모든 제어 경로가 값을 반환하는 것은 아닙니다.

대괄호는 내 코드와 빈 템플릿 모두에서 모든 것을 올바르게 확인한 것 같습니다.

ALT + S - 감사합니다. 참고하겠습니다.

함수 이중 - 함수 유형이 void 인 경우 값을 반환해야 합니다. 그러면 아니오입니다.

코드에서 위에 정의된 변수가 있는 경우 이를 주석 처리할 수 있습니다. + 여기에 추가 공백이 있습니다(Bid > = L8b)) - 변경:

 double lot= 0 ; //, Lots;
//   double L0a3, L2a3, L5a3, L8a3, L0b1, L2b1, L5b1, L8b1, L0a, L2a, L5a, L8a,L0b,L2b,L5b,L8b,L0a1,L2a1,L5a1,L8a1,L0b3,L2b3,L5b3,L8b3;  
double _LOTS()
  {
   double lot= 0 , Lots;
   double L0a3, L2a3, L5a3, L8a3, L0b1, L2b1, L5b1, L8b1, L0a, L2a, L5a, L8a,L0b,L2b,L5b,L8b,L0a1,L2a1,L5a1,L8a1,L0b3,L2b3,L5b3,L8b3;  
   if ((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid >= L2b1) ||
      (Bid >= L5b1) || (Bid >= L8b1))
      {
       lot=( NormalizeDouble (Lots, 2 ));
       Print ( " lot = " , lot); 
       return (lot);
      }
      
     if ((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
      (Bid >= L5b) || (Bid >= L8b))
      {
       lot=( NormalizeDouble ((Lots* 1.5 ), 2 ));
       Print ( " lot = " , lot); 
       return (lot);
      }
     
    

   if ((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
      (Bid >= L2b3) || (Bid >= L5b3) || (Bid >= L8b3))      
      {
       lot=( NormalizeDouble ((Lots* 2.5 ), 2 ));
       Print ( " lot = " , lot); 
       return (lot);
      }
     return (lot);  
  } 
 

좋은 아침.

문제. 날짜의 교차점에 있는 테스터에서(다음 날의 줄이 지나갈 때) 프로그램은 지연 설정을 해결해야 했습니다. 보류 중인 보류 중 이미 제자리에 있고 가격이 훅 - 열렸지만 다른 보류 중인 주문 을 열라는 명령이 어떤 이유로 시스템에서 무시되었습니다.(왜? 실제 계정에서 이것은 로봇의 명령이 다음과 같을 때도 발생할 수 있습니다. 단순히 무시하고 그에 따라 필요한 조치가 발생하지 않습니까?


그리고 또 다른 질문. 테스터를 운전하지만 시각화에서 약 일주일이 걸리고 비문을 롤아웃한다는 사실에 매우 혼란 스럽습니다.

0:17:42.694(총 시간 0:17:48.217)에 처리된 177564개의 틱 이벤트(447개 막대, 7888506개 막대 상태)

177564개의 틱 이벤트(447개 막대, 7888506개 막대)가 0:17:42.694(0:17:48.217 총 시간)에 처리되었습니다.

나조차도 이해하지 못했는데, 종교가 무엇을 더 이상 시험하지 못하게 합니까? 아니면 그가 내 컴퓨터의 리소스에 대해 그렇게 걱정하고 걱정하고 있습니까? 오류가 발생하지 않습니다. 그것은 단지 작업 자체를 완료합니다. 제가 정한 날짜는 7일이 아니라 7개월입니다. 테스트의 전체 경로를 보고 싶습니다.

어떤 종류의 종교가 예를 들어 1년 또는 몇 년 동안 육안으로 테스트하는 것을 허용하지 않습니까? 그런 다음 예를 들어 전년도에 프로그램이 어떻게 작동하는지 시각적으로 볼 수 있습니다.


그리고 또 다른 질문. (아마도 답이 없을 것 같지만)) 2 바퀴의 테스터에서 테스터가 예상대로 작동하지만 오늘 위에서 언급 한 비문 바로 전에 모든 지시를 무시하는 일이 어떻게 일어날 수 있습니까? 프로그램이 여러 서클에 대해 올바르게 작동한 다음(주문을 연 다음 닫음) 모든 것을 건너뛰고 무시하는 것이 어떻게 가능합니까? 열리지도 닫히지도 않습니다. 시험기간이 끝나서 그런 건가요 아니면 다른 이유가 있는 건가요?

 

안녕하세요!!!

마지막으로 마감된 주문 시간이 필요합니다.

f-yu를 작성했지만 제대로 작동하지 않습니다.

//+----------------------------------------------- --------------------+

//| 마지막 주문 마감 시간 |

//+----------------------------------------------- --------------------+

이중 Last_Ticets_Close()

{

last_ticket = 0;

Last_OrClTime = 0;


for(int i=0; i<OrdersTotal(); i++)

{

if( 주문 선택 (i,SELECT_BY_POS, MODE_HISTORY ))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==매직)

{

if(Last_Ticet<OrderTicket())

{

Last_Ticet = OrderTicket();

Last_OrClTime = OrderCloseTime();

}

}

}

}

반환(마지막 티켓);

}

누군가가 무엇이 잘못되었는지 말해 줄 수 있습니까?

 
142vs :

안녕하세요!!!

마지막으로 마감된 주문 시간이 필요합니다 .

f-yu를 작성했지만 제대로 작동하지 않습니다.

누군가가 무엇이 잘못되었는지 말해 줄 수 있습니까?

나중에 찾을 때 티켓이 아닌 시간을 비교

사유: