Тема balbesika

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

  1. balbesik06

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

    Всем Здравствуйте!
    Кидаю (один "реал") одну "дуру"любой знающий ТАУ разберется.

    .Вместо "разнице" на "цикле" взял среднюю и "цикл" по "Выходу" упростил.
    Nen тебе СУважением
     

    Вложения:

  2. balbesik06

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

    P.S. Еще Nen!
    До начала "цикла" идет Ц средняя- (В+С+Ц1+ц2)/4
    Поправка "дельта " на коце "Цикла".
    При это я опять пошел "упрошенно", более точно <> "дельта"
    А как мне иначе?
    Ты мне помог и я тебе обязан.
    Я пошел по " средней".
    Но все решает мультизигзаг.
    Сейчас уже ясно, что нужн MZZ9.
    Любой ТАУ- шник скажет, это элементарно.
    С Уважением.
     
  3. nen

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

    В МТ5 можно творить чудеса с загзагами. Но необходимо время для освоения.

    Склоняюсь также к тому, чтобы для МТ5 выкладывать только скомпилированные индикаторы. По крайней мере вначале.
     
  4. nen

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

    Не уверен, что буду оперативно отвечать.

    --
    Небольшой кусочек того, чем сейчас занят:

    <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->struct timeseries
    &nbsp;&nbsp;{
    &nbsp;&nbsp; datetime time;
    &nbsp;&nbsp; double&nbsp;&nbsp; high;
    &nbsp;&nbsp; double&nbsp;&nbsp; low;
    &nbsp;&nbsp;};


    timeseries ts[];


    //+------------------------------------------------------------------+
    //| Загрузка истории&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
    //+------------------------------------------------------------------+
    int cxxxHistory :: LoadHistory()
    &nbsp;&nbsp;{
    &nbsp;&nbsp; double&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lHA[];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// динамический массив максимумов баров
    &nbsp;&nbsp; double&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lLA[];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// динамический массив минимумов баров
    &nbsp;&nbsp; datetime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lTA[];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// динамический массив времени баров
    &nbsp;&nbsp; int copied, i;
    &nbsp;&nbsp; copied=0;
    &nbsp;&nbsp; if (hHistoryYes)
    &nbsp;&nbsp;&nbsp;&nbsp; {
    //&nbsp;&nbsp; copied=0;
    // Print("copied = 0 = ", copied);
    &nbsp;&nbsp;&nbsp;&nbsp; }
    &nbsp;&nbsp; else
    &nbsp;&nbsp;&nbsp;&nbsp; {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (SeriesInfoInteger(Symbol(),Period(),BARS_SYNCRONIZED))
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hHistoryCopy=false;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; copied=CopyHigh(Symbol(),Period(),hTimeBar1,hQuantityBar,lHA);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CopyLow(Symbol(),Period(),hTimeBar1,hQuantityBar,lLA);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CopyTime(Symbol(),Period(),hTimeBar1,hQuantityBar,lTA);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hHistoryYes=true;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (copied>0)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Print("copied = ", copied);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0;i<copied;i++)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.high=lHA;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.low =lLA;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.time=lTA;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp; }

    &nbsp;&nbsp; if (copied>0)
    &nbsp;&nbsp;&nbsp;&nbsp; {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (hHistoryYes)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Processing(ts);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp; }

    &nbsp;&nbsp; return (copied);
    &nbsp;&nbsp;}<!--c2--></div><!--ec2-->

    Вот на такие тексты программ теперь придется переучиваться.
    А что-то делать для мт4 и вникать в коды мт4 уже почти не имеет смысла.

    Здесь показано, как придется теперь организовывать доступ к таймсериям.
    В мт4 было High[], Low[], Time[].
    В мт5 так уже нельзя. В частности, в коде, что приведен, доступ будет в дальнейшем организован так:
    ts.high, ts.low, ts.time .
     
  5. kot7777

    kot7777 Новичок


    Ничего сложного здесь нет, просто поменялась форма, содержание осталось тоже самое. Обращение идет
    к свойствам экземпляра объекта, точно также переходили с Си на Си++. Лучше бы метаквотеры устранили
    глюки в четверке, а то не ровен час захотят перейти на Си# :blink:
     
  6. nen

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

    Содержание также изменилось. Содержание не изменилось, если организуется доступ к одному таймфрейму в индикаторе. Одновременный доступ к большему числу таймфреймов в индикаторе или доступ к таймфреймам в советниках "по содержанию" стал другим. Более сложным. В мт4 многое организовывалось средствами терминала. В мт5 придется многое самостоятельно организовывать.
     
  7. kot7777

    kot7777 Новичок

    Наверное мы говорим о разном содержание, я имел ввиду программный аспект(поменялась форма обращения к ячейке памяти), и не имел ввиду функциональное расширение инструментария(языка). А насчет, самостоятельности, так это к лучшему, только надеюсь самостоятельно бары на графике не нужно будет рисовать ^secret^
     
  8. nen

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

    И я про программный аспект говорю.

    Необходимо будет на каждом тике копировать данные в свой массив с таймсерией. И только если удачно скопируется, то будет доступ к изменившимся данным таймсерии. Это существенная довеска. Не все даже с опытом программирования быстро справляются с этой задачей...
     
  9. kot7777

    kot7777 Новичок

    С этим соглашусь, опыт опыту рознь, тем кто программил только на mql может быть и будет сложновато, остальным врядли, в конечном счете все сведется к освоению возможностей инструментария. Да и не это главное, не зная предметную область задачи, задачу не решить, а инструментарий - он и в Африке инструментарий. Для себя вижу в пятерке очередную борьбу с глюками. В четверке то намудрили с многопоточностью и так не решили или скажем так не совсем решили, что тогда говорить о пятерке. Не будем о грустном. Прежде чем делать из клиентов бета-тестеров, метаквотерам самим нужно побыть в их шкуре, а то складывается впечатление, что пишут для своего удовлетворения, а это уже мастурбацией называется.
     
  10. nen

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

    Из клиентов многие разработчики серьезных программ "делают" тестеров. Знаю это не понаслышке.
    У метаквотесов не хватает для этого своих ресурсов. Это с одной стороны.
    С другой стороны, складывается такое впечатление, что они немного оторваны от придметной области - трейдинга.
    Немного оторваны... Интересы их несколько расплывчаты.
    ===========
    Не будем о грустном.
     
  11. balbesik06

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

    Здравствуйте Аndre!

    Удалите, пожалуйста, предыдущие сообщения, т.к. это просто обмен с Nen-ом и там просто варианты для рассмотрения и не более и на мой взгляд не корректные по расчету.

    С Уважением.
     
  12. balbesik06

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

    Здравствуйте!

    Выкладываю просто свой подход по использованию ZUP и вил Эндрюса.
    Посыл простой – движение на рынке это колебания и они не могут носить случайный характер, а следовательно должны подчиняться законам ТАУ.
    Мой интерес простой.
    Во первых я благодарен Nen-у за помощь и разработку основы.
    Во вторых взгляд со стороны всегда интересен, нет «замыленности глаз» и вдруг кто-то что-то предложит свое.
    Алгоритмы не оптимизированы и много лишнего. Я не программист и не ставил себе таких задач, поэтому выкладываю как есть.
    В общем это попытка сделать индикатор с обратной стороны (от цели, а не с момента разворота).

    MZZ4_pitch_bCom_Bett AT.mq4
    кажется этот я выкладывал раньше на ветке «Гармоничная торговля» подход там приведен.
    Здесь в комментариях есть попытка расчета «частоты» и «амплитуды» в безотносительных величинах, вдруг кому-то пригодится. Рис. АТ.


    MZZ4_pitch_bCom_Betta ATU .mq4
    здесь убрано отображение «цели» с экрана и введена попытка определить «устойчивость системы». Это, как коэффициенты Фибоначчи, когда идет совпадение отношений как улитки так и галактики, нам это говорит, что система устойчива и не идет в «разнос». И естественно, как любая система, имеет собственную частоту, т.е. появляются варианты подходов. Упрощенно зеленная – коррекция , красная – «тренд». Рис. АТU.

    MZZ2_pitch _b Com_Betta ATU5_15-30 .mq4 и
    MZZ2_pitch _b Com_Betta ATU5_60-240 .mq4
    здесь идет попытка расчета вероятной цели. Пытался по проще. Здесь надо программировать, а я с этим дружу плохо.
    Ц ср. = (в + с + ц10 + ц20)/4 + - поправка.
    ц10 и ц20 это цели по цене в MZZ4_pitch_bCom_Bett AT.mq4.
    Поправка это разность (в + с) - (ц1n + ц2n) по выходу из «цикла» («цикл» не более 8). Критерий выхода из «цикла» тоже
    упростил. Более точно, как пример, N1 >N2>…. >N< …N8 (если кто-то захочет построить график этих N тут любопытно, напоминает Элиота и тоже смотрятся пути выхода на конечную цель). Критерий выбора конечной цели (которая показывается только в динамике) взял один это флаг F14 (F24). +- поправка идет по логике, но в замен я оставил Ц ср. (в алгоритме это видно). Рис. 3 и Рис. 3-1.

    MZZ2_pitch _b Com_Betta ATU8_15-30 .mq4
    Ошибка - здесь пытался вычистить алгоритм, что бы убрать лишнее, что-то снес, разбираться не стал.

    На красные цифры не обращайте внимание, это я сделал для себя.
    Далее буду смотреть уровень целей по отношению друг к другу, здесь если цель по 15 мин выше (допустим) 30 мин. и выходят с одной т.С это разворот буду вводить красную цифру. Я эти моменты смотрел, но тут уже нужен MZZ9.
    Этим занимаюсь от случая к случаю – просто увлечение. По хорошему надо набирать статистику. Смотреть вероятностные вещи. Отрабатывать критерии. Оценку рисков. Здесь на первое место выходит ZUP, было бы проще, если бы у последнего был простенький критерий формирования луча.
    Хотел бы еще раз обратить внимание, что это просто подход и только.

    В общем как – то так, коротко.

    С Уважением.
     

    Вложения:

  13. andre

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

    balbesik06, тъй хазяин етой ветки, удаляй если считаеш ненужнъйм, но в общем мъй рекамендуем не удаляться сообщения что бъй не терялась нить разговора.
     
  14. balbesik06

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

    P.S. Не большая добавка.

    Это понаглядней, что имел ввиду, подразумевая местоположения целей друг относительно друга
     

    Вложения:

    • 3_2.gif
      3_2.gif
      Размер файла:
      36,3 КБ
      Просмотров:
      124
  15. balbesik06

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

    Здравствуйте Аndre!

    Спасибо за ответ.
    Видимо при переносе сообщений с ветки на ветку функция Delete утрачивается, но это мелочи.
    Еще раз благодарю за ветку. Направленность ветки получается в большей степени для разработчиков, чем для трейдеров, но тоже имеет право на существование.
    Пусть будет. Вдруг кому-то пригодится.

    С Уважением.
     
  16. balbesik06

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

    Здравствуйте!

    Раз никто не отвечает.
    Выкладываю, каким путем пошел я.
    Тогда другой вопрос (Nen вопросы по ZIG-ZAG снялись в автомате).
    Методика работы?
    Основные моменты я выложил раннее,
    15 – 30 - это работа на «коррекциях» цели по старшим..
    «Бисер» кидать не собираюсь , если не к месту извините («был не прав»).
    По «подходу» методике (громко сказано) файлы прилагаю
    Более думаю беспокоить не буду.
    В приложенных файлах по алгоритму - убрана ошибка, убрано лишнее, чтобы не грузить «комп». «Цикл» не сделан. Фактически, это уже рабочий вариант.
    С «циклом» заниматься не стал.
    Нужно ставить все 4.
    Nen жаль, что так закончилось, я просто остался в согласии самим с собой.

    С Уважением.
     

    Вложения:

  17. balbesik06

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

    P.S.
    Для "работы" "устоичвости" и точности желателен "меньший" Т.Ф.
    У меня на картинке стоит 15 мин.
     
  18. balbesik06

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

    Здравуствуй Nen!

    Обещал, через 2 недели, в воскресенье выложу.
    Хотел больше, но решения не нашел (я не программист).

    С Уважением.
     
  19. balbesik06

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

    Здравствуйте!

    Убрал логическую ошибку, погрешности, поменял «ряды» местами – если делать корректней это долго, а для подхода не принципиально.
    Критерий выхода из «цикла» не поправлял, т.к. расхождения редко бывают, а так проще.
    Время не делал.
    Изменил критерий выбора значимой цели.
    Последнее возможно не корректно, но применяют же "лес" фиб по амплитуде, хотя соотношения Фибоначчи привязаны к частоте (времени), но могут же корректно «работать» при угле луча Зиг-Зага = 45 градусов.
    В перспективе планирую по аналогии оценивать «конечную» цель (возможно с учетом угла).
    Nen, что я имел ввиду по «увязки» таймфреймов.
    Для примера готовил Рис.А,Б, но описывать долго и не принципиально.
    Рис.С - «старшая» цель 1.4639. В процессе движения ближайшая сформированная «младшая» цель 1.4692 стала «устойчива» по отношению к «старшей» и есть основания считать, что она будет достигнута.
    Рис.Д - «старшая» цель 1.4761, «младшая» цель 1.4729 между собой «не устойчивы» нет основания считать, что на данном этапе движение продолжиться к «старшей» -1.4761.
    На этих рисунках цели выбраны путем перебора таймфреймов.
    Движение идет, как бы по ступенькам. От «младшей» к «старшей в зависимости от «устойчивости».
    Перебор конечно не удобно. Надо делать алгоритм и разбираться с таймфреймами. Не думаю, что выбор последних может носить случайный характер.
    Для этого ввел глобальные переменные. «Сервис» - «Глобальные переменные».
    Еще ввел «0» бар.
    Дальше пока не двигался.
    Обратил внимание в МТ5 расширен диапазон Т.Ф., но сделано по принципу кратности.
    Интересно из каких соображений? Видимо проще.
    Еще одна «головная боль» - нестандартные таймфреймы и количество баров – желателен меньший таймфрейм (Рис.1,2,3).
    Nen, я помню мы касались этого вопроса и твое мнение я знаю, но может быть появился какой-нибудь период-конвертор (меньше конфликтующий с ZUP)?
    В общем опять коротко.

    С Уважением.
     

    Вложения:

  20. nen

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

    1) Набор таймфреймов в МТ5 сделан не из практических соображения трейдера, а из практических соображений разработчика терминала. То есть здесь есть некоторая искусственность. (В таких случаях иногда говорят - притянуто за уши). Но не будем осуждать. Аппетит приходит во время еды. Время будет исправлять.
    2) Период конвертор не конфликтует с ZUP. Необходимо найти тот вариант период конвертора, который работает корректно. Putnik использует такой вариант. Я не использую вообще период конвертор.

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

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