MQL5 & ZUP

Тема в разделе "Зиг-Заг. Системы с использованием ZigZag.", создана пользователем nen, 25 авг 2009.

  1. nen

    nen Профи форума

    Внимательно читая Справку по языку MQL5, проясняется, что многое, что ранее делалось в MQL4 автоматически, в MQL5 необходимо будет делать пограммисту. И алгоритм может быть не всегда эффективным. К тому же невозможностью использования в индикаторах графических построений (это можно делать только в экспертах) создает огромное количество вопросов. Многие вопросы были заданы разработчикам. На часть вопросов были получены зачастую невразумительные ответы, на часть вопросов ответов получено не было.

    Разработки, которые делались в течение нескольких лет придется переписывать. Все разработки. Кто-то это сможет сделать, кто-то уже нет. Кто-то просто не захочет.

    Самый главный вопрос. А имеет ли смысл что-то делать вообще? Как писал AVP, в следующей версии опять появятся изменения, и опять все переписывать? И это действительно так. Видя такую перспективу, руки опускаются.

    Разработки на MQL4 - однозначно в корзину. Жить им очень мало осталось. Разработки на MQL5 делать не хочется.

    И чужой труд не ценят, да и свой тоже.

    ...........................................................

    ZUP можно в MQL5 переписать. Но не уверен, что будет также эффективно все работать, как в MQL4.
    К сожалению, разработчики в компании метаквотес совершенно не понимают графических разработок.
    Заточены только на автоматическом трейдинге.

    А графические разработки предполагают пока в большей степени не автоматический трейдинг, а "ручной".
    -----------------------------------------------

    Есть два вопроса, которые тормозят все.
    1) Невозможность применения графических построений в индикаторах. И это главный вопрос. Если появится такая возможность - применение графических построений в индикаторах, то можно что-то начинать делать.
    2) В структуре исторических данных кроме уже имеющихся данных необходимо добавить два времени:
    Время достижения максимума на выбранном баре и время достижения минимума.
    Этот вопрос сейчас не критически важный. Но в будущем, мне так кажется, придется либо тиковый поток организовывать, либо включать два этих времени в поток данных. А соответственно, и опять все переписывать заново.

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




    PS. Мультизигзаги не получится сделать как индикатор. Зигзаг можно.
    Вот и выходит. Захотел работать с простым зигзагом - только разметить график зигзагом - выбираешь индикатор зигзаг.
    Захотел работать с мультизигзагом или с чем-то, как в ZUP, выбираешь эксперт. Путаница.
     
  2. Ksyunya

    Ksyunya Новичок

    Зву4ит как приговор.
    А кто мне скажит:Сколько времени осталось ,когда версия МQL4 будет уже не эффективна?1-2 года?Или сколько?Может кто слышал.
    И вот допустим,в4ера версия МQL5 вышла,и 4то в етот же день прекращает действовать старая программа?Она блокируется?И 4то все брокеры перестают использовать старую версию?Извините за каламбур,но для меня ето важно.
     
  3. nen

    nen Профи форума

    <b>Ksyunya</b>, не волнуйтесь. МТ4 еще долго будет. Многие ДЦ долгое время параллельно и МТ3 и МТ4 использовали.

    В МТ5 очень многое поменялось. Но есть моменты, которые в будущем могут потребовать исправления. В частности, я считаю, что у разработчиков терминала невнятная позиция по поводу экспертов и индикаторов. Почему-то они решили, что графических построений в индикаторах быть не должно. Поэтому сейчас ввели возможность графических построений только для экспертов. Но большинство таких "экспертов" торговать не будет. Они будут использоваться как индикаторы. Это с одной стороны.

    С другой стороны, если вы поставите на график торгующий эксперт (1) и эксперт (2), который на самом деле является индикатором, Вы должны будете включить опцию Использовать эксперт. Допустим, Вам не надо сейчас, чтобы эксперт (1) торговал, но Вы вдруг забыли, что он на графике. И может так получиться, что он начнет торговать. А Вам нужно видеть, что рисует эксперт (2). Последствия - можете потерять депозит.

    С третьей стороны, допустим, есть индикатор RSI. Он запускается как индикатор. Но если Вы вздумаете выводить этот же индикатор так, чтобы на нем, как в ZUP_RSI, делались графические построения, то Вам нужно будет запустить уже эксперт.

    Создается неимоверная путаница. И ничего. Разработчиков такое положение вещей не смущает. Им море по колено.

    И что самое интересное, индикаторы, создающие графические построения, будь они сейчас разрешены, будут работать быстрее, чем в МТ4. И создание графических построений только экспертами - надуманная ситуация.

    Более того, может так получиться, что некоторые "рисующие" эксперты будут работать медленно. Там непростая ситуация по работе с памятью.

    Вот такая двойственность. Но такая двойственность характерна для разработчиков Метатрейдера. И ранее многие вищи и сейчас они трактовали по своему, вопреки общепринятому. Для них часто нет стандартов. Они, на мой взгляд, сначала делают. А потом им уже пользователи подсказывают, что они перевернули все наоборот.

    В частности (но это не все могут понять), есть стандарты по приоритету логических операций.
    Стандарт такой: сначала выполняется логическое И, а потом логическое ИЛИ. До МТ4 включительно у них было наоборот: сначала выполнялось логическое ИЛИ, а потом выполняется логическое И.

    И таких примеров можно привести еще много.

    Правильно будет: сначала подумать, а потом сделать. При описанном выше подходе получается, что сначала делают, а потом думают. Наверное, они считают, что являются первопроходцами и делают все как им вздумается. Но со временем получается, что они не первопроходцы... :)

    --------------------

    А нам приходится подстраиваться под имеющуюся действительность.
    Других альтернатив или нет, или скоро не будет.

    --------------------

    Несмотря на такой критический настрой, я считаю, что в МТ5 многое реализовано на качественно более высоком уровне. И в МТ5 реализовать можно будет практически все. Про Тетрис известно - они сделали Тетрис средствами языка MQL5 прямо в терминале, продемонстрировав тем самым возможности Объектно ориентированного программирования. На мой взгляд, лучше бы они не Тетрис запрограммировали, а что-то полезное для трейдеров.
    Например, сделали бы программу, строящую модели тактики Адверза... :)

    В МТ5 действительно можно просто колдовать над кодом и делать чудеса...

    Но невнятная позиция по некоторым достаточно принципиальным моментам заставляет думать, что в будущем опять придется все переделывать...
     
  4. Putnik_odessa

    Putnik_odessa Профи форума

    Не совсем так, новая версия, а ведь это не только клиетский терминал..., дилинговым центрам как подарок не достанется, даже если они уже были клиентами MetaQuotes - все равно пусть со скидкой но придется ПОКУПАТЬ. Не всем это и надо, в новой версии много нового для "продвинутых ДЦ", для рядовых хватило бы и ЧЕТВЕРТОЙ. Но и они вынуждены будут покупать, хотя бы из тех соображений, что бы не казаться отстающими (несостоятельными). Но естественно в первый же день к прилавку не побегут.
    Некоторые ДЦ на этом еще и сыграют, так при переходе с MT3 на MT4 просиходило тоже самое, написанное трейдерами под тройку в четверку не ложилось, нужно было или перписывать или...
    И вот тут некоторые ДЦ протянули с MT3 до предела, тем самым периманивая к себе клиентов которые не хотели уходить с этой платформы. И люди уходили из других ДЦ где поддержка тройки прекратилась. Конечно бесконечно долго так продолжаться не будет, но время есть, ведь даже beta версия еще не пошла в открытое тестирование, не говоря об официальном релизе...
     
  5. Ksyunya

    Ksyunya Новичок

    <b>nen</b> Спасибки!Как гора с пле4ь.Можно на ты :ab:

    <b>Putnik</b> Спасибо вам!
     
  6. Putnik_odessa

    Putnik_odessa Профи форума

    В продолжение темы, ответ разработчиков:
     
  7. nen

    nen Профи форума

    Это отсюда: <span class='inv'><![CDATA[<noindex>]]></span><a href="http://www.onix-trade.net/forum/go.php?http://forum.mql4.com/ru/25820/unread#unread" rel="nofollow" target="_blank">http://forum.mql4.com/ru/25820/unread#unread</a><span class='inv'><![CDATA[</noindex>]]></span>

    страница 13
     
  8. wellx

    wellx Активный пользователь

    Нен, а если сразу договориться о формате зигзагов (в конце концов - это просто массив чередующихся максимумов и минимумов) , а уже ZUP работает с массивом.
    Т.е. -
    1 шаг - приходит тик
    2. - просчитывается некий ЗЗ
    3. - после уведомления окончания просчета тика - включается ZUP


    Т.е. сечас тебе и карты в руки для первого шага (ты лучше остальных представляешь подводные камни ) - начни прописывать ТЗ для зигзагов.
    Т.е все кто имеют свои ЗЗ смогут сразу писать согласованно.
     
  9. nen

    nen Профи форума

    Тяжело даются объекты в ООП.
    Медленно въезжаю в тему.
    Надеюсь поедем быстрее.
    -------------------------------
    Из-за отсутствия ООП ранее приходилось некоторые разработки останавливать.
    Зато сейчас открываются хорошие перспективы.

    Дело не в количестве зигзагов. Есть некоторые "стандартные" алгоритмы зигзагов.
    1) из Метатрейдера - с тремя параметрами
    2) зигзаг процентный и по величине канала - зигзаг Алекса
    3) зигзаг как в Ensign
    4) свинги Ганна
    5) зигзаг tauber-a
    6) фрактальный

    Это уже как-бы канонические зигзаги.

    Есть еще другие построения. Тоже зигзаги. Но очень сложный алгоритм в них заложен. И даже часто не до конца формализованный.
    Есть алгоритмы, которые не будут выложены в открытый доступ.

    То есть существует некоторый конечный набор алгоритмов зигзагов, которые необходимо реализовать.

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

    На самом деле необходимо найти свою стратегию. И воплотить ее в программу. И все.
    Стратегии есть. ZUP интересно переписать. Пусть будет. А стратегия (и через ZUP ее можно реализовать и отдельно) - это отдельная песня.
     
  10. wellx

    wellx Активный пользователь

    Да, я вижу по форуму МТ5 - ты их там хорошо грузишь :)))

    З.Ы. Я все равно не понимал тогда (МТ4) и не понимаю сейчас почему надо делать свой язык, а не набор классов и оболочек над Паскалем или С++?

    Вот посмотри, если не видел ранее
    <span class='inv'><![CDATA[<noindex>]]></span><a href="http://www.onix-trade.net/forum/go.php?http://forextester.ru/" rel="nofollow" target="_blank">http://forextester.ru/</a><span class='inv'><![CDATA[</noindex>]]></span>

    Это сделал один человек за три года....
     
  11. nen

    nen Профи форума

    Кажется, можно будет жить: <span class='inv'><![CDATA[<noindex>]]></span><a href="http://www.onix-trade.net/forum/go.php?http://forum.mql4.com/ru/26030" rel="nofollow" target="_blank">http://forum.mql4.com/ru/26030</a><span class='inv'><![CDATA[</noindex>]]></span>

    Renat 23.09.2009 20:26
    Мы приняли решение запустить тестирование возможности использовать графические объекты в индикаторах.
     
  12. Rosh

    Rosh Новичок

    И где там море пользовательских индикаторов на Паскале или С++, написанных под эту программу?
     
  13. wellx

    wellx Активный пользователь

    Ну, море - не море...
    но что-то есть:

    <span class='inv'><![CDATA[<noindex>]]></span><a href="http://www.onix-trade.net/forum/go.php?http://forextester.ru/forum/viewforum.php?f=3&sid=03db6f33acbb224d6bb1c7714018525b" rel="nofollow" target="_blank">http://forextester.ru/forum/viewforum.php?...bb1c7714018525b</a><span class='inv'><![CDATA[</noindex>]]></span>
    <span class='inv'><![CDATA[<noindex>]]></span><a href="http://www.onix-trade.net/forum/go.php?http://forextester.com/forum/viewforum.php?f=3&sid=b4bc0af5e8412bec167017c9a14920d6" rel="nofollow" target="_blank">http://forextester.com/forum/viewforum.php...67017c9a14920d6</a><span class='inv'><![CDATA[</noindex>]]></span>

    по мере спроса - пишутся...
     
  14. nen

    nen Профи форума

    Сейчас с mql5 пока много непонятного. Подготовительные работы по переводу ZUP на mql5 ведутся. На mql4 был очень большой список параметров. Это сильно мешало восприятию. В mql5 по умолчанию также предусматриваются параметры в виде огромного списка. Предусматривается разработчиками терминала... для всех индикаторов, скриптов, советников, как и ранее редактировать параметры. Но...
    В mql5 есть возможно сделать альтернативное окно редактирования параметров. Идея следующая.

    При запуске индикатора никакие параметры не задаются. То есть в стандартном окне параметров нет никаких параметров. Вообще никаких...
    В рабочей зоне графика располагается кнопка с надписью ZUP. При кликаньи мышью по этой кнопке раскрывается окно. В этом окне множество закладок. Каждая закладка отвечает за какую-то группу свойств. .... И т.д.
    Сложность для меня сейчас в том, что необходимо будет программировать это альтернативное окно. Это займет вного вреени. А сейчас и других проблем с mql5 хватает. Эту часть разработки хорошо бы если б кто-то еще сделал.
     
  15. wellx

    wellx Активный пользователь

    Я о другом (хотя про окна посмотрю после выхода более-менее стабильного релиза):
    - ЗУП базируется на ЗЗ , по сути на массиве чередующихся вершин/низов. Т.е. уже сейчас надо определить как должны оформляться сторонние ЗЗ на уровне параметров и порядка вызовов/передачи массива в основную функцию/класс. Тогда будет не важно какой ЗЗ, и как он считает. Все построения будут вестись на основе созданных массивов . Плюс, может определить какие события регистрировать на данный ЗЗ.

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

    nen Профи форума

    В ZUP для MT4 было очень много различных параметров. Такое количество параметров очень плохо воспринимается. Были запросы сделать другой интерфейс к списку редактирования параметров. В МТ4 это было очень сложно реализовать. Практически с этим не стоило связываться. В МТ5 уже появилась возможность с меньшей кровью это сделать. В МТ5 без такого окна уже нельзя будет обойтись. И вот почему.

    В МТ4 можно было вывести на график множество экземпляров ZUP. В МТ5 все можно будет сделать с помощью одного экземпляра ZUP. Но при этом, если оставить старый интерфейс для редактирования параметров, мало кто сможет справиться с заданием параметров. Во-первых, заранее неизвестно, сколько различных зигзагов захочется вывести и по данным каких таймфреймов. В мультизигзагах для вывода нескольких экземпляров зигзагов с различных тф использовались строки с параметрами. Ну ладно, зигзаги, помучавшись, еще можно так вывести на график. А как быть с различными графическими инструментами, привязанными к этим зигзагам. Это сделать почти нереально без организации понятного интерфейса.. Плюс к тому, что уже реализовано в ZUP для МТ4, в МТ5 появилась относительно простая возможность добавления сложных графических инструментов, которые частично можно будет "рисовать" с помощью мыши. Появилась возможность создавать "живые" объекты, которые сами будут организовывать свое отображение на графике...

    Для реализации другого интерфейса редактирования параметров в первую очередь необходимо создать библиотеку классов для работы с таким интерфейсом.
     
  17. nen

    nen Профи форума

    Без создания альтернативного окна редактирования параметров индикатора в МТ5 ZUP реализовать не удастся.
    В mql5 есть ограничение по количеству внешних параметров. Внешних параметров у индикатора не может быть больше 64.
    В 82 версии ZUP 222 параметра, объявленных как extern - внешние параметры.
     
  18. nen

    nen Профи форума

    nen 19.10.2009 12:33правка | удалить
    Повтор пропавшего сообщения. В ответ на:



    stringo 17.10.2009 21:25

    nen писал(а) >>

    2) Растягивание окошка с параметрами не решит проблему. Это окошко морально устарело. К тому же в mql5 предусмотрено всего 64 параметра для индикатора (советника). У меня в индикаторе для мт4 223 параметра . Переписать этот индикатор в МТ5 не получится из-за этого ограничения. Необходимо

    Очень интнресно. В четвёрке было аналогичное ограничение. В пятёрке на 2 параметра больше засчёт того, что номер буфера и номер элемента теперь запрашиваются в другом месте.

    ===============

    В МТ4:

    Внешние переменные

    Класс памяти extern определяет внешнюю переменную. Модификатор extern указывается перед типом данных.

    Пример:

    extern double InputParameter1 = 1.0;
    extern color InputParameter2 = red;
    int init()
    {
    ...
    }

    Внешние переменные определяют входные параметры программы, они доступны из окна свойств программы. Массивы не могут выступать в качестве внешних переменных.

    ========

    Ограничений по количеству внешних переменных в МТ4 не обнаружил. Сейчас уже где-то 225-226 переменных extern и индикатор работает.

    ========

    В МТ5:

    Extern переменные

    Ключевое слово extern используется, чтобы объявить идентификаторы переменных как идентификаторы статического класса памяти с глобальным временем жизни. Такие переменные существуют с момента начала выполнения программы и для них память выделяется и инициализируется сразу после начала выполнения программы.

    Можно создавать программы, которые состоят из нескольких исходных файлов, для этого используется директива препроцессору #include. Переменные, объявленные как extern с одним и тем же типом и идентификатором, могут существовать в разных исходных файлах одного проекта.

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

    ========
    Здесь etxtern переменные не соответствуют extern переменным из МТ4. Количество этих переменных не ограничено.
    В МТ5 перменные input соответствуют переменным extern из МТ4.
    ========
    Input переменные

    Класс памяти input определяет внешнюю переменную. Модификатор input указывается перед типом данных. Изменять значение переменной с модификатором input внутри mql5-программы нельзя, такие переменные доступны только для чтения. Изменять значения input-переменных может только пользователь из окна свойств программы.

    Пример:

    //--- input parameters

    input int MA_Period=13;

    input int MA_Shift=0;

    input ENUM_MA_METHOD MA_Method=MODE_SMMA;


    Input переменные определяют входные параметры программы, они доступны из окна свойств программы.

    ..........
    Ошибки компиляции


    147 Слишком много параметров (>64)


    275 Нельзя объявить более 64 входных параметров (input-переменных)




    =========

    ВОТ И ВЫХОДИТ, ЧТО БОЛЬШОЕ КОЛИЧЕСТВО ПРОГРАММ ДЛЯ МТ4, СОДЕРЖАЩИХ БОЛЕЕ 64 ВХОДНЫХ ПАРАМЕТРА НЕЛЬЗЯ БУДЕТ ПЕРЕПИСАТЬ ДЛЯ МТ5!!!!!!!!!!



    Поэтому я не понял, о чем это:

    В четвёрке было аналогичное ограничение. В пятёрке на 2 параметра больше засчёт того, что номер буфера и номер элемента теперь запрашиваются в другом месте.
    ----------------
    Что будет с количеством input переменных? Будет ли увеличено их количество?
    Если нет, единственный выход - создание альтернативного окна редактирования параметров... Об это я писал на прошлой неделе в сообщении, которое было процитировано в начале этого поста.
    --------------
    Сохраню на всякий случай копию этого сообщения на ОНИКСе. Писать повторно сложно.
     
  19. nen

    nen Профи форума

    Сегодня проблема решена. Можно будет задавать неограниченное количество параметров. При этом в iCustom только первые 64 параметра можно использовать.
     
  20. nen

    nen Профи форума

    Из-за непонятной логики разработчиков метатрейдера теперь в МТ5 все смешалось. Стерлись границы между индикаторами и советниками (экспертами). ZUP является индикатором. Но из-за того, что некоторые возможности из имеющихся в ZUP, можно реализовать в МТ5 только в советниках, ZUP в реализации для МТ5 можно делать только как советник. НО ЭТО ИНДИКАТОР.

    Думаем одно, говорим второе, делаем третье... Оруэлл отдыхает...
     

Поделиться этой страницей