
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Теоретик детектед.
Практика есть мерило реальности, а не игры теоретиков.
"Некие реализации языка" являются конечным мерилом приемлемости и главным мейнстримом в разработке на протяжении многих лет. В С++ int i=NULL; работает и будет работать без выдачи ошибок до скончания веков ибо никуда не деться от тонны созданного кода.
В MQL5 документации нет никаких указаний использовать NULL неправильно. Но никто не остановит программистов испортить свой код плохими конструкциями.
Не приписывайте нам проблем, которые мы не заявляли и не рекомендовали к использованию. Вы сами придумали проблему и приписали ее нам.
А обосновать?
По поводу скончания веков, - опровергну Вас ещё раз. Вы в курсе, что раньше использовались так называемые trigraph sequences? И что следующая программа на C - валидна (я здесь один trigraph только использовал)?
Попытка компиляции без специальных опций (Express Studio 2010):
Z:\5>cl 1.c
Оптимизирующий 32-разрядный компилятор Microsoft (R) C/C++ версии 16.00.30319.01 для 80x86
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
1.c
1.c(1) : error C2059: синтаксическая ошибка: ?
А теперь со специальной опцией:
Z:\5>cl /Zc:trigraphs 1.c
Оптимизирующий 32-разрядный компилятор Microsoft (R) C/C++ версии 16.00.30319.01 для 80x86
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
1.c
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:1.exe
1.obj
Z:\5>1.exe
Yes
То же самое будет и с NULL, я же Вам ссылки дал на то, в какую сторону развивают Стандарт C++.
А Вы всё - "теоретик детектед". Выше приведён практический пример рудимента. Коим и NULL в будущем станет. И это - практика, а не теория.
Вы не смогли ничего вразумительного ответить по поводу NULL: где он по смыслу используется не как спец-значение для указателя, которое в нём можно лишь хранить, а не использовать, а как "универсальный 0" в C/C++?
Ещё раз, цитата из общения пользователей MQL5, на которую я отвечал изначально:
Разницы никакой. false=NULL=0, это просто привычка:)
Вполне практическая проблема, которую "придумали" пользователи Вашего языка MQL5, не особо искушённые в программировании.
Они придумали, а не я! Я только что это Вам цитатой доказал. Опять теоретик? Или просто не хотите увидеть?
Неважно, что там simpleton написал, главное, - вовремя сказать свою коронную фразу: "С задачей справились успешно", да?
Я уже жду, когда Вы её скажете.
Классный пример - снова сами придумали проблему и снова ее приписали нам.
Нет никаких триграфов в MQL5 - чего с NULL макроса то съехали? Еще раз повторю - мы никого не заставляем его неправильно использовать.
По уровню контроля исполнения MQL5 бесконечно впереди обычных C/C++ и не имеет указателей в чистом виде. Поэтому не надо на MQL5 проецировать родовые проблемы C/C++.
У нас вместо указателей фактически используются контролируемые в рантайме хендлы (целочисленные) и вводить дополнительный nullptr не нужно.
Я отлично понимаю Ваше желание играться в теорию и кусаться - это же куда легче, чем делать большие, практически значимые проекты и выводить их на рынок. Лично я только за последние 10 лет работы в Метаквотс вывел в свет 6 публичных, крупных и успешных софтверных проектов, непосредственно принимая участие в написании кода.
Практика такова, что вне зависимости от языка, подавляющее большинство кода, написанного на любом языке программирования является в чистом виде мусором. Куча народа готова самообманываться и биться за идеалы, ведя разговоры об "теоретически правильном" языке/контроле/конструкциях. Но приходит толпа программистов, которые пишут код левой задней ногой. И ничего нельзя сделать - самообман от возможностей технологий быстро проходит на практике.
В отличие от теоретиков, не проходивших реальную практику значимых разработок (хотя они считают, что как раз проходили), именно практики производят основной объем работ. Причем на достаточно старых, опасных и не модных языках. Этот бизнес держится на рабочих лошадках, которым нужно "реально ехать, а не шашешками светить".
Для обсуждений радостей C++0x есть соответствующие группы, где Вас поймут и поддержат. Только с ними вряд ли можно создать востребованный и конкурентоспособный продукт - заболтают тему.
....
Лично мне начинает надоедать Ваше нытьё. Воздержитесь от постов пожалуста, не мешайте читать другим интересные темы. Либо начните приносить пользу сообществу кодом или просто добрым словом.
С наилучшими.
Уважаемые теоретики-практики, поясните мне,как человеку "не особо искушенному в программировании" в чем "соль"? Да, для меня привычней и удобней использовать NULL.
В чем моя "проблема", если я при инициализации переменных использую NULL, и это не противоречит концепциям языка MQL5.
Классный пример - снова сами придумали проблему и снова ее приписали нам.
Нет никаких триграфов в MQL5 - чего с NULL макроса то съехали? Еще раз повторю - мы никого не заставляем его неправильно использовать.
По уровню контроля исполнения MQL5 бесконечно впереди обычных C/C++ и не имеет указателей в чистом виде. Поэтому не надо на MQL5 проецировать родовые проблемы C/C++.
У нас вместо указателей фактически используются контролируемые в рантайме хендлы (целочисленные) и вводить дополнительный nullptr не нужно.
Я отлично понимаю Ваше желание играться в теорию и кусаться - это же куда легче, чем делать большие, практически значимые проекты и выводить их на рынок. Лично я только за последние 10 лет работы в Метаквотс вывел в свет 6 публичных, крупных и успешных софтверных проектов, непосредственно принимая участие в написании кода.
Практика такова, что вне зависимости от языка, подавляющее большинство кода, написанного на любом языке программирования является в чистом виде мусором. Куча народа готова самообманываться и биться за идеалы, ведя разговоры об "теоретически правильном" языке/контроле/конструкциях. Но приходит толпа программистов, которые пишут код левой задней ногой. И ничего нельзя сделать - самообман от возможностей технологий быстро проходит на практике.
В отличие от теоретиков, не проходивших реальную практику значимых разработок (хотя они считают, что как раз проходили), именно практики производят основной объем работ. Причем на достаточно старых, опасных и не модных языках. Этот бизнес держится на рабочих лошадках, которым нужно "реально ехать, а не шашешками светить".
Для обсуждений радостей C++0x есть соответствующие группы, где Вас поймут и поддержат. Только с ними вряд ли можно создать востребованный и конкурентоспособный продукт - заболтают тему.
Не придумывал я проблему, а привёл аналогию. И ниоткуда не съезжал. По поводу NULL свои мысли изложил ещё в самом начале.
Я не играюсь в теорию, и ещё в давно продемонстрировал, что Ваши программисты, которые наверняка в том числе влияют на принятие решений по MQL5, недостаточно владеют основными вещами в C++. Практически продемонстрировал. А не теоретически.
Поэтому - проектов может быть много, но важно не количество, а качество. Чтобы было качество, нужно, как минимум, как следует знать свой основной инструмент. Инструмент сложный, да. Но знать его все равно надо как следует. До использования.
Только не надо связывать эту мою фразу с NULL, это было замечание по поводу проектов и шашечек. И, чтобы опять не услышать о "съезде с темы", - я по поводу NULL применительно к типу bool своё мнение озвучил.
А вот Вы можете объяснить, зачем в контексте типа bool потребовалось значение NULL, причём, совпадающее с false? Для какой такой цели?
Уважаемые теоретики-практики, поясните мне,как человеку "не особо искушенному в программировании" в чем "соль"? Да, для меня привычней и удобней использовать NULL.
В чем моя "проблема", если я при инициализации переменных использую NULL, и это не противоречит концепциям языка MQL5.
Не нужен NULL, когда речь идёт о типе bool. Там только false и true. Всё просто.
Это - не то, чтобы "проблема" в прямом смысле. Чтобы было понятно, можно так поступить:
И в индикаторах пользоваться только False вместо false, в советниках - FALSE, а в скриптах - fALSE.
Вот применение NULL в качестве false для типа bool примерно такой же смысл имеет.
что то у меня никак не получается выставить позицию с минимальным стоп лоссом
2010.07.24 00:53:49 test (EURUSD,M1) 50
2010.07.24 00:53:49 test (EURUSD,M1) result.ask =0 result.bid =0
2010.07.24 00:53:49 test (EURUSD,M1) request.sl =1.29074 request.tp =1.30124
2010.07.24 00:53:49 test (EURUSD,M1) request.price=1.29124 result.price=0
2010.07.24 00:53:49 test (EURUSD,M1) Ошибка ордер buy - код ошибки: 4756
в журнал пишет вот это
2010.07.24 00:53:49 Scripts Script test (EURUSD,M1) removed
2010.07.24 00:53:49 Trades '104021' : failed instant buy 0.10 EURUSD at 1.29124 sl: 1.29074 tp: 1.30124 [Invalid stops]
2010.07.24 00:53:49 Scripts Script test (EURUSD,M1) loaded successfully
почему инвалид не понимаю. разница 50. все вроде нормально
а вручную ставиться так близко стоп?
вот опытным путем подобрал
2010.07.24 01:19:24 Trades '104021' : failed instant buy 1.00 EURUSD at 1.29104 sl: 1.29036 [No prices]
2010.07.24 01:19:23 Trades '104021' : instant buy 1.00 EURUSD at 1.29104 sl: 1.29036
2010.07.24 01:19:19 Trades '104021' : failed instant buy 1.00 EURUSD at 1.29104 sl: 1.29037 [Invalid stops]
получается что срабатывает при 68, это 50+спред сейчас аск 1.29104 бид 1.29086
SYMBOL_TRADE_STOPS_LEVEL - Минимальный отступ в пунктах от текущей цены закрытия для установки Stop ордеров
правильно ли я понял, что хотя я покупаю по аску (ордер бай) стоп лосс я должен рассчитывать по биду ?