초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 33

 

좋은 저녁이에요! 나는 이 기능이 내가 원하는 것을 정확히 줄 것이라고 확신합니다. 글쎄요, 거의. 그러나 기계는 컴파일하기를 원하지 않으며 다음과 같이 맹세합니다.

'}' - 모든 제어 경로가 값을 반환하는 것은 아닙니다. htghtgfhthf.mq5 61 10 논리에 문제가 있는지 확인하십시오. 모든 반환이 있는 것은 아닙니다. 필요한 곳에 게시! 반대로 if support 뒤에 붙이면 넌센스가 될 것이고 프로그램은 즉시 잘못된 결과를 줄 것입니다. 모든 것이 짧고 좋은 것 같습니다. 그렇다면 어떻게 그녀가 그것을 받아들이게 할 수 있습니까?

 string OrderType() { 
 string Si= "" ;

 long lo;
 bool Bull= false ; 
 Bull = PositionGetInteger ( POSITION_TYPE ,lo);
 if ( Bull ) {
 if ( lo== POSITION_TYPE_BUY ) Si= "OP_BUY" ;
 if ( lo== POSITION_TYPE_SELL ) Si= "OP_SELL" ;
 return (Si); }


 // ENUM_ORDER_TYPE ORType;

 Bull = OrderGetInteger ( ORDER_TYPE ,lo);
 if ( Bull ) {
 if ( lo== ORDER_TYPE_BUY_LIMIT ) Si= "OP_BUY_LIMIT" ;
 if ( lo== ORDER_TYPE_SELL_LIMIT ) Si= "OP_SELL_LIMIT" ;
 if ( lo== ORDER_TYPE_BUY_STOP ) Si= "OP_BUY_STOP" ;
 if ( lo== ORDER_TYPE_SELL_STOP ) Si= "OP_SELL_STOP" ;
 return (Si); }

 }
 
Dimka-novitsek :

좋은 저녁이에요! 나는 이 기능이 내가 원하는 것을 정확히 줄 것이라고 확신합니다. 글쎄요, 거의. 그러나 기계는 컴파일하기를 원하지 않으며 다음과 같이 맹세합니다.

'}' - 모든 제어 경로가 값을 반환하는 것은 아닙니다. htghtgfhthf.mq5 61 10 논리에 문제가 있는지 확인하십시오. 모든 반환이 있는 것은 아닙니다. 필요한 곳에 게시! 반대로 if support 뒤에 붙이면 넌센스가 될 것이고 프로그램은 즉시 잘못된 결과를 줄 것입니다. 모든 것이 짧고 좋은 것 같습니다. 그렇다면 어떻게 그녀가 그것을 받아들이게 할 수 있습니까?

팁: 기술적인 영어를 배워야 합니다. 이제 코드를 살펴보겠습니다.

관련: 함수는 문자열 값을 반환해야 합니다. 함수 내에서 검사는 return 문을 포함하는 if 문과 함께 사용됩니다. 질문: If 문이 Bull == false를 찾으면 함수는 무엇을 반환해야 합니까?

 
물론 Si="" ! 값이 비어 있습니다.
 

아하!! 감사해요!!!

감사해요!!!!

 
Dimka-novitsek :

좋은 저녁이에요! 나는 이 기능이 내가 원하는 것을 정확히 줄 것이라고 확신합니다. 글쎄요, 거의. 그러나 기계는 컴파일하기를 원하지 않으며 다음과 같이 맹세합니다.

'}' - 모든 제어 경로가 값을 반환하는 것은 아닙니다. htghtgfhthf.mq5 61 10 논리에 문제가 있는지 확인하십시오. 모든 반환이 있는 것은 아닙니다. 필요한 곳에 게시! 반대로 if support 뒤에 붙이면 넌센스가 될 것이고 프로그램은 즉시 잘못된 결과를 줄 것입니다. 모든 것이 짧고 좋은 것 같습니다. 그렇다면 어떻게 그녀가 그것을 받아들이게 할 수 있습니까?

모든 제어 경로가 값을 반환하는 것은 아닙니다. 값 반환을 완전히 제어할 수는 없습니다.

이는 형식이 void가 아니므로 반환 값이 있어야 하는 문자열 OrderType()에서 반환 값이 있는 종료가 보장되지 않음을 의미합니다.

2개의 전체 return 문 을 입력하더라도 둘 다 if 조건으로 보호됩니다. 두 조건이 모두 거짓이면 어떻게 됩니까?

그런 다음 적어도 차 창 밖으로 뛰어내립니다.

그건 그렇고, 이 함수에서는 실제로 스위치와 동일한 작업을 수행하는 if 힙 대신 스위치 카운터를 사용하는 것이 더 편리합니다.

ZZY Plus, 오더처럼 포지션이 미리 선택되어 있어야 한다는 점 잊지 마세요. 그리고 열거형을 문자열로 변환하기 위해 표준 함수 EnumToString이 있으므로 바퀴를 재발명할 필요가 없습니다.

 
감사합니다!!!
 
//+------------------------------------------------------------------+
//|                                                  Sample_Tick.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"

int Tick_All;

MqlTick            last_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   Tick_All= 0 ;

//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (! SymbolInfoTick ( _Symbol ,last_tick))
     {
       Print ( "Failed to get Symbol info!" );
     }

   Tick_All++;
   Print (Tick_All, "   " ,last_tick.bid, "   " ,last_tick.ask, "  " ,last_tick.last, " " ,last_tick.volume);
  }
//+------------------------------------------------------------------+


가격이 안바뀌는데 왜 OnTick이 호출되는지 이해가 안됨????

2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

 
dentraf :

가격이 안바뀌는데 왜 OnTick이 호출되는지 이해가 안됨????

2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

마지막 가격 업데이트 시간도 변경되지 않습니까?
 
Yedelkin :
마지막 가격 업데이트 시간도 변경되지 않습니까?

2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 20 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:19
2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 19 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:19
2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 18 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:18

또는

2012.09.10 15:37:12 Sample_Tick (EURUSD.m,M5) 6 1.27835 1.27845 1.27835 1000000 2012.09.10 14:37:11
2012.09.10 15:37:12 Sample_Tick (EURUSD.m,M5) 5 1.27835 1.27845 1.27835 1000000 2012.09.10 14:37:11
2012.09.10 15:37:12 Sample_Tick (EURUSD.m,M5) 4 1.27835 1.27845 1.27835 1000000 2012.09.10 14:37:10

 
dentraf :

2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 20 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:19

가격 변경 시간은 일종의 GMT+3으로 표시됩니다. 이것은 누구의 서버입니까?
사유: