Перейти к содержанию

[ТМА] НАБОР Triangular Moving Average


Рекомендуемые сообщения

[ТМА] НАБОР Triangular Moving Average Опубликовано



TmaSlope.v1.5 Pobeda - не компилируется там ошибки исправить нужно.
TMA+CG mladen замените в сборке на мой, прикрепил, он рабочий, а в сборке нет.



Для mt5 случайно нет такого ?
Ссылка на сообщение
Поделиться на другие сайты

  • 1 month later...
  • Ответов 88
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

3ТЭ10У-0002 секция Б by Pavel888, on Flickr   РУССКИЙ ЯЗЫК/Russian language. В НАБОРЕ представлен индикатор ТМА канал - (Triangular Moving Average, TMA) один из основных компонентов ТС Поб

Перейти

Обновил индикатор, добавил следующие варианты сигнала: TypeB, // Выход 2-х закрытых баров за канал TypeG, // Выход и закрытие предыдущего бара выше канала TypeD, // Касание границы канала пре

Перейти

Последняя, актуальная версия. TMA-centered-DENYAtest_v1.02.mq4

Перейти
[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)


есть тма не перерисовывающиеся?


http://tlap.com/forum/laboratoriya-profitfx/24/open-source-sovetnik-forex-setka-trader-mod-i-ea-setka/2738/?do=findComment&comment=297229

Pavel888, перепроверьтесь, наверно, есть ли у вас файлы точно такой длины?
Один точно подрабатывался под 980+ билд перед повторным выкладыванием по ссылке, так как не компилировался...

И, может, Blohastik может по теме неперерисовки дополнительно прокомментировать по своим индюкам?


P.S. Pavel888, а не надо хотя бы повторяющиеся/основные настройки индюков ТМА хоть как-то описать?
Существенная часть настроек совпадает...
Кто вообще не в теме - совсем и не поймет, хоть какое-то пояснение/описание настроек бы? Изменено пользователем Старик
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано

Здравствуйте!
Может кто-нибудь добавить вывод на график информации о средней ширине канала за n-баров?
Буду признателен.

TMA_with_Distances.mq4

Ссылка на сообщение
Поделиться на другие сайты

  • 3 weeks later...
[ТМА] НАБОР Triangular Moving Average Опубликовано
Спойлер



есть тма не перерисовывающиеся?


http://tlap.com/forum/laboratoriya-profitfx/24/open-source-sovetnik-forex-setka-trader-mod-i-ea-setka/2738/?do=findComment&comment=297229

Pavel888, перепроверьтесь, наверно, есть ли у вас файлы точно такой длины?
Один точно подрабатывался под 980+ билд перед повторным выкладыванием по ссылке, так как не компилировался...

И, может, Blohastik может по теме неперерисовки дополнительно прокомментировать по своим индюкам?


P.S. Pavel888, а не надо хотя бы повторяющиеся/основные настройки индюков ТМА хоть как-то описать?
Существенная часть настроек совпадает...
Кто вообще не в теме - совсем и не поймет, хоть какое-то пояснение/описание настроек бы?


сделаем на досуге.
щас тут надо достойно встретить 2-х летие набора инфо индикаторов, много дел :)
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)

Здравствуйте!
Вопрос по TmaSlope.v1.5 Pobeda.
Использую данный индикатор в своей ТС. Подскажите, возможно ли прикрутить к данному индикатору уведомления на мыло по достижению им определенных значений? Скажем, уведомление отсылается, если М15 = 1.0. Спасибо.

Изменено пользователем kitaro_777
Ссылка на сообщение
Поделиться на другие сайты

  • 3 months later...
[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)




Последняя версия индикатора тут: http://tlap.com/forum/ugolok-programmista/13/indikator-kanalov-tma-tmapluscg-fl-dorabotka/15283/?do=findComment&comment=362444


Добрый день коллеги!

Кто использует индикаторы каналов, аналогов ТМА, прекрасно знают их недостатки.
Предлагаю коллективное творчество по доработке и устранению их недостатков.
Итак я для себя выделил несколько проблемных мест индикатора ТМА, часть из них устранить не удасться, но некоторые из них можно легко побороть. Поехали:

1. РАЗНАЯ ШИРИНА КАНАЛА во флете и тренде.
Тут я уже поработал и понял КАК устранить данный баг индикатора. Для того чтобы понять СУТЬ сужения канала в момент явного его наклона, необходимо знать КАК рисуются линии. Все линии рисуются от СРЕДНЕЙ лини в канале. Вне зависимости от наклона расстояние верхней и нижней границы канала берется как одинаковое расстояние, спроецированное исключительно на ось Y. Таким образом, канал выглядит самым широким при идентичных настройках в момент флета, то есть горизонтального наклона канала. А в момент очень сильного наклона ширина канала стремиться к нулю.
Я для визуализации начертил на бумаге схему рисования границ канала, чтобы подумать КАК сделать канал адекватный любому состоянию рынка. Будь то флет, будь то небольшой рост или явное падение. И у меня получилось!
Я подготовил техническое задание по небольшой корректировки кода индикатора. В формулу рисования линий, к отступу от средней линии, которая зависит от К-коэффециента (ATRMultiplier) и количества рассматриваемых баров (ATRPeriod) добавить условие:

Расстояние по оси Y от центральной линии ТМА, на котором рисуется верхняя и нижняя граница канала =K+Y2
Где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре)). Разница цен нам даст необходимую прибавку к расстоянию от середины до границ канала и канал будет выглядеть адекватым при любом состоянии рынка ....
А К - это существующая фрмула рассчета растояний границ канала от середины канала.
Спойлер




2. ОТСУТСТВИЕ СИГНАЛА.
а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре текущем/закрытом).

Есть у меня исходники индикаторов с уже реализованными в них Алертами (некоторыми ИЗ видов).
Допустим, в индикаторе TMA+CG_den.mq4 есть сигнальный блок. Предлагаю его перенести в tmacentered_amp_bands_2.02_mtf.mq4 как наиболее продвинутый и последний индикатор ....
Спойлер



3. УМЕНЬШЕНИЕ НАГРУЗКИ НА ПРОЦЕССОР.
Предлагаю ввести функцию: Last X Bars=xxx
Индикатор не будет рисовать линии по ВСЕМ барам которые сейчас у вас загружены в истории, а только последние ххх баров. Это радикально снизит нагрузку на процессор.

4. АДАПТИВНОСТЬ НАКЛОНА КАНАЛА под реальное состояние рынка.
Тут надо подумать, для себя вывел, что HalfLenght=40 вполне адекватно рисует канал ...
НО мысли принимаются, может как то можно доработать индюк?
-научить индюк отсеивать бары, которые в момент выхода новостей ЯВНО больше всех остальных. Думаю внедрение фильтра размера бара внутрь кода, который отсеивал бы такие бары из расчета АТР помог бы.
-научить индюк оперативно идти за ценой.

Нужна помощь программистов в доработке индикаторов. Предлагаю дорабатывать tmacentered_amp_bands_2.02_mtf.mq4 как наиболее продвинутый и последний индикатор ....
Спасибо.

channels.zip

Изменено пользователем DENYA
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)

Так. Пробую сам разобраться.

Сейчас пытаюсь добавить ARROW в качестве сигнала.

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

Добавил строчки:

#property indicator_buffers 10

double upArrow[];
double dnArrow[];

   SetIndexBuffer(8,dnArrow);   SetIndexStyle(8,DRAW_ARROW); SetIndexArrow(8,241);
SetIndexBuffer(9,upArrow); SetIndexStyle(9,DRAW_ARROW); SetIndexArrow(9,242);

            upArrow = EMPTY_VALUE;
dnArrow = EMPTY_VALUE;
if (High[i+1]>bandUp[i+1] && Close[i+1]>Open[i+1] && Close) upArrow = High+iATR(NULL,0,20,i);
if ( Low[i+1]>Open) dnArrow = High-iATR(NULL,0,20,i);


Где то нахреначил ....
=============================================================================

Ну и по поводу "правильной" ширины канала при тренде и флете.
Вот в эту формулу
double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;

помогите добавить условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))

TMA-centered-DENYAtest.mq4

Изменено пользователем DENYA
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано

Коллеги! Ну помогите уже человеку! Он так постарался, тему красиво и грамотно оформил. :) Я бы посмотрел, но времени нет вообще.... ТС, если никто не отзовется, я посмотрю позже. На вскидку у Вас вроде тут ничего сложного, немного формулу поправить.

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
[ТМА] НАБОР Triangular Moving Average Опубликовано

Если вопрос актуален - могу постараться помочь. какова актуальность вопроса сегодня ?

P.S.
Правда я никогда не работал по серьезному по теме программирования индикаторов и не очень знаком с индюками каналов TMA (давно - давно как-то ковырял победу, как юзер).

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано


Если вопрос актуален - могу постараться помочь. какова актуальность вопроса сегодня ?

P.S.
Правда я никогда не работал по серьезному по теме программирования индикаторов и не очень знаком с индюками каналов TMA (давно - давно как-то ковырял победу, как юзер).

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

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

Остальные мысли, что я писал выше трудны в реализации, поэтому к цели надо стремиться поэтапно. От простого к сложному ....
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано

а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре теку



Первый шаг:
Я правильно понимаю, что в этих случаях надо добавить стрелочки вверх (если про верхнюю границу канала говорить) в индикатор tmacentered_amp_bands_2.02_mtf ? Рисуем стрелки вверх во всех трех случаях, над баром пересечения/касания границы.
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)


а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре теку



Первый шаг:
Я правильно понимаю, что в этих случаях надо добавить стрелочки вверх (если про верхнюю границу канала говорить) в индикатор tmacentered_amp_bands_2.02_mtf ? Рисуем стрелки вверх во всех трех случаях, над баром пересечения/касания границы.
Нет. Если касание/закрытие/обратное пересечение происходит верхней границы канала, то стрелочка вниз. Если нижней границы канала, то стрелочка вверх.

В код индикатора в приложении я внес код стрелок, но где то напортачил, не вижу отображения стрелок.
В этом же посте и ИНДИКАТОР с которым надо уже работать.

Что касается 4-х разновидностей сигналов, то это уже более сложная задача. В идеале я реализацию ее вижу так:
В настройках параметр: SignalType:
а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре текущем).
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре закрытом).

На первом этапе достаточно сигнала б), то есть выхода ЗА границу и закрытии там бара. С моей точки зрения именно под этот тип я и добавил код в индикатор ....
Спасибо

TMA-centered-DENYAtest.mq4

Изменено пользователем DENYA
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано


Спойлер


а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре теку



Первый шаг:
Я правильно понимаю, что в этих случаях надо добавить стрелочки вверх (если про верхнюю границу канала говорить) в индикатор tmacentered_amp_bands_2.02_mtf ? Рисуем стрелки вверх во всех трех случаях, над баром пересечения/касания границы.
Нет. Если касание/закрытие/обратное пересечение происходит верхней границы канала, то стрелочка вниз. Если нижней границы канала, то стрелочка вверх.

В код индикатора в приложении я внес код стрелок, но где то напортачил, не вижу отображения стрелок.
В этом же посте и ИНДИКАТОР с которым надо уже работать.

Что касается 4-х разновидностей сигналов, то это уже более сложная задача. В идеале я реализацию ее вижу так:
В настройках параметр: SignalType:
а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре текущем).
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре закрытом).


На первом этапе достаточно сигнала б), то есть выхода ЗА границу и закрытии там бара. С моей точки зрения именно под этот тип я и добавил код в индикатор ....
Спасибо


DENYA Подправил Ваш "первый этап" - проверяйте. Исправления, которые сделал заключил
в комментарий, что это моих рук дело - для наглядности.

P.S. Вообще если планируется серьезная переделка индикатора, лучше бы заново проговорить алгоритм
и написать все с нуля. Сейчас мы делаем заплатки и если честно, я не совсем понимаю исходный текст.
(Тут конечно существует принцип - для программиста легче написать с нуля свое, чем разобраться с чужой программой).
Можно конечно этого не делать, но тогда получается письмо Родителям из мультика "Простоквашино". И вполне возможно при будущих вносимых нами изменениях мы упремся в непонятные действия индикатора. Ну или будем все переделывать с нуля, когда исправлениями не сможем добиться цели.

TMA-centered-DENYAtest.mq4

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)
Спойлер



Спойлер


а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре теку



Первый шаг:
Я правильно понимаю, что в этих случаях надо добавить стрелочки вверх (если про верхнюю границу канала говорить) в индикатор tmacentered_amp_bands_2.02_mtf ? Рисуем стрелки вверх во всех трех случаях, над баром пересечения/касания границы.
Нет. Если касание/закрытие/обратное пересечение происходит верхней границы канала, то стрелочка вниз. Если нижней границы канала, то стрелочка вверх.

В код индикатора в приложении я внес код стрелок, но где то напортачил, не вижу отображения стрелок.
В этом же посте и ИНДИКАТОР с которым надо уже работать.

Что касается 4-х разновидностей сигналов, то это уже более сложная задача. В идеале я реализацию ее вижу так:
В настройках параметр: SignalType:
а)Сигнал при касании границы на текущем баре.
б)Сигнал на выход за границу на закрытой свече.
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре текущем).
в)Сигнал при выходе цены за пределы канала, обратном возвращении цены в канал. (на баре закрытом).


На первом этапе достаточно сигнала б), то есть выхода ЗА границу и закрытии там бара. С моей точки зрения именно под этот тип я и добавил код в индикатор ....
Спасибо


DENYA Подправил Ваш "первый этап" - проверяйте. Исправления, которые сделал заключил
в комментарий, что это моих рук дело - для наглядности.

P.S. Вообще если планируется серьезная переделка индикатора, лучше бы заново проговорить алгоритм
и написать все с нуля. Сейчас мы делаем заплатки и если честно, я не совсем понимаю исходный текст.
(Тут конечно существует принцип - для программиста легче написать с нуля свое, чем разобраться с чужой программой).
Можно конечно этого не делать, но тогда получается письмо Родителям из мультика "Простоквашино". И вполне возможно при будущих вносимых нами изменениях мы упремся в непонятные действия индикатора. Ну или будем все переделывать с нуля, когда исправлениями не сможем добиться цели.
Спасибо, вроде нормально.

Сейчас условие срабатывание стрелки:
1.Свечка закрылась выше/ниже границы канала.
2.Первая противоположная закрытая свеча.

НАДО:
1.Стрелки на БАЙ опустить ниже

Ну и, если не против конечно ... хорошо бы уже с ГЕОМЕТРИЕЙ рисования границ канала разобраться. То есть внести в формулу
double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;

условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))

Вот например на скрине видишь что во флете ширина канала ШИРЕ чем в тренде?. С добавлением в формулу исправлений как я описал ожидаю увидеть ОДИНАКОВУЮ геометрию канала как во флете, так и в тренде .. Что даст нам дополнительное качество к появлению сигналов (стрелочек).

2016-12-27_23-08-13.jpg

Изменено пользователем DENYA
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)

Расположение стрелок подправлено


Добавлено: 28-12-2016 01:39:32

Подправил вроде ГЕОМЕТРИЮ, а визуального изменения что-то не вижу....

TMA-centered-DENYAtest.mq4
TMA-centered-DENYAtest.mq4

Изменено пользователем AndreyGold
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано


Расположение стрелок подправлено


Добавлено: 28-12-2016 01:39:32

Подправил вроде ГЕОМЕТРИЮ, а визуального изменения что-то не вижу....
Не, что то не то. У меня канал после исправления формулы в момент наклона становится даже УЖЕ чем с оригинальными формулами. Уже КАК сверху, так и снизу. Задача была наоборот расширить. Где то + с - надо поменять ....

Ну и эффект конечно слабоват. Ожидал большего расширения. Посмотри мой рисунок с 1-го поста. Понял логику там? По оригинальной формуле идет проекция на ось Y, а если канал наклонный, то тупая проекция на ось Y дает ошибочное значение. Хотел я там через синусы всякие формулу изобрести, но вроде бы предложенное решение гораздо проще .... Посмотри незамыленным взглядом. Судя по формуле и описанию которую я хочу я ожидаю БОЛЬШЕГО смещения канала ... Может быть что то не так в реализованной формуле?

На скрине:
Пунктирная синяя- исходник.
Голубая прямая - откорректированная тобой.
Во флете одинаковы.
В тренде наоборот канал сужается, а должен расширяться .... Кроме того расширение ожидаю (как по логике приведенного рассчета на картинке 1-го поста) гораааздо больше.

Добавлено: 28-12-2016 12:43:37

только заметил. Когда ВВЕРХ канал - вроде расширение идет. Когда ВНИЗ канал - сужается. Что то в общем не так с формулой ...

2016-12-28_15-39-46.jpg

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)

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

А вообще я всегда думал - если наклон, значит Тренд и по аналогии с полосами Болинджера должно идти
очень резкое расширение канала, ну а при Флете соответственно сужение.

Короче ушел - разбираться в деталях. :d




Добавлено: 28-12-2016 16:30:52

Поразбирал внимательно текст программы, ну очень мудренно ....
Пошаговые мысли:
Есть внешняя переменная TimeFrame, которую если мы не трогаем руками всегда указывает на текущий таймфрейм. Программа делится на две части работа первая часть работает с текущим таймфреймом,
а значит во вторую половину программы исполнение и не заходит
(это со строк
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if (slope[limit]==-1) CleanPoint(limit,buffer2a,buffer2b);
for (i=limit;i>=0; i--)
)
В первой половине buffer1 - это центральная линия канала (рассчитывается через взвешивание средней MA) .
Далее есть переменная range считается через ATR, умножаемая на множитель ATRMultiplier.
Это я так понимаю и есть размер отклонения от центральной линии границ канала.

и далее сами границы:
bandUp = buffer1+range;
bandDn = buffer1-range;

По ТЗ - я добавил формулу range = range+buffer1-buffer1[i+1];
то есть ширина канала равна первоначальная ширина канала + разница значения центральной линии
на текущем баре и на предыдущем.
По ТЗ А надо было добавить условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре)).
Как я понимаю ситуацию это я и сделал.
Denya Где на твой взгляд я неправильно понял ?









Добавлено: 28-12-2016 17:08:45

Или нужно менять первоначальную формулу, рассчета ширины канала
double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
думаю. это она влияет при резком наклоне канала на его сужение.

Сюда надо лезть по ходу:
Истинный диапазон (True Range) есть наибольшая из следующих трех величин:
разность между текущими максимумом и минимумом;
разность между предыдущей ценой закрытия и текущим максимумом;
разность между предыдущей ценой закрытия и текущим минимумом.
Индикатор Среднего Истинного Диапазона (Average True Range, ATR) представляет собой скользящее среднее значений истинного диапазона.


Добавлено: 28-12-2016 18:05:25

Думаю, что надо сделать так (заодно и более-менее проверим мою версию как в индюке все считается):
Моделируем ситуацию в экселе.
Тут берется 1000 последних баров - берем эти котировки, делаем все вычисления (средняя линия канала,
границы) рисуем график в экселе - все формулы делаем, так, чтобы переменными можно было бы поиграться
и тут же увидеть изменения на графике.
Ушел ваять )))
Изменено пользователем AndreyGold
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано
Спойлер


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

А вообще я всегда думал - если наклон, значит Тренд и по аналогии с полосами Болинджера должно идти
очень резкое расширение канала, ну а при Флете соответственно сужение.

Короче ушел - разбираться в деталях. :d




Добавлено: 28-12-2016 16:30:52

Поразбирал внимательно текст программы, ну очень мудренно ....
Пошаговые мысли:
Есть внешняя переменная TimeFrame, которую если мы не трогаем руками всегда указывает на текущий таймфрейм. Программа делится на две части работа первая часть работает с текущим таймфреймом,
а значит во вторую половину программы исполнение и не заходит
(это со строк
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if (slope[limit]==-1) CleanPoint(limit,buffer2a,buffer2b);
for (i=limit;i>=0; i--)
)
В первой половине buffer1 - это центральная линия канала (рассчитывается через взвешивание средней MA) .
Далее есть переменная range считается через ATR, умножаемая на множитель ATRMultiplier.
Это я так понимаю и есть размер отклонения от центральной линии границ канала.

и далее сами границы:
bandUp = buffer1+range;
bandDn = buffer1-range;

По ТЗ - я добавил формулу range = range+buffer1-buffer1[i+1];
то есть ширина канала равна первоначальная ширина канала + разница значения центральной линии
на текущем баре и на предыдущем.
По ТЗ А надо было добавить условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре)).
Как я понимаю ситуацию это я и сделал.
Denya Где на твой взгляд я неправильно понял ?









Добавлено: 28-12-2016 17:08:45

Или нужно менять первоначальную формулу, рассчета ширины канала
double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
думаю. это она влияет при резком наклоне канала на его сужение.

Сюда надо лезть по ходу:
Истинный диапазон (True Range) есть наибольшая из следующих трех величин:
разность между текущими максимумом и минимумом;
разность между предыдущей ценой закрытия и текущим максимумом;
разность между предыдущей ценой закрытия и текущим минимумом.
Индикатор Среднего Истинного Диапазона (Average True Range, ATR) представляет собой скользящее среднее значений истинного диапазона.


Добавлено: 28-12-2016 18:05:25

Думаю, что надо сделать так (заодно и более-менее проверим мою версию как в индюке все считается):
Моделируем ситуацию в экселе.
Тут берется 1000 последних баров - берем эти котировки, делаем все вычисления (средняя линия канала,
границы) рисуем график в экселе - все формулы делаем, так, чтобы переменными можно было бы поиграться
и тут же увидеть изменения на графике.
Ушел ваять )))
Ну ты прям загасил меня формулами ... :) Яж не такой продвинутый, я не кодер.
Я когда смотрел код, смотрел его логику, я выделил формулу
double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
в которую и надо добавлять дополнительное расстояние.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)

:d Про формулы - дя а такой ;)

А по существу вот три строчки подряд из программы, которые определяют расстояние от центральной линии до границы:

1 double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
2 buffer1 = sum/sumw;
//Я добавил:
3 range = range+buffer1-buffer1[i+1];
//

Первые две были в исходнике, третью добавил я (как кодер)- то есть мы к ширине канала добавили то что ты хотел :

"условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))"

Получается не то - вот я и хочу через эксель поиграться - ты с экселем насколько дружишь ? Я сделаю макет - ты сможешь его покрутить, чтобы понять какая формула приведет к нужной наглядности ?
Тады мы ее в индюк и переложим

Изменено пользователем AndreyGold
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)


:d Про формулы - дя а такой ;)

А по существу вот три строчки подряд из программы, которые определяют расстояние от центральной линии до границы:

1 double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
2 buffer1 = sum/sumw;
//Я добавил:
3 range = range+buffer1-buffer1[i+1];
//

Первые две были в исходнике, третью добавил я (как кодер)- то есть мы к ширине канала добавили то что ты хотел :

"условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))"

Получается не то - вот я и хочу через эксель поиграться - ты с экселем насколько дружишь ? Я сделаю макет - ты сможешь его покрутить, чтобы понять какая формула приведет к нужной наглядности ?
Тады мы ее в индюк и переложим

я не кодер, но не кажется ли тебе что в формуле
range = range+buffer1-buffer1[i+1];
есть невыполнимое противоречие? Что то вроде 1=1+2 .... такого не бывает.
Повторюсь, я не кодер, но по алгебре и геометрии теоремы сам доказывал как только учительница читала условие ....

Добавлено: 28-12-2016 20:56:29

И, условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))
Имеется ввиду что данное значение по любому ПОЛОЖИТЕЛЬНОЕ. Отрицательного значения не должно быть. В этом думаю кроется одна из ошибок, когда если канал вверх - он расширялся, а когда вниз - сужался.
Надо добавить условие, что результат Y2 положительный
==========================================

Add^
И, еще раз прикинул на картинке почему же в исправленной тобой формуле границы канала не так значительно расширяются , как я ожидал. И понял! Я не учел тот момент, что граница канала задается через ATRMultiplier, которым мы и делаем канал более широкий или более узкий. То есть чем больше ATRMultiplier, тем канал будет шире. Чем меньше, тем границы канала будут стремиться к центральной линии.

В таком раскладе, к сожалению, подобрать "ПРАВИЛЬНУЮ" геометрию канала через Y2 напрямую не получится. Ибо чем больше ATRMultiplier, тем больше нужен Y2. 2 варианта:
1.Сделать Y2 зависимым от ATRMultiplier через формулу.
2.Второй вариант пока в проработке в голове. Ибо ширина канала зависит от ATRPeriod, на который в свою очередь мы накручиваем коэффициент ATRMultiplier.... Хммм ... В общем я подумаю. Думаю привязываться надо к ИТОГУ расчетов, то есть к range , и каким то образом, в зависимости от его велечины прибавлять Y2*Ky2
где Ky2-новая переменная, коэффициент, зависящий от величины range.....
Надо рисовать на бумаге, так сразу не соображу ... Изменено пользователем DENYA
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано
Спойлер



:d Про формулы - дя а такой ;)

А по существу вот три строчки подряд из программы, которые определяют расстояние от центральной линии до границы:

1 double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
2 buffer1 = sum/sumw;
//Я добавил:
3 range = range+buffer1-buffer1[i+1];
//

Первые две были в исходнике, третью добавил я (как кодер)- то есть мы к ширине канала добавили то что ты хотел :

"условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))"

Получается не то - вот я и хочу через эксель поиграться - ты с экселем насколько дружишь ? Я сделаю макет - ты сможешь его покрутить, чтобы понять какая формула приведет к нужной наглядности ?
Тады мы ее в индюк и переложим


я не кодер, но не кажется ли тебе что в формуле
range = range+buffer1-buffer1[i+1];
есть невыполнимое противоречие? Что то вроде 1=1+2 .... такого не бывает.
Повторюсь, я не кодер, но по алгебре и геометрии теоремы сам доказывал как только учительница читала условие ....


Не, не -эта формула обозначает, что новому значению переменной range надо присвоить значение, равное текущему значению range + разницу значение средней линии текущего бара buffer1 и предыдущегоbuffer1[i+1]. Так я в общем-то понял пожелание про: "условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))"
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)
Спойлер


Спойлер



:d Про формулы - дя а такой ;)

А по существу вот три строчки подряд из программы, которые определяют расстояние от центральной линии до границы:

1 double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
2 buffer1 = sum/sumw;
//Я добавил:
3 range = range+buffer1-buffer1[i+1];
//

Первые две были в исходнике, третью добавил я (как кодер)- то есть мы к ширине канала добавили то что ты хотел :

"условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))"

Получается не то - вот я и хочу через эксель поиграться - ты с экселем насколько дружишь ? Я сделаю макет - ты сможешь его покрутить, чтобы понять какая формула приведет к нужной наглядности ?
Тады мы ее в индюк и переложим


я не кодер, но не кажется ли тебе что в формуле
range = range+buffer1-buffer1[i+1];
есть невыполнимое противоречие? Что то вроде 1=1+2 .... такого не бывает.
Повторюсь, я не кодер, но по алгебре и геометрии теоремы сам доказывал как только учительница читала условие ....


Не, не -эта формула обозначает, что новому значению переменной range надо присвоить значение, равное текущему значению range + разницу значение средней линии текущего бара buffer1 и предыдущегоbuffer1[i+1]. Так я в общем-то понял пожелание про: "условие: прибавить Y2, где Y2=((цена средней линии ТМА на текущем баре) - (цена средней линии ТМА на прошлом баре))"
почитай в предыдущем посте ....
Обдумываю как реализовать. Проще всего на бумаге нарисовать, и понять СУТЬ проблемы ....

Добавлено: 28-12-2016 22:12:52

Поставил формулу
range = range+(buffer1-buffer1[i+1])*ATRMultiplier;

Стало лучше. Осталось сделать условие, что Y2 всегда положительное значение.

TMA-centered-DENYAtest2.mq4
2016-12-29_1-17-43.jpg

Изменено пользователем DENYA
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано (изменено)


почитай в предыдущем посте ....
Обдумываю как реализовать. Проще всего на бумаге нарисовать, и понять СУТЬ проблемы ....


Добавлено: 28-12-2016 22:12:52

Поставил формулу
range = range+(buffer1-buffer1[i+1])*ATRMultiplier;

Стало лучше. Осталось сделать условие, что Y2 всегда положительное значение.


Ок - я вместо бумаги эксель предлагал, хотя вариант на бумаге первичней чем эксель.
Формулу я исправил, вставил модуль для числа Y2 (теперь Y2 всегда положительное), которое потом умножается на ATRMultiplier.
Смущает, что мы теперь два раза умножаем на ATRMultiplier. Строки (147 и 151).
Исправленный вариант подшиваю.

p.s. Сделал нумерацию версий программы. Сейчас v1.01 - в начале файла буду стараться описывать изменения от версии к версии.

TMA-centered-DENYAtest_v1.01.mq4

Изменено пользователем AndreyGold
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[ТМА] НАБОР Triangular Moving Average Опубликовано
Спойлер



почитай в предыдущем посте ....
Обдумываю как реализовать. Проще всего на бумаге нарисовать, и понять СУТЬ проблемы ....


Добавлено: 28-12-2016 22:12:52

Поставил формулу
range = range+(buffer1-buffer1[i+1])*ATRMultiplier;

Стало лучше. Осталось сделать условие, что Y2 всегда положительное значение.


Ок - я вместо бумаги эксель предлагал, хотя вариант на бумаге первичней чем эксель.
Формулу я исправил, вставил модуль для числа Y2 (теперь Y2 всегда положительное), которое потом умножается на ATRMultiplier.
Смущает, что мы теперь два раза умножаем на ATRMultiplier. Строки (147 и 151).
Исправленный вариант подшиваю.

p.s. Сделал нумерацию версий программы. Сейчас v1.01 - в начале файла буду стараться описывать изменения от версии к версии.
Как я и писал выше, есть 2 варианта корректировки. Через добавление ATRMultiplier, этот вариант НЕ идеален с точки зрения геметрии, но он быстрое решение проблемы.
Второй вариант, связан с геометрией, высчитавания через формулу Коэффициента, который в свою очередь должен зависеть от Range.

Я исправил формулу:
range = range+(MathAbs(buffer1-buffer1[i+1]))*3*ATRMultiplier;


На скрине:
При сильном безоткатном движении раньше канал сужался до неприличия.
Теперь геометрия подправлена, что дает нам сигналы в виде выхода ЗА канал более качественными, своевременными.
Темно синяя: исходник.
Пунктирная синяя: результат.

2016-12-29_21-51-04.jpg

  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

  • Pavel888 changed the title to [ТМА] НАБОР Triangular Moving Average

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...