초보자 도움말 - 요일 및 시간 기능 - 페이지 2

 

코드를 컴파일할 때 이러한 모든 오류가 발생하는 이유는 무엇입니까?

'GAPeaOnlySunday.mq4' 컴파일 중...
'bool' - 세미콜론이 필요함 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (86, 3)
'(' - 초기화 예상 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 22)
'TimeDayofWeek' - 쉼표 또는 세미콜론 예상 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (86, 23)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (86, 54)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 70)
'(' - 초기화 예상 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 22)
'TimeDayofWeek' - 쉼표 또는 세미콜론이 필요함 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (87, 23)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (87, 50)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (87, 54)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (87, 65)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 70)
'sunday_cond' - 전역 범위에 대한 표현식은 허용되지 않습니다. Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (88, 6)
'sunday_cond' - 변수가 정의되지 않음 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 6)
'monday_cond' - 전역 범위에 대한 표현식은 허용되지 않습니다. Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (88, 22)
'monday_cond' - 변수가 정의되지 않음 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (88, 22)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (88, 34)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (89, 20)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (89, 24)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (92, 35)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (92, 43)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (94, 38)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (94, 42)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (94, 57)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (96, 39)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (96, 45)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (98, 20)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (98, 29)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (100, 32)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (100, 53)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (102, 30)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (102, 55)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (104, 40)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (104, 57)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (104, 99)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (104, 107)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (108, 20)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (108, 30)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (110, 28)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (110, 55)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (112, 30)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (112, 57)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (114, 40)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (114, 57)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (114, 99)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (114, 107)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (122, 43)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (123, 27)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (123, 36)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (123, 46)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (123, 69)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (123, 81)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (123, 94)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (124, 66)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (125, 49)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (126, 31)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (127, 44)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (128, 58)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (134, 44)
')' - 불균형 오른쪽 괄호 Z:\ForexTrading\GabEA_From Mike\GAPEaOnlySunday.mq4 (136, 12)
오류 57개, 경고 2개

 

LOL - 코드에 버그가 있기 때문입니다.

디버그하십시오.

보고된 대로 누락된 괄호보다 누락된 세미콜론을 찾기 시작합니다.

코딩은 편집기에서 일부 단어를 작성하는 것이 아니라 주요 작업은 자신의 코드를 디버그하는 것입니다.

 

아니면 손실을 줄이고 기네스북에 연락할 수 있습니까?


CB

 

내 EA 코드에는 오류가 없으며 확인을 위해 테스트했습니다. 이 모든 오류는 다음 네 줄의 코드를 삽입한 후에 발생했습니다.


bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);
부울 monday_cond = (TimeDayofWeek(TimeCurrent())==1) && (Hour()<=15);
if(sunday_cond || monday_cond )
if(OrdersTotal()==0)

 
EagleEye :

내 EA 코드에는 오류가 없으며 확인을 위해 테스트했습니다. 이 모든 오류는 다음 네 줄의 코드를 삽입한 후에 발생했습니다.


if(OrdersTotal()==0) //여기서 다음을 따라야 하는 것은 아닙니다. -> {

삽입한 것이 전부인 경우 if가 true일 때 수행해야 할 작업을 코딩하지 않은 것입니다.

코드를 변경한 후 "당신의"(Mikes EA가 아닌가요?) ea가 오류가 없다고 어떻게 말할 수 있습니까? 농담하는거야?

 

"TimeDayofWeek" 대신 "TimeDayOfWeek"입니다. 올바른 코드는 다음과 같습니다.

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
부울 monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);
if(OrdersTotal()==0)
if(sunday_cond || monday_cond )
go_trading();

이 부분을 확인했으니 '우괄호 불균형' 오류는 나머지 코드의 또 다른 문제다.

 
abstract_mind _마인드:

"TimeDayofWeek" 대신 "TimeDayOfWeek"입니다. 올바른 코드는 다음과 같습니다.

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
부울 monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);
if(OrdersTotal()==0)
if(sunday_cond || monday_cond )
go_trading();

이 부분을 확인했으니 '우괄호 불균형' 오류는 나머지 코드의 또 다른 문제다.

 if ( OrdersTotal ( ) = = 0 )
if ( sunday_cond | | monday_cond )
go_trading ( ) ;

이것은 적어도 나쁜 스타일 코드 입니다. 괄호 누락과 같은 오류가 일반적이라는 것은 놀라운 일이 아닙니다.

if(
    (OrdersTotal()==0)
    &&
    (sunday_cond || monday_cond )
  ) 
   {
    go_trading();
   }

이런 식으로 괄호가 정확하고 이러한 종류의 코드가 거의 모든 언어에서 작동한다는 것을 분명히 알 수 있습니다.

{ }는 디버그하기 쉬워야 하는 코드에 필수적입니다.

코드가 한 줄에 있지 않은 경우 때때로 필요합니다.

 
meikel :

삽입한 것이 전부인 경우 if가 true일 때 수행해야 할 작업을 코딩하지 않은 것입니다.

코드를 변경한 후 "당신의"(Mikes EA가 아닌가요?) ea가 오류가 없다고 어떻게 말할 수 있습니까? 농담하는거야?

농담이 아니에요. 그리고 당신이 정말로 알고 싶다면, 내 친구 Mike가 내가 그것을 시험해 보기를 원하기 때문에 오래전에 나에게 그것을 보냈습니다.


4줄의 코드 없이 EA를 컴파일하면 전혀 오류가 없습니다.

여기에서 4줄의 코드를 삽입하면 모든 오류가 발생합니다.

 
EagleEye :

농담이 아니에요. 그리고 당신이 정말로 알고 싶다면, 내 친구 Mike가 내가 그것을 시험해 보기를 원하기 때문에 오래전에 나에게 그것을 보냈습니다.


4줄의 코드 없이 EA를 컴파일하면 전혀 오류가 없습니다.

여기에서 4줄의 코드를 삽입하면 모든 오류가 발생합니다.

abstract_mind의 힌트를 따르십시오.

당신이 쓴 것이 아니라

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);

이 때문에 등호 뒤의 모든 것은 잘못되었습니다. 따라서 컴파일러는 sunday_cond 뒤에 세미콜론을 예상합니다.

 
meikel :

abstract_mind의 힌트를 따르십시오.

당신이 쓴 것이 아니라

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);

이 때문에 등호 뒤의 모든 것은 잘못되었습니다. 따라서 컴파일러는 sunday_cond 뒤에 세미콜론을 예상합니다.


그렇다면 코드는 어떻게 생겼을까요?


지금은 다음과 같습니다.

//+----------------------------------------------- -------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- -------------------+
정수 시작()

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
부울 monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);

만약(
(OrdersTotal()==0)
&&
(sunday_cond || monday_cond )
)

{
if (Bars<100 || IsTradeAllowed()==false) 반환;

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();