초보자 도움말 - 요일 및 시간 기능 - 페이지 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();