Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 5 из 121
Первая ... 4 5 6 15 ... Последняя ◄╝

Показаны сообщения: с 81 по 100 из 2401

Тема: MQL4 для начинающих

 Перейти в классический вид темы
     
  1. ТОП сообщений
    2018-04-05   07:16
    Лучший ответ #1
    Накопленные выплаты 27419 RUB

    зря Вы так, я вчера, к примеру, взял о перегрузил операторы == и != чтобы было удобнее логику поиска паттернов видеть а на следующей неделе планирую сделать универсальный класс для Ренко - графиков, чтобы любой советник можно было на виртуальном Ренко-графике запустить

    2010-04-26   23:58
    Лучший ответ #2
    Накопленные выплаты 3750 RUB

    Вы должны понять важную вещь. То, что будет написано в MetaEditor'e, - это исходный код. То есть последовательность команд, которую будет выполнять терминал одну за другой сверху вниз. Но терминал не может выполнять исходные коды. Исходный код понятен вам, но не MetaTrader'у. Чтобы исходный код был понятен терминалу, его нужно "перевести" на соответствующий "язык". Чтобы это сделать, нужно нажать на клавишу F5 в MetaEditor'е. После этого будет выполнена компиляция исходного кода в исполняемый файл. Компиляция - это процесс "перевода" исходного кода, написанного вами и понятного вам, в специальный исполняемый файл, который понимает и способен выполнить MetaTrader. Проверьте это сами. Создайте новый скрипт под названием Test1 и сохраните, но не компилируйте. Запустите терминал и, используя Навигатор, зайдите в раздел "Скрипты". Как видно, скрипта с названием Test1 нет: После этого откроется новое окно, с которым вы в дальнейшем будете работать больше всего. В нём отображается исходный текст:


    Теперь скомпилируйте скрипт (клавиша F5):

    Опять загляните в терминал. Скрипт Test1 появился:

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

    2010-04-30   00:35
    Лучший ответ #3
    Накопленные выплаты 3750 RUB

    Итак, Вы узнали много нового. Однако, чтобы детально разобраться в программировании MQL 4 необходимо потратить больше времени, нежели Вы потратили на прочтение данного материла. Поэтому, перечитывайте текст, запоминайте, практикуйтесь и вникайте в суть и тогда Вы сможете на практике применять знания полученные в материалах, посвященных MQL 4. То, что описано в этой статье, - основа всего языка MQL4. Чем лучше Вы освоите этот материал, тем проще Вам будет учиться дальше. Учебник «Программирование на алгоритмическом языке MQL4» Скачать

    2010-04-27   23:45
    Лучший ответ #4
    Накопленные выплаты 3750 RUB

    Не пугайтесь. Это очень просто. Смотрите. Допустим, вы хотите запомнить пять цен. Как можно поступить? Ну, можно вот так: double price1 = 1.2341; double price2 = 1.2321; double price3 = 1.2361; double price4 = 1.2411; double price5 = 1.2301; У нас получается пять переменных, которые имеют один тип данных и описывают один и тот же параметр - цену. Но можно поступить иначе, используя массив. Массив - это всего лишь серия переменных, которые отличаются между собой индексами, но имеют одно общее название. Посмотрите, как нужно объявлять массив из пяти элементов: double price; Общая форма: (тип массива) (название массива) ; В нашем случае: тип массива - double, название - price, количество элементов - 5. Давайте посмотрим, как можно обратиться к элементам массива: double price; // объявляем массив из 5 элементов price = 1.2341; // обращаемся к первому элементу массива и // присваиваем ему цену. Обратите внимание // на то, что индекс первого элемента // начинается с 0. Это важная особенность, // к которой нужно привыкнуть. price = 1.2321; // обращаемся ко второму элементу price = 1.2361; // и так далее price = 1.2411; price = 1.2301; С элементами массива можно проделывать любые операции, как и с обычными переменными. Собственно, элементы массива - и есть обычные переменные: double price; price = 1.2234; price = 1.2421; MessageBox("Middle price is " + (price + price) / 2.0,"middle price"); При объявлении массива можно также присвоить всем элементам начальные значения: double price = {1.2234, 1.2421}; Мы просто перечисляем через запятую начальные значения элементов в фигурных скобках. В таком случае вы можете даже не указывать количество элементов, компилятор автоматически вставит нужное значение: double price[] = {1.2234, 1.2421}; Это всё, безусловно, очень хорошо, но... К сожалению, бесполезно. Нам нужно как-то добраться до реальных данных! Например, текущих цен, времени, количества свободных денег и так далее.

    2010-04-26   23:52
    Лучший ответ #5
    Накопленные выплаты 3750 RUB

    Торговый терминал MetaTrader 4 по достоинству оценили сотни тысяч трейдеров во всем мире. Использование встроенного языка программирования MQL4 выводит трейдеров на качественно новый уровень торговли - автотрейдинг. Теперь трейдер может реализовать свои идеи в виде прикладной программы - самостоятельно написать пользовательский индикатор, скрипт для выполнения разовых операций или создать советник - автоматическую торговую систему (торговый робот). Советник может работать круглосуточно без постороннего вмешательства - отслеживать все изменения цен финансовых инструментов, отправлять сообщения по электронной почте, SMS-сообщения на мобильный телефон, а также выполнять множество других полезных действий. Основным достоинством прикладных программ является возможность совершать торговые операции в соответствии с алгоритмом, заданным трейдером по своему усмотрению. Любые идеи, которые возможно изложить на языке алгоритмов (пересечение двух скользящих средних или цифровая обработка сигналов, три экрана Элдера или фрактальный анализ Петерса, нейронная сеть или геометрические построения), можно заложить в прикладную программу и затем использовать её в практической торговле. Составление прикладных программ для торгового терминала MetaTrader 4 требует знания языка MQL4, освоив который, можно самостоятельно создавать эксперты, скрипты и индикаторы, воплощая в них свои идеи - алгоритмы прибыльной торговли. Для начала давайте разберемся, что Вы можете делать с помощью этого языка: создать скрипты, пользовательские индикаторы, советники и библиотеки. Скрипты - это последовательности команд, программы, которые выполняются только один раз по вашему запросу. Они могут заменять действия, которые вы выполняете каждый день при торговле. Например, открывать ордера. Они также могут выполнять специфические действия - например, исследовать графики и выводить статистическую информацию. Пользовательские индикаторы - это технические индикаторы, написанные в дополнение к встроенным в терминал индикаторам. Они выводят графики или другую визуальную информацию. В отличие от скриптов, пользовательские индикаторы выполняются при каждом изменении цены, то есть на каждом тике. То, что будут выводить индикаторы, зависит только от вас. Это может быть бесполезный график синуса или что-то, что будет помогать вам ориентироваться в ситуации на рынке. Например, если вы точно знаете, при каких условиях на рынке тренд, а при каких флэт, то это наверняка можно написать в виде индикатора. Советники - это механические торговые системы, которые привязаны к любому финансовому инструменту. Подобно пользовательским индикаторам, советники выполняются при каждом новом тике, но в отличие от первых могут информировать вас о состоянии рынка (например, давать конкретные советы о покупке или продаже) или торговать самостоятельно без вашего участия. Терминал поддерживает тестирование стратегий, что позволяет быстро оценить прибыльность вашего советника. Вы описываете свою стратегию на языке MQL4, а терминал хладнокровно выполняет все ваши указания. Библиотеки - это наборы функций для выполнения специфических задач. Например, один из ваших советников может использовать специальные математические функции для принятия решения о том, когда выполнять покупку, а когда - продажу. Для того, чтобы написать обычные скрипты необходимо научиться использовать специальную программу - редактор MetaEditor 4, встроенную в терминал MetaTrader 4. Чтобы её запустить, нажмите на клавишу F4 при открытом клиентском терминале. Чтобы создать новый скрипт, нажмите в редакторе MetaEditor 4 на кнопки меню File->New или используйте сочетание клавиш Ctrl+N на клавиатуре:


    После этого появится окно, в котором вам следует указать, что вы собираетесь создать. Выбираем Script и жмём на кнопку Далее:

    В следующем окне следует ввести название скрипта в поле Name. Укажите свое имя в поле Author и e-mail или адрес вашего веб-узла в поле Link. Далее нажимаем на кнопку Готово:

    После этого откроется новое окно, с которым вы в дальнейшем будете работать больше всего. В нём отображается исходный текст:

    Обратите внимание, что даже пустой, ничего не делающий скрипт включает в себя какой-то код. Теперь всё готово для начала программирования. Но, к сожалению, вы не имеете представления, как это делается. Давайте попробуем исправить ситуацию.

    2010-04-27   23:28
    Лучший ответ #6
    Накопленные выплаты 3750 RUB

    Что такое переменная? Попробуйте сами ответить на этот вопрос, а я вам помогу. Сколько вам лет? Сколько вам будет лет через пять лет? Теперь смотрите: возраст - это и есть переменная. Возраст изменяется с течением времени, как и любая другая переменная. То есть первая особенность переменной заключается в её изменении с течением времени. Другой пример: какой был ваш рост в пять лет? Очевидно, намного меньше, чем сейчас. Рост - ещё один пример переменной. Но есть важное отличие. Обратите внимание на то, что возраст мы измеряли, используя целые числа. Рост намного удобнее измерять, используя десятичные дроби ("числа с плавающей точкой"). Возраст: 20 лет, 30 лет. Рост: 1,8 метра, 1,95 метра. Это очень важная особенность: каждая переменная относится к определённому типу. Давайте посмотрим, какие еще бывают типы переменных. Вы можете описать числами многие параметры, но как представить текст? Для этого используются специальные типы - строковые. Эти типы переменных хранят только строки.Теперь давайте посмотрим, как можно создать и описать переменную на языке MQL4. int age = 25; Здесь мы объявили переменную целого типа (int - integer - целое число). int - это ключевое слово языка MQL4, которое указывает, что мы используем тип целых чисел. Дальше мы написали age (возраст) - это название переменной, то есть слово, по которому мы будем обращаться к значению, хранящемуся в этой переменной. Затем мы присвоили переменной значение 25, используя символ "=". После каждой инструкции ставится точка с запятой, что мы и сделали. Обратите внимание - объявление и инициализация любой переменной сводятся к такой форме: = ; Кстати, присваивать какое-то значение переменной (совершать инициализацию) необязательно, вы могли бы написать и так: int age; Еще один пример: double height = 1.95; Здесь мы объявляем переменную с названием height (рост), которая хранит значения типа double (число с плавающей запятой, десятичная дробь) и которой мы сразу присваиваем значение 1.95, используя оператор "=". Теперь рассмотрим строковую переменную: string name = "Janet"; string - тип переменной, name - название переменной, "Janet" - значение переменной. Обратите внимание, что значения для переменной типа string размещаются между двойными кавычками ("). Существует еще один очень полезный тип переменной - bool. Переменные этого типа могут принимать только два значения: либо true (правда), либо false (ложь). bool trend = false; Теперь вам нужно запомнить несколько важных вещей. Язык MQL4 - это регистрозависимый язык, то есть имеет большое значение, ПРОПИСНЫМИ буквами вы пишете код или строчными. Например, если вы объявите несколько переменных с одинаковыми названиями, но разным регистром, то это будут совершенно разные переменные: double HIGHTPRICE; double hightprice; double HightPrice; double hightPrice; Вышеприведённый код создаст четыре совершенно разных переменных. Также обратите внимание на то, что все ключевые слова языка MQL4 пишутся строчными буквами. Следующий пример: DOUBLE hightPrice1; Double hightPrice2; Вышеприведённый код работать не будет, потому что слово double не будет воспринято как ключевое слово языка MQL4. Ещё один важный момент заключается в том, что названия переменных не могут начинаться с цифр или специальных знаков (*,&, ,%,$). Например: double 1price; double %price; Ещё один элемент языка - комментарии. Если вы напишете "//" перед строкой, то она целиком закомментируется. Это значит, что при компиляции она будет игнорироваться. Например: // this is a comment // это комментарий Теперь вы должны заметить, что код пустого скрипта включает в себя много комментариев, которые несут информативный характер. Комментируйте свой код, иногда это может сэкономить вам много времени.

  2. Линк#81
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Деньги за посты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:  423
    в 216 сообщениях
    18%
    Торговый терминал MetaTrader 4 по достоинству оценили сотни тысяч трейдеров во всем мире. Использование встроенного языка программирования MQL4 выводит трейдеров на качественно новый уровень торговли - автотрейдинг. Теперь трейдер может реализовать свои идеи в виде прикладной программы - самостоятельно написать пользовательский индикатор, скрипт для выполнения разовых операций или создать советник - автоматическую торговую систему (торговый робот). Советник может работать круглосуточно без постороннего вмешательства - отслеживать все изменения цен финансовых инструментов, отправлять сообщения по электронной почте, SMS-сообщения на мобильный телефон, а также выполнять множество других полезных действий.

    Основным достоинством прикладных программ является возможность совершать торговые операции в соответствии с алгоритмом, заданным трейдером по своему усмотрению. Любые идеи, которые возможно изложить на языке алгоритмов (пересечение двух скользящих средних или цифровая обработка сигналов, три экрана Элдера или фрактальный анализ Петерса, нейронная сеть или геометрические построения), можно заложить в прикладную программу и затем использовать её в практической торговле.

    Составление прикладных программ для торгового терминала MetaTrader 4 требует знания языка MQL4, освоив который, можно самостоятельно создавать эксперты, скрипты и индикаторы, воплощая в них свои идеи - алгоритмы прибыльной торговли.

    Для начала давайте разберемся, что Вы можете делать с помощью этого языка: создать скрипты, пользовательские индикаторы, советники и библиотеки.
    • Скрипты - это последовательности команд, программы, которые выполняются только один раз по вашему запросу. Они могут заменять действия, которые вы выполняете каждый день при торговле. Например, открывать ордера. Они также могут выполнять специфические действия - например, исследовать графики и выводить статистическую информацию.
    • Пользовательские индикаторы - это технические индикаторы, написанные в дополнение к встроенным в терминал индикаторам. Они выводят графики или другую визуальную информацию. В отличие от скриптов, пользовательские индикаторы выполняются при каждом изменении цены, то есть на каждом тике. То, что будут выводить индикаторы, зависит только от вас. Это может быть бесполезный график синуса или что-то, что будет помогать вам ориентироваться в ситуации на рынке. Например, если вы точно знаете, при каких условиях на рынке тренд, а при каких флэт, то это наверняка можно написать в виде индикатора.
    • Советники - это механические торговые системы, которые привязаны к любому финансовому инструменту. Подобно пользовательским индикаторам, советники выполняются при каждом новом тике, но в отличие от первых могут информировать вас о состоянии рынка (например, давать конкретные советы о покупке или продаже) или торговать самостоятельно без вашего участия. Терминал поддерживает тестирование стратегий, что позволяет быстро оценить прибыльность вашего советника. Вы описываете свою стратегию на языке MQL4, а терминал хладнокровно выполняет все ваши указания.
    • Библиотеки - это наборы функций для выполнения специфических задач. Например, один из ваших советников может использовать специальные математические функции для принятия решения о том, когда выполнять покупку, а когда - продажу.

    Для того, чтобы написать обычные скрипты необходимо научиться использовать специальную программу - редактор MetaEditor 4, встроенную в терминал MetaTrader 4. Чтобы её запустить, нажмите на клавишу F4 при открытом клиентском терминале. Чтобы создать новый скрипт, нажмите в редакторе MetaEditor 4 на кнопки меню File->New или используйте сочетание клавиш Ctrl+N на клавиатуре:






    После этого появится окно, в котором вам следует указать, что вы собираетесь создать. Выбираем Script и жмём на кнопку Далее:






    В следующем окне следует ввести название скрипта в поле Name. Укажите свое имя в поле Author и e-mail или адрес вашего веб-узла в поле Link. Далее нажимаем на кнопку Готово:






    После этого откроется новое окно, с которым вы в дальнейшем будете работать больше всего. В нём отображается исходный текст:






    Обратите внимание, что даже пустой, ничего не делающий скрипт включает в себя какой-то код. Теперь всё готово для начала программирования. Но, к сожалению, вы не имеете представления, как это делается. Давайте попробуем исправить ситуацию.


  3. post_thanks Получено лайков: 11

    big-fan (27.03.2018), Djvanmukta (05.01.2016), Epiharia (03.10.2013), Forewoman (24.01.2011), ipb (06.12.2010), ogarew2009 (08.04.2012), polkiloqq (23.02.2012), Smont (09.05.2013), Trendsistem (09.06.2012), voinG (13.01.2020), ораз (31.05.2012)

    <a href="https://www.instaforex.org/ru/company_news">Форекс портал</a>
  4. Линк#86
    Кандидат форумных наук
    xaoc стараюсь положительно себя зарекомендовать Аватар для xaoc
    Регистрация:
    05.12.2010
    Пол:
    Мужчина
    Сообщений:
    1,885
    Деньги за посты (Подробнее):
    47602 RUB
    Поставил лайков:
    77
    Получено лайков:  117
    в 110 сообщениях
    6%
    Цитата Сообщение от smck87 Посмотреть сообщение
    Плюс mt5 - это поддержка языка mql5, который в свою очередь поддерживает объектно-ориентированное програмирование. А отсюда и все плюсы этой парадигмы.
    Объясните, а что именно такого хорошего в этом объектно-ориентированном программировании? в mt4 нет такой возможности ?


  5. Линк#87
    Живая Легенда
    no
     
    ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации ppvic наивысший уровень репутации Аватар для ppvic
    Регистрация:
    30.05.2010
    Сообщений:
    31,676
    Деньги за посты (Подробнее):
    276261 RUB
    Поставил(а) лайков:
    8,500
    Получено лайков:  21,456
    в 11,818 сообщениях
    68%
    Цитата Сообщение от xaoc Посмотреть сообщение
    Объясните, а что именно такого хорошего в этом объектно-ориентированном программировании? в mt4 нет такой возможности ?
    Приблизительно то же хорошее, как в языке С++ в сравнении с АНСИ С. Если непонятно - нет смысла дальше объяснять. Кому-то ООП нравится, кто-то плюется. Без него вполне можно обойтись - и в MQL4 его нет.


  6. Линк#88
    Свой человек
    Посетила Муза
     
    Khomtchenko стараюсь положительно себя зарекомендовать Аватар для Khomtchenko
    Регистрация:
    24.12.2010
    Пол:
    Мужчина
    Сообщений:
    502
    Деньги за посты (Подробнее):
    4300 RUB
    Поставил лайков:
    48
    Получено лайков:  53
    в 48 сообщениях
    11%
    Объектно-ориентированное программирование позволяет работать с объектами, а не с абстрактными понятиями. В реальной жизни мы имеем дело с объектами, которые имеют свойства и с ними можно сделать ряд операций. Для программиста ООП понятнее, а для обычного юзера и то и другое - это МАГИЯ!


  7. post_thanks Получено лайков: 1

    Taskam (03.01.2011)

  8. Линк#89
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    Цитата Сообщение от smck87 Посмотреть сообщение
    Если вы собрались начать изучение сразу с написания советника, то боюсь ничего не выйдет, это слишком сложная штука для новичка. Начать нужно было бы с скриптов и индикаторов. Если кому интересно рассмотреть пошаговое создание индюка, то могу помочь в этом.
    Здравствуйте. Мне интересно!! Именно пошаговое)) С более менее понятными обьяснениями к коду Хотелось бы узнать о ваших требованиях к обучаемым))

    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel

  9. Линк#90
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Цитата Сообщение от Taskam Посмотреть сообщение
    Здравствуйте. Мне интересно!! Именно пошаговое)) С более менее понятными обьяснениями к коду Хотелось бы узнать о ваших требованиях к обучаемым))
    Отлично. Требование простое. Придумайте что должен показывать ваш индикатор. Тоесть если это простая линия какая-то будет в отдельном окне, то придумайте по какой формуле она будет расчитываться. Если у вас не идей, то я сам что-нибудь придумаю.


  10. post_thanks Получено лайков: 2

    Epiharia (03.10.2013), Taskam (03.01.2011)

  11. Линк#91
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    Спасибо большое!!...Если вас не затруднит, давайте на ваше усмотрение...Не посчитайте за ленивость с моей стороны..просто мне кажется, вам виднее с чего лучше начинать! Я думаю, индикатор для начала, лучше на самом графике, с каким-нибудь одним или двумя обьектами. Честно говоря я даже растерялся)))..Вот так сразу))

    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel

  12. post_thanks Получено лайков: 1

    Epiharia (03.10.2013)

  13. Линк#92
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Ок тогда для максимальной простоты будем рисовать среднее значение цены на графике, тоесть (макс. цена + мин. цена)/2. Потом придумаем что-нибудь по-сложнее. Открывайте редактор, нажимайте Файл -> Новый и выбирайте создание индикатора. Название на ваше усмотрение. Параметры пока добавлять не нужно. В следующем шаге добавляем 1 индекс буффер и заканчиваем работу с мастером создания индикатора. Появится сгенеренный код.

    Как все сделаете, отпишитесь и продолжим.


  14. post_thanks Получено лайков: 2

    Epiharia (03.10.2013), rvv (07.04.2018)

  15. Линк#93
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    Готово!!))...И ко мне можно на ты!! ))...Еще...уточнение - в коде вот это - "int counted_bars=IndicatorCounted();" - должно быть?..Или я что то не так нажал?...Как я понимаю, в скрипте вообще ничего нет, а тут эта строчка..

    Всё! Понял...нажал F1..понял, для чего эта строка))

    Последний раз редактировалось Taskam; 03.01.2011 в 20:55.
    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel

  16. Линк#94
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Цитата Сообщение от Taskam Посмотреть сообщение
    Готово!!))...И ко мне можно на ты!! ))...Еще...уточнение - в коде вот это - "int counted_bars=IndicatorCounted();" - должно быть?..Или я что то не так нажал?...Как я понимаю, в скрипте вообще ничего нет, а тут эта строчка..
    Все правильно, у меня сгенерило такой код:
    //+------------------------------------------------------------------+
    //| test1.mq4 |
    //| Copyright © 2011, MetaQuotes Software Corp. |
    //| http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2011, MetaQuotes Software Corp."
    #property link "http://www.metaquotes.net"

    #property indicator_chart_window
    #property indicator_buffers 1
    #property indicator_color1 C'None'
    //---- buffers
    double ExtMapBuffer1[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //---- indicators
    SetIndexStyle(0,DRAW_LINE);
    SetIndexBuffer(0,ExtMapBuffer1);
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int counted_bars=IndicatorCounted();
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    У тебя должен быть очень похожий код. Сделаем так: я объясняю какой-то кусок кода, если возникают вопросы, я на них отвечаю и если все понятно перехожу к следующему куску и так далее. Итак, что мы получили? Начнем с простого. Большую часть кода занимают комментарии, вот например в самом начале:
    //+------------------------------------------------------------------+
    //| test1.mq4 |
    //| Copyright © 2011, MetaQuotes Software Corp. |
    //| http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    Комментарии не являются програмным кодом, тоесть это просто заметки для удобства. Комментарий начинается с // и вся строка после становиться комментарием. Как видишь большая часть кода состоит из комментариев.


  17. Линк#95
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    Всё ясно...про коментарии за // ...А остальные строки, -
    "#property indicator_chart_window
    #property indicator_buffers 1
    #property indicator_color1 C'None'"

    я так понимаю были уже прописаны потом?...И вот это "#property " - эта часть кода - что она означает, или за что отвечает?

    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel

  18. post_thanks Получено лайков: 1

    Epiharia (03.10.2013)

  19. Линк#96
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Цитата Сообщение от Taskam Посмотреть сообщение
    Всё ясно...про коментарии за // ...А остальные строки, -
    "#property indicator_chart_window
    #property indicator_buffers 1
    #property indicator_color1 C'None'"

    я так понимаю были уже прописаны потом?...И вот это "#property " - эта часть кода - что она означает, или за что отвечает?
    Так с комментариями разобрались. Идем дальше.

    Все что начинается на # - это директивы препроцессора. По сути это специальные команды (инструкции), которые что-то настраивают в прорамме. В нашем случае:
    #property copyright "Copyright © 2011, MetaQuotes Software Corp." // указываем, кто автор
    #property link "http://www.metaquotes.net" // указываем как связаться

    #property indicator_chart_window // указываем, что идикатор будет рисоваться в окне, где рисуется график валютной пары
    #property indicator_buffers 1 // сколько линий будет рисовать наш индикатор
    #property indicator_color1 C'None' // какого цвета будет первая линия
    Задаем вопросы, если есть желающие, то присоединяйтесь.


  20. post_thanks Получено лайков: 3

    Epiharia (03.10.2013), rvv (07.04.2018), Taskam (03.01.2011)

  21. Линк#97
    Свой человек
    В раздумьях
     
    on8line приемлемый уровень репутации Аватар для on8line
    Регистрация:
    22.01.2010
    Пол:
    Мужчина
    Сообщений:
    321
    Деньги за посты (Подробнее):
    2574 RUB
    Поставил лайков:
    39
    Получено лайков:  98
    в 62 сообщениях
    31%
    Может не в тему пишу, но хотелось бы узнать, кто с чего начинал изучение языка mql. Какие книги можете посоветовать новичку? Может у кого-то есть обучающие видео-уроки по mql?


  22. post_thanks Получено лайков: 1

    Epiharia (03.10.2013)

  23. Линк#98
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Цитата Сообщение от on8line Посмотреть сообщение
    Может не в тему пишу, но хотелось бы узнать, кто с чего начинал изучение языка mql. Какие книги можете посоветовать новичку? Может у кого-то есть обучающие видео-уроки по mql?
    Я начинал с языка С++. Качаете любую книгу для чайников и изучаете. mql4 очень похож на обычны Си. А mql5 на С++. Изучив Си потом легко перейдете на mql.


  24. post_thanks Получено лайков: 2

    Epiharia (03.10.2013), on8line (04.01.2011)

  25. Линк#99
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    Лично у меня пока вопросов нет))..Всё предельно понятно!!...on8line присоединяйтесь!!....По книгам - на этом форуме есть очень много информации!!..Но, я думаю, вот такие уроки - это лучшее, что может быть при обучении))

    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel

  26. Линк#100
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Смотрим дальше. В коде нашего индюка сейчас есть 3 функции. Это: init(), start(), deinit().
    Что такое функция? Это набор комманд, которые выполняются, когда вы вызываете функцию. Чтобы вызвать функцию вы просто прописываете ее название. Например: init();
    По сути у нас описано 3 функции. Тоесть в коде они не вызываются, но описываются. Эти 3 функции обязательны для любого индикатора. Вы не можете изменить их названия, иначе ничего работать не будет. Функции объявляются и описываются примерно так:
    возвращаемый тип название функции()
    {
    команды;
    }


  27. post_thanks Получено лайков: 1

    Epiharia (03.10.2013)

  28. Линк#101
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    В принципе понятно только вот "Чтобы вызвать функцию вы просто прописываете ее название. Например: init(); и возвращаемый тип вот тут немного не понятно))...Я так понимаю - написали название функции - т.е инициализировали ее (правильно?) - а возвращаемый тип - это как?

    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel

  29. post_thanks Получено лайков: 1

    Epiharia (03.10.2013)

  30. Линк#102
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Цитата Сообщение от Taskam Посмотреть сообщение
    В принципе понятно только вот "Чтобы вызвать функцию вы просто прописываете ее название. Например: init(); и возвращаемый тип вот тут немного не понятно))...Я так понимаю - написали название функции - т.е инициализировали ее (правильно?) - а возвращаемый тип - это как?
    Смотрите когда мы просто пишем название функции, то вызываем ее (исполняем). У нас же в коде идет объявление и описание функции. Начнем разбирать функцию init():
    MQL код:

    int init() // сначала идет int - тип возвращаемого значения. В нашем случае это int от
    // слова integer - целое. Тоесть функция после вызова вернет нам какое-то целое число.
    // пока не сильно заморачивайтесь с этим, позже мы разберем как пользоваться функциями подробнее
    { // этим символом мы отмечаем начало тела функции. Тоесть дальше у нас пойдут комманды, которые будут выполняться при вызове функции
    //---- indicators
    SetIndexStyle(0,DRAW_LINE); // вызываем встроенную в язык mql функцию, которая принимает 2 параметра.
    // их мы разделяем запятой. Эта функция указывает каким стилем рисовать линию. У нас в индюке всего 1
    // линия. Первый параметр 0 - указывает, что мы задаем стиль для 1-ой линии. В програмировании всегда начинают
    // считать с нуля. Такая особенность. Второй параметр - как рисовать линию. В нашем случае сплошной линией.


    Последний раз редактировалось Gold; 21.10.2014 в 22:52.

  31. post_thanks Получено лайков: 2

    rvv (07.04.2018), Taskam (03.01.2011)

  32. Линк#103
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    Всё ясно!!...Вопросов по вышеизложенному не имею!! (Единственное, но опять же не срочное - параметры функции - это я так понимаю нужно смотреть по справочнику - в смысле сколько их, и какими значениями их записывать...правильно?!)

    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel

  33. Линк#104
    Кандидат форумных наук
    smck87 стараюсь положительно себя зарекомендовать Аватар для smck87
    Регистрация:
    06.12.2010
    Сообщений:
    1,006
    Деньги за посты (Подробнее):
    11081 RUB
    Поставил(а) лайков:
    84
    Получено лайков:  96
    в 77 сообщениях
    10%
    Цитата Сообщение от Taskam Посмотреть сообщение
    Всё ясно!!...Вопросов по вышеизложенному не имею!! (Единственное, но опять же не срочное - параметры функции - это я так понимаю нужно смотреть по справочнику - в смысле сколько их, и какими значениями их записывать...правильно?!)
    Да. Наводишь мышкой на название функции, кликаешь, а потом нажимаешь F1 и откроется справка по этой функции, дальше:
    MQL код:

    SetIndexBuffer(0,ExtMapBuffer1); // еще одна функция, которая указывает, что данные по нашей линии
    // будут храниться в глобальной переменной ExtMapBuffer1. Она у нас объявлена в самом верху после директив.
    // С переменными будем разбираться в функции start()
    //----
    return(0); // эта команда означает, что функция вернет 0. В самом начале у нас ведь прописано, что функция должна
    // вернуть целое число. В нашем случае это 0.
    } // конец функции

    Еще нужно добавить, что эта функция вызывается терминалом meta trader 1 раз самой первой. init тоесть инициализация. В этой функции обычно производят начальную подготовку индикатора.

    Последний раз редактировалось Gold; 21.10.2014 в 22:52.

  34. post_thanks Получено лайков: 2

    Epiharia (06.10.2013), Johngol (15.04.2012)

    Daria Kasatkina
  35. Линк#105
    Свой человек
    Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Taskam хорошая репутация Аватар для Taskam
    Регистрация:
    18.10.2010
    Пол:
    Мужчина
    Сообщений:
    845
    Деньги за посты (Подробнее):
    5102 RUB
    Поставил лайков:
    1,052
    Получено лайков:  456
    в 328 сообщениях
    54%
    Тоже всё понятно!! Надо только посидеть и подержать все это перед глазами (взаимосвязывая изложенное) - в принципе, да - вроде бы ничего сложного))...вроде бы))..Главное запомнить!! И вот про return(0); хотел спросить..правильно ли я понимаю вобще происходящий процесс...

    1.Init - это запускает саму программу в МТ4
    2.start - это запускает программу в запущенной Init основной программе.. та выполняет какие то операции, результат которых потом передается в виде какого то символа в одну из этих двух программ (Основную или в ту,которая в основной)
    3. return(0); - это прекращает работу внутренней программы, активизированной startом....Кстати, а если вернет не ноль - а единицу?
    4.deinit - прекращает работу программы запущенной Init ..

    Правильно?...Извиняюсь, ..шо похож на зануду...просто если я правильно понимаю, то тогда мне будет легче дальше))

    ...Кривое не может сделаться прямым, и чего нет, того нельзя считать...

    Ixitor's Channel


Страница 5 из 121
Первая ... 4 5 6 15 ... Последняя ◄╝

Похожие темы

  1. Общие рекомендации для начинающих
    от Gold в разделе Трейдерские университеты
    Replies: 5774
    Последнее сообщение: 28.10.2019, 21:14
  2. Основы скальпинга на М1 для начинающих.
    от totsam в разделе Скальпинг и пипсовка
    Replies: 241
    Последнее сообщение: 18.06.2014, 18:17
  3. Топ-60 ошибок начинающих предпринимателей
    от Volangott в разделе Свободное общение
    Replies: 0
    Последнее сообщение: 30.01.2014, 18:42
  4. Форекс для начинающих
    от Sova в разделе Доска объявлений
    Replies: 2
    Последнее сообщение: 07.09.2011, 19:19
  5. Первые Шаги Для Начинающих
    от akella в разделе Доска объявлений
    Replies: 4
    Последнее сообщение: 05.10.2010, 23:38

Метки этой темы