Ваши вопросы по языку MQL4

vladradon

Программист
А документацию вкурить, прежде чем кидаться словами?
Привет. тезка: понимаешь, столько косяков за MQL4/5, что наши слова - это тупо бред, которого быть не должно. Но мы же здесь обсуждаем и тупые бредовые ситуации, которые не от грамотности алгоритма зависят, а от косяков в самих MQL-ках. Как бороться с гэпами, если выставлен отложенник - цена проскочила - отложенник не открылся (особенно на фьючах) - терминал выдает по каждому тику ошибку, т.к. цена ушла далеко от отложенника - бред... А когда используешь мартина, то (я вообще удивлен) мало, кто знает, что такое stoplevel... о котором ни один брокер в параметрах своих счетов ничего не упоминает, а это может сильно повлиять на рез торгов... Короче, до хрена мелочей, о которых новички даже не подозревают.
 

eevviill2

Местный знаток
Привет. тезка: понимаешь, столько косяков за MQL4/5, что наши слова - это тупо бред, которого быть не должно. Но мы же здесь обсуждаем и тупые бредовые ситуации, которые не от грамотности алгоритма зависят, а от косяков в самих MQL-ках. Как бороться с гэпами, если выставлен отложенник - цена проскочила - отложенник не открылся (особенно на фьючах) - терминал выдает по каждому тику ошибку, т.к. цена ушла далеко от отложенника - бред... А когда используешь мартина, то (я вообще удивлен) мало, кто знает, что такое stoplevel... о котором ни один брокер в параметрах своих счетов ничего не упоминает, а это может сильно повлиять на рез торгов... Короче, до хрена мелочей, о которых новички даже не подозревают.
Вижу ты начинаешь понимать о чём речь.
Ну тогда на тебе подсказку по твоему вопросу по стоплевелу:D

P.S. Если не кухня то его вообще не должно быть.
 

Вложения

  • пр.png
    пр.png
    76,5 КБ · Просмотры: 44

vladradon

Программист
Ну тогда на тебе подсказку по твоему вопросу по стоплевелу
Я тебе один умный вещь скажу, тока ты не обижайся: в моей последней разработке, которая в ближайшее время выйдет на рынок, мне пришлось отдельную функцию прописать, которая автоматом переводит сова из режима стандартных ТР и SL в виртуальные и именно из-за стопуровня! Скоро, надеюсь, выйдет мной написанный релиз, в котором есть функционал по стопам...
 

vladradon

Программист
Ну тогда на тебе подсказку по твоему вопросу по стоплевелу
Есть брокеры, у которых стопуровень 0, но у большинства он меняется, взависимости от инструмента. Я выкладываю своего сова, который показывает стопуровень на данном инструменте - просто чтобы знать... Сов рабочий - не давайте ему работать или курируйте! Просто чтоб не случилось казусов...
 

Вложения

  • Locker1.62C.ex4
    38,5 КБ · Просмотры: 25

vlad_123

Местный знаток
Короче, до хрена мелочей, о которых новички даже не подозревают.
;)
Типа того, что если сравнивать, например, double переменную с целым числом, то double надо нормализовывать по 8ми разрядам, например, т.к. где-нить в 15м-20м разряде может быть не-ноль, и сравнение будет типа (0.000..01 == 0) и возвратит false, хотя по феншую - true.
 

mobidik

-----
;)
Типа того, что если сравнивать, например, double переменную с целым числом, то double надо нормализовывать по 8ми разрядам, например, т.к. где-нить в 15м-20м разряде может быть не-ноль, и сравнение будет типа (0.000..01 == 0) и возвратит false, хотя по феншую - true.

На счет этого, справка сама на это обращает внимание:
"Нельзя сравнивать два вещественных числа на равенство друг другу. В большинстве случаев два вроде бы одинаковых числа могут оказаться неравными из-за разницы значения в 15-ом знаке после запятой. Для корректного сравнения двух вещественных чисел необходимо сравнивать нормализованную разницу этих чисел с нулевым значением."
 

vladradon

Программист
На счет этого, справка сама на это обращает внимание:
Скажу больше: у меня в одном из моих сов выводится коммент нормализированного профита до 2-х знаков после запятой (NormalizeDouble) и даже эта функция глючит периодически - тупо выдает 16 знаков после запятой. Приходится цифру дополнительно преобразовывать в символы (DoubleToStr), чтобы цифры на графике не шокировали.))
 

mobidik

-----
Скажу больше: у меня в одном из моих сов выводится коммент нормализированного профита до 2-х знаков после запятой (NormalizeDouble) и даже эта функция глючит периодически - тупо выдает 16 знаков после запятой. Приходится цифру дополнительно преобразовывать в символы (DoubleToStr), чтобы цифры на графике не шокировали.))

На счет "глючит" NormalizeDouble..., Вы все верно сделали, т.к. нормализация цены не предназначена для вывода инфы с заданной точность, опять таки, справка об этом сама гласит: https://docs.mql4.com/ru/convert/normalizedouble, а вот DoubleToStr - самое то.
 

forexOrx

Новичок форума
Приветствую.
Пытаюсь своего советника заставить общаться по русски - сделать так, чтобы настройки советника были понятными.

Пишу
extern int OrderShift = 200; // Отступ для отложки

но в советнике все равно параметр OrderShift, а не "Отступ для отложки"
Что я делаю не так?
 

vladradon

Программист
Что я делаю не так?
В начале сова должна быть строчка
#property strict
там, где все #property стоят. Но имей ввиду, это новый режим компилятора и иногда ругается на разные мелочи о неправильном преобразовании данных и т.п.
 

ansol

Местный знаток
В начале сова должна быть строчка
#property strict
Режим работы компилятора никак не влияет на режим отображения входных данных

PHP:
extern double Lot = 0.01;//Начальный лот
Будет написано Lot в первой колонке и 0.01 во второй
А
PHP:
input double Lot = 0.01;//Начальный лот
будет написано Начальный лот и 0.01 соответственно.
В чем нетрудно убедиться самому.
 
Последнее редактирование модератором:

vladradon

Программист
Этот режим перенесен из 5-го языка! И без него не будет отображаться комментарий вместо имен входных переменных - учи матчасть! И в этом режиме пофиг, input или extern будет стоять - если есть коммент в этой строке - будет коммент выводить, нет коммента - будет имя переменной. Команда input взята тоже из 5-го языка и она автоматом в 4-ке не переводит на комменты, как это сделано в 5-ом языке! Только что проверил!
 
Последнее редактирование модератором:

Elvis Burunduk

Элитный участник
ansol,
vladradon,
Не ругайтесь, мужики, (горячие финские парни :) все мы тут "спИцЕалисты-самоучки" ) оба и правы и одновременно неправы, каждый говорит за свою версию MQL , но vladradon, правее стоит , стрикт в четвёрке выводит каменты , если они есть, но и накладывает более строгую проверку кода, ругается там, где без стрикта прошло бы на ура... :)
 

ansol

Местный знаток
Этот режим перенесен из 5-го языка! И без него не будет отображаться комментарий вместо имен входных переменных - учи матчасть! И в этом режиме пофиг, input или extern будет стоять - если есть коммент в этой строке - будет коммент выводить, нет коммента - будет имя переменной. Команда input взята тоже из 5-го языка и она автоматом в 4-ке не переводит на комменты, как это сделано в 5-ом языке! Только что проверил!

Откуда бы не был перенесен этот режим, на вывод переменных он не влияет, а влияет то, что я написал выше.

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

ansol

Местный знаток
ansol,
vladradon,
Не ругайтесь, мужики, (горячие финские парни :) все мы тут "спИцЕалисты-самоучки" ) оба и правы и одновременно неправы, каждый говорит за свою версию MQL , но vladradon, правее стоит , стрикт в четвёрке выводит каменты , если они есть, но и накладывает более строгую проверку кода, ругается там, где без стрикта прошло бы на ура... :)
Без стрикта прекрасно выводит каменты во входных переменных - проверь сам.
МЕ4 билд 1045 от 3 февраля, если что
 

vladradon

Программист
Без стрикта прекрасно выводит каменты во входных переменных - проверь сам.
МЕ4 билд 1045 от 3 февраля, если что
Тот же билд! И я уже писал, что проверил специально! Этот режим не может работать без стрикта, т.к. он перенесен из 5-ки и не зависит больше ни от чего. Редактор 5.00 билд 1546 от 02.02.2017. И у меня во всех моих терминалах все работает именно так, как я описал.
 
Последнее редактирование модератором:

vladradon

Программист
На счет "глючит" NormalizeDouble..., Вы все верно сделали, т.к. нормализация цены не предназначена для вывода инфы с заданной точность, опять таки, справка об этом сама гласит: docs.mql4.com/ru/convert/normalizedouble, а вот DoubleToStr - самое то.
Я, кстати, не обращал на это внимание в документации - как-то само собой в голову пришло опытным путем. Только я имел ввиду функцию Comment, а в доках говорится о выводе в журнал Print-ом. Но у меня-то, получается, наоборот - не как описано в доках - вывод большего количества знаков после запятой, чем есть после нормализации, а вывод нормализованного значения, которое иногда выводит вообще непонятное количество знаков и далеко не все нулевые: Comment(NormalizeDouble(Profit, 2)); - типа того.:)
 
Последнее редактирование модератором:

vlad_123

Местный знаток
:facepalm:
Блин, аксакалы, че шашками размахались?
Ну курите же мануал :angry:
_https://docs.mql4.com/ru/mql4changes#compiler_difference
Новый компилятор MQL4
...
Для скриптов в режиме show_inputs в окне входных параметров показываются имена extern и input-переменных
Новый компилятор MQL4 с #property strict
...
Для скриптов в режиме show_inputs в окне входных параметров показываются строчные комментарии вместо имен extern- и input-переменных

Правда, говорится про скрипты.
 

mobidik

-----
Режим работы компилятора никак не влияет на режим отображения входных данных

PHP:
extern double Lot = 0.01;//Начальный лот
Будет написано Lot в первой колонке и 0.01 во второй
А
PHP:
input double Lot = 0.01;//Начальный лот
будет написано Начальный лот и 0.01 соответственно.
В чем нетрудно убедиться самому.
Я - проверил, прежде, чем писать, а ты высосал из пальца какой-то strict, который не влияет на обсуждаемый вопрос.
Это под большим вопросом...
Без стрикта прекрасно выводит каменты во входных переменных - проверь сам.
МЕ4 билд 1045 от 3 февраля, если что
Текущая версия МЕ - 5 билд 1526 от 02,02,2017.

Что ж, давай проверим, что и как.
Ниже два скрина: с использованием #property strict и без него, переменные как с input так и extern - результат на скринах.
Что ты там проверял...
 

Вложения

  • TEST_on_strict_1.png
    TEST_on_strict_1.png
    135,7 КБ · Просмотры: 36
  • TEST_on_strict_2.png
    TEST_on_strict_2.png
    143 КБ · Просмотры: 33
Последнее редактирование модератором:
Верх