Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 248

 
makssub #:

Спасибо большое за ответы. Часть из Ваших предложений я реализовал. 
Написал функция, находит нужный тик.
Написал функцию, которая считает профит всех закрытых ордеров после нужного ордер тика выбранной функции. Осталось одно поправить ее по вашим рекомендациям, добавить проверку по времени и так далее.

Только одно теперь меня смущает, а считает как то не так. Если ТР выходит 0.02 в результате теста, то она считает и пишет в Comment 0.1300. Подскажите, что с ней не так?

Тик и тикет разные вещи, тик это новая пришедшая цена сделок... Лучше сразу не путаться.

ТП и СЛ закрываются по цене уровней и цене больше или меньше. Цена дискретна, так же как и цена стоповых уровней. Если она не выходит за уровни, то ордер живет, если выходит, то закрывается. И в тестере 4ки тики моделируются, их меньше чем в реале, и соответственно разрыв между ценами тиков больше.

Ошибки и ход торговли лучше либо в журнал, но там много лишнего бывает, найти нужные строки нужно, или в файл писать. В файле лишнего не будет.

 
Valeriy Yastremskiy #:

Тик и тикет разные вещи, тик это новая пришедшая цена сделок... Лучше сразу не путаться.

ТП и СЛ закрываются по цене уровней и цене больше или меньше. Цена дискретна, так же как и цена стоповых уровней. Если она не выходит за уровни, то ордер живет, если выходит, то закрывается. И в тестере 4ки тики моделируются, их меньше чем в реале, и соответственно разрыв между ценами тиков больше.

Ошибки и ход торговли лучше либо в журнал, но там много лишнего бывает, найти нужные строки нужно, или в файл писать. В файле лишнего не будет.

Сегодня допишу, чтоб в журнал тоже выводил, Поставлю на тестовый счет, посмотрю, что покажет, отпишу. Если, что опять пристану с вопросами.

 
Доброго времени суток.

Чем функция отличается от оператора?

Почему "if()" - это оператор, а "Alert()" - это функция, если и у того и у другого есть скобки после названия? Изучаю учебник mql4, но не могу уяснить признаки и свойства
 
Ivan Butko #:

Чем функция отличается от оператора?

 никогда не задавался этим вопросом, но точно знаю, что во всех языках программирования всего с десяток операторов https://www.mql5.com/ru/docs/basis/operators

а все остальное это или встроенные библиотеки или пользовательские функции , синтаксис которых и выглядит как ()

ЗЫ: в теории все библиотеки написаны из операторов языка.....по крайней мере так раньше было в Си. MQL обертка на каким то компилятором, сейчас вроде LLVM и подключенными готовыми библиотеками, которые дают встроенные функции .... но это так, размышления, в принципе не важно, с задачами справляется

 
Ivan Butko #:
Доброго времени суток.

Чем функция отличается от оператора?

Почему "if()" - это оператор, а "Alert()" - это функция, если и у того и у другого есть скобки после названия? Изучаю учебник mql4, но не могу уяснить признаки и свойства

"if" напрямую транслируется в ассемблер как команда, а "Алерт" это функция которая отправляет уведомления.

 
Taras Slobodyanik #:

"if" напрямую транслируется в ассемблер как команда, а "Алерт" это функция которая отправляет уведомления.

хм... а switch или new - тоже транслируются в ассемблерную команду? 

;)


в общем к букварю по программированию нужно обращаться, там в предисловии и в первых главах обычно пишут что-то на эту тему, нужно какой-нибудь букварь для школьников поискать, там точно будет


UPD: и если не изменяет память, то if будет заменен на ассемблерные XOR / CMP  и потом JNE / JNZ ... т.е на сравнение и на переходы по флагам, вроде не совсем одна ассемблерная команда, хотя не суть

 
Ivan Butko #:
Доброго времени суток.

Чем функция отличается от оператора?

Почему "if()" - это оператор, а "Alert()" - это функция, если и у того и у другого есть скобки после названия? Изучаю учебник mql4, но не могу уяснить признаки и свойства

отличия только в семантике конкретного языка. В этой песочнице принято называть if оператором. Пока лепишь куличики тут, так тому и быть :-)

вообще это одно и то-же. Знаю языки где нет "операторов", одни функции кругом...и наоборот (в практике не использовал, но такие есть)

 
Igor Makanu #:

хм... а switch или new - тоже транслируются в ассемблерную команду? 

;)


в общем к букварю по программированию нужно обращаться, там в предисловии и в первых главах обычно пишут что-то на эту тему, нужно какой-нибудь букварь для школьников поискать, там точно будет


UPD: и если не изменяет память, то if будет заменен на ассемблерные XOR / CMP  и потом JNE / JNZ ... т.е на сравнение и на переходы по флагам, вроде не совсем одна ассемблерная команда, хотя не суть

Если память не изменяет из басика операторы простейшие одно действие, а функции более сложные, несколько действий. 

Так исторически сложилось хорошее объяснение)

 
Igor Makanu #:

UPD: и если не изменяет память, то if будет заменен на ассемблерные XOR / CMP  и потом JNE / JNZ ... т.е на сравнение и на переходы по флагам, вроде не совсем одна ассемблерная команда, хотя не суть

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

А то что более сложное, то что требует вызова сложных процедур, то уже функции.

А что еще сложнее, то уже классы-структуры.

 

если ничего уже не помогает, нужно читать Вики )))

Оператор (программирование)

и там же ссылка на сопутствующую статью

Операция (программирование)