Programmer 33 Share Posted August 1, 2008 Здесь приветствуются общие вопросы по синтаксису и структуре языка программрования MQL4. Quote Link to post Share on other sites
taurus 23 Share Posted August 2, 2008 ... 2- создайте batch-файл и назовите его compile.bat (или любым другим именем)... Где и как создать этот файл? Спасибо. Quote "Чем больше я узнаю, тем меньше я знаю" Link to post Share on other sites
Programmer 33 Author Share Posted August 2, 2008 Создаёте обычный текстовый файл *.txt и меняете его расширение на *.bat . Редактировать текстовым редактором. Quote Link to post Share on other sites
carter 0 Share Posted August 3, 2008 У меня такой вопросик, я учился по учебнику Сергея Ковалева, и весь его (скажем так) прошёл. Но как продолжить себя "совершенствовать", может есть какие-то книги еще? Чтобы было поподробнее. Или что-то в этом роде??? Quote Деньги не пахнут.....если их нет Link to post Share on other sites
allogin 2 Share Posted August 3, 2008 Здесь приветствуются общие вопросы по синтаксису и структуре языка программрования MQL4. Тогда один из общих вопросов: Раньше, когда была одна валюта депозита - $, для расчёта возможного колл-ва открытых позиций брался AccountBalance(), делился на Bid, и с учётом плеча и размера лота заложенного в эксперте, находилось искомое. Теперь с возможностью открытия депозитов в евре и рублях, для этих депозитов схема не сработает. Подскажете, как справиться с этой напастью? Или AccountBalance() выдаёт размер депозита открытого в любой валюте в пересчёте на $? Спасибо. Quote сакрамат Link to post Share on other sites
Programmer 33 Author Share Posted August 4, 2008 To carter: Учебник Сергея Ковалёва - очень хорошое пособие. Если Вы его прошли и полностью поняли, то Вам осталось совершенствоваться на практике. С точки зрения именно приобретения новых знаний - попробуйте изучить visual C++ (после MQL4 это не составит особго труда). Затем - программирование под windows на C++ с помощью MFC. Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 4, 2008 To allogin: AccountBalance() выдаёт размер депозита в валюте депозита. Используйте функцию AccountCurrency() и тек. курс для пересчёта. Quote Link to post Share on other sites
djday 0 Share Posted August 4, 2008 Спасибо Programer за курс. Далёк от программирования, но приходится изучать. Жду когда дойдём до изучения простой скользящей средней и построение прямой с одной координатой и углом. Надеюсь, когда-нибудь эти темы будут освещены в курсе. Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 4, 2008 To djday: Рад, что он Вам помогает. Эти темы будут освещены обязательно, но не скоро. Если Вам нужно что-то конкретное напишите в ветке пожелания, я Вам выложу код. Quote Link to post Share on other sites
taurus 23 Share Posted August 4, 2008 Такой вопросик... из книги С. Ковалева: .................................... Побитовые операции Побитовые операции выполняются только с целыми числами. К побитовым операциям относятся следующие: Дополнение значения переменной до единицы. Значение выражения содержит 1 во всех разрядах, в которых значения переменной содержат 0, и 0 во всех разрядах, в которых значения переменной содержат 1. b = ~n; ....................................... b = ~n; вероятно b = ~n - выражение, b -переменная, ~n - значение переменной? Не могу въехать, почему так, как выделено курсивом... Если можно, поясните. Спасибо. Quote "Чем больше я узнаю, тем меньше я знаю" Link to post Share on other sites
Programmer 33 Author Share Posted August 4, 2008 To taurus: Есть переменная n. Пусть, для определённости, её значение в двоичной форме имеет вид: 00001010001. Оператор b=~n; означает: применить к переменной n операцию ~ и присвоить полученное значение переменной b. Операция ~ меняет в двоичной записи переменной все 1 на 0, а все 0 на 1. Таким образом, в значение переменной b в двоичной форме будет иметь вид: 11110101110. Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 4, 2008 To taurus: Я так понимаю, Вы изучаете побитовые операции чисто для расширения кругозора? Потому что на практике в MQL4 они никогда не используются. Даже при программировании на C/C++, по моему опыту, они используются только для реализации очень специфических задач. Quote Link to post Share on other sites
taurus 23 Share Posted August 4, 2008 Спасибо, вы очень прозрачно объяснили... теперь все стало понятно... я уже заметил, что в MQL4 эти операции не используются, но когда не разобрался, то сидит как гвоздик и мучает... теперь стало намного легче...:smile: Quote "Чем больше я узнаю, тем меньше я знаю" Link to post Share on other sites
Изя Кацман 218 Share Posted August 5, 2008 Где-то в нете прочитал, что разрабатывается (уже вроде даже на подходе) mt5. Там будет дебугер и язык приобретет сходство с С++. По крайней мере простенькие классы будут присутствовать. Так ли это? Quote Link to post Share on other sites
taurus 23 Share Posted August 5, 2008 Где-то в нете прочитал, что разрабатывается (уже вроде даже на подходе) mt5. Там будет дебугер и язык приобретет сходство с С++. По крайней мере простенькие классы будут присутствовать. Так ли это? У Метаквосов на сайте уже давно есть инфа... Quote "Чем больше я узнаю, тем меньше я знаю" Link to post Share on other sites
Programmer 33 Author Share Posted August 5, 2008 http://forum.mql4.com/ru/11729 Нас ждёт блестящее будущее! Carter, однозначно начинайте изучать C++ ; ) Quote Link to post Share on other sites
taurus 23 Share Posted August 5, 2008 Урок 3 - Типы данных в MQL4 Ключевое слово char используется для создания переменной типа Character. Например: Код: int chrA = 'A'; int chrB = '$'; а можно объявить так? char = 'A'; и почему ключевое слово char, а в коде chr ??? Спасибо. Quote "Чем больше я узнаю, тем меньше я знаю" Link to post Share on other sites
Programmer 33 Author Share Posted August 5, 2008 To taurus: Спасибо за замечание. Я просто перепутал с C. В MQL4 нет ключевого слова char, вместо этого все символьные переменные хранятся в кодовом виде (ASCII) в переменных типа int. В коде стоит "chrA" - для упрощения понимания при чтении. Просто чтобы визуально запомнить, что хоть эта переменная и имеет тип integer, в ней хранится символ. Quote Link to post Share on other sites
EfDim 0 Share Posted August 6, 2008 Господа! Подскажите, какая функция в MQL4 сообщает от том что сработал стоп-лосс или тейкпрофит. Quote Link to post Share on other sites
~~SOM~~ 1 Share Posted August 6, 2008 Господа! Подскажите, какая функция в MQL4 сообщает от том что сработал стоп-лосс или тейкпрофит. Значение переменной Ask или Bid в зависимости от направления открытой позиции . Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 6, 2008 To EfDim: Именно так. А точнее: Через OrderSelect() в режиме MODE_HISTORY находите свой ордер, а потом сравниваете OrderClosePrice() с OrderStopLoss() и OrderTakeProfit(). Quote Link to post Share on other sites
Dedushka 1,700 Share Posted August 6, 2008 To EfDim: Именно так. А точнее: Через OrderSelect() в режиме MODE_HISTORY находите свой ордер, а потом сравниваете OrderClosePrice() с OrderStopLoss() и OrderTakeProfit(). А если там в истории тысячи ордеров - прокручивать все на каждом тике? Как ограничить глубину просмотра истории в советнике? Quote В бой идут одни старики. (с) Link to post Share on other sites
Roger 18 Share Posted August 7, 2008 А если там в истории тысячи ордеров - прокручивать все на каждом тике? Как ограничить глубину просмотра истории в советнике? Не смущай преподавателя Ты ведь прекрасно знаешь, каждый новый закрытый ордер становится в конец истории. Просматривай только последние 5,10,15, ну в общем сколько тебе надо. Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 7, 2008 To Dedushka: Верно Roger говорит. Да и потом, если Вы хотите узнать информацию о закрытии какого-то определённого ордера, то у Вас, вероятно, есть его ticket. А по ticket'у ордер находится мгновенно (причём не забывайте, что в режиме SelectByTicket функция OrderSelect() игнорирует параметр pool). Quote Link to post Share on other sites
Dedushka 1,700 Share Posted August 7, 2008 (edited) Не смущай преподавателяТы ведь прекрасно знаешь, каждый новый закрытый ордер становится в конец истории. Просматривай только последние 5,10,15, ну в общем сколько тебе надо. Уважаемый, ты хочешь сказать, что OrderSelect(0, SELECT_BY_POS, MODE_HISTORY) сразу даст мне последний закрытый ордер? Или наоборот, первый? Как они вообще отсортированы? По возрастанию или убыванию номеров тикетов или времени срабатывания. А если я отсортирую историю в терминале по прибыли, например, то какой ордер я получу теперь послав запрос OrderSelect(0, SELECT_BY_POS, MODE_HISTORY). Учитывая, что я хочу увидеть последний закрытый ордер, выставленный конкретным советником, а не вообще. Как видишь, я не шучу, тут много ньюансов, внутренняя механика мне неизвестна, потому и спрашиваю Программера. ЗЫ. Мне кое-что подсказали в другой ветке, попробую... А все, что я выше написал, скорее всего мне же и надо на досуге проверить - эксперимент покажет, что там с сортировкой. Edited August 7, 2008 by Dedushka Quote В бой идут одни старики. (с) Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.