Помогите новичку - Функции дня и времени - страница 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

 

В коде моего советника нет ошибок, просто протестировал его, чтобы убедиться. Все эти ошибки появились после того, как я вставил эти четыре строки кода:


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

 
EagleEye:

В коде моего советника нет ошибок, просто протестировал его, чтобы убедиться. Все эти ошибки появились после того, как я вставил эти четыре строки кода:


if(OrdersTotal()==0) //не следует ли здесь следовать этому -> {

если это все, что вы вставили, вы просто не закодировали то, что должно быть сделано, когда if равен true

Как вы можете утверждать, что "ваша" (не Mikes EA?) ea безошибочна после того, как вы изменили код? Вы шутите?

 

Вместо "TimeDayofWeek" будет "TimeDayOfWeek". Правильный код таков:

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
bool 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);
bool 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 безошибочна после того, как вы изменили код? Вы шутите?

Нет, я не шучу. И если вы действительно хотите знать, Майк, мой друг, послал его мне уже давно, потому что он хотел, чтобы я его опробовал.


Когда я компилирую советника без этих 4 строк кода, ошибки вообще нет.

Когда я вставляю 4 строки кода отсюда, он делает все ошибки.

 
EagleEye:

Нет, я не шучу. И если вы действительно хотите знать, Майк, мой друг, послал его мне уже давно, потому что он хотел, чтобы я его опробовал.


Когда я компилирую советника без этих 4 строк кода, ошибки вообще нет.

Когда я вставляю 4 строки кода отсюда, он выдает все ошибки.

Следуйте подсказке abstracts_mind.

Вы написали of, а не Of

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

all после знака равенства неверно, поэтому компилятор ожидает точку с запятой после sunday_cond.

 
meikel:

следуйте подсказке abstracts_mind.

Вы написали of, а не Of

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

все после знака равенства неправильно из-за этого, поэтому компилятор ожидает точку с запятой после sunday_cond.


Как же должен выглядеть код?


Сейчас он выглядит следующим образом:

//+------------------------------------------------------------------+
//| экспертная функция запуска |
//+------------------------------------------------------------------+
int start()

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

if(
(OrdersTotal()==0)
&&
(sunday_cond || monday_cond )
)

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

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